ton.halowerk.com
ton.halowerk.com
Samples the video at sample_fps on a 160 px wide grey image and compares each sample with the previous one: a pixel is active when its grey level changes by more than pixel_threshold. Per pair it records the active share, mean absolute difference and per-cell shares on a grid_cols-wide grid. Pairs above active_threshold form active intervals (gaps up to 1 s are bridged); pairs with more than 60 %
- Category
- Service
- Networks
- Base
- Starting price
- $0.003
- Paid calls, 30 days
- 27
- Payers, 30 days
- 1
How to pay
Call an endpoint, read the price in the 402 answer, and pay from your own wallet with any x402 client on Base. The payment goes straight to the provider: Autonomo lists this API but isn't part of the payment. See The x402 directory.
Paid endpoints
30 endpoints, sorted by usage. Prices are per request.
| Endpoint | Price | Network | Facilitator | Calls / 30d |
|---|---|---|---|---|
POST/v1/audiogram-render The audio window (up to 60 s, any audio file or the audio track of a video) drives an ffmpeg 6.1 showwaves waveform (mode cline, line, p2p or point, square-root amplitude scale, mono mix) in a band across the middle of the frame. Captions come as a cue list or as WebVTT/SRT text (cue times refer to the original audio and are shifted by start_s; markup tags are removed), are wrapped by measured text width into at most three centred lines (Liberation Sans Bold) and shown with drawtext exactly… | $0.02 | Base | Coinbase CDP | 1 |
POST/v1/burned-subtitle-extract Crops the subtitle band (band_top to band_bottom of the frame height) and samples it at sample_fps. A text mask keeps bright pixels that have a dark neighbour within 2 px (outline or shadow; the reverse for dark text). A cue is a run of samples with a mask present whose consecutive masks overlap (IoU at least 0.5); runs shorter than min_cue_s are dropped. | $0.03 | Base | Coinbase CDP | 1 |
POST/v1/clips-normalize-join Each clip (own start_s/duration_s window) is converted to square pixels, fitted into the target frame (pad = letterbox/pillarbox in background_color, crop = fill and cut the overflow centred, stretch = distort), resampled to the target frame rate (ffmpeg fps filter: duplicate/drop frames) and joined with the concat filter. | $0.02 | Base | Coinbase CDP | 1 |
POST/v1/color-match Samples up to 12 frames of the target window and of the reference (video or image) at 160 px width in RGB, builds 256-bin histograms per channel and derives a monotone 1D LUT: method histogram = histogram specification (CDF matching, midpoint quantiles), method mean_std = per-channel mean and standard deviation transfer (Reinhard et al. 2001, applied in RGB). strength blends the LUT with identity. | $0.015 | Base | Coinbase CDP | 1 |
POST/v1/feed-fulltext-search Indexes up to 300 supplied transcripts (WebVTT, SRT, Podcast Namespace JSON or HTML, plain text) per call and searches them; nothing is stored between calls and no feed is crawled. Passages are cues (word-level JSON merged into sentences); tokens are lower-cased with diacritics folded (ß = ss). | $0.003 | Base | Coinbase CDP | 1 |
POST/v1/feed-loudness-series Feed mode: takes the newest 1-4 episodes of an RSS feed and fetches only a byte range of each enclosure (by default from the middle of MP3 files, from the start for other containers; large ID3 tags are skipped), so every value is an honest sample measurement, not the loudness of the whole episode. Clip mode: measures 2-6 supplied audio files completely. | $0.01 | Base | Coinbase CDP | 1 |
POST/v1/flash-safety Every frame (at most 60 per second, up to 60 s and 2,400 frames) is reduced to a 96 px wide RGB image. Per pixel, relative luminance follows the WCAG 2.2 sRGB formula; a transition is an opposing change of at least 0.1 between a peak and a valley where the darker state is below 0.80 (general flash). | $0.02 | Base | Coinbase CDP | 1 |
POST/v1/hls-package Encodes up to four renditions in one ffmpeg 6.1 pass (libx264 high profile, constrained VBR with maxrate 1.1x and buffer 2x the target, closed GOPs with a keyframe at every segment boundary) plus one AAC stereo audio rendition, and segments them as fragmented MP4 (CMAF) with the DASH muxer. The MPD comes from ffmpeg (SegmentTimeline; bandwidth replaced by the measured peak segment bit rate). | $0.03 | Base | Coinbase CDP | 1 |
POST/v1/intro-outro-render Each card is a full-frame ffmpeg 6.1 render: solid colour or linear two-colour gradient background, optional logo (PNG/JPEG/WebP, up to 22 % of the frame height, alpha kept), title in Liberation Sans Bold and subtitle in the accent colour (SIL OFL 1.1), centred and wrapped by measured text width to at most two lines each. | $0.02 | Base | Coinbase CDP | 1 |
POST/v1/ivr-prompt-qa Probes and decodes the prompt (base64 or URL, at most 10 MiB and 60 s) with ffmpeg 6.1 and checks it against a target profile: container, codec, sample rate, channels, duration and size (presets g711_ulaw, g711_alaw, pcm16_8k, pcm16_16k, amazon_connect per its documentation, or a custom target). | $0.008 | Base | Coinbase CDP | 1 |
POST/v1/letterbox-detect Runs ffmpeg cropdetect (per-frame reset, rows and columns whose mean luma is at or below black_level count as black) on the keyframes of the selected range, or on evenly spaced frames when there are fewer keyframes than samples. Frames that are black as a whole are ignored; the union of the remaining picture areas is the content area, so no frame loses content. | $0.01 | Base | Coinbase CDP | 1 |
POST/v1/logo-screen-time The logo (PNG, JPEG or WebP, cropped to its opaque pixels) is turned into grey templates for widths between min_logo_width and max_logo_width of the frame width in steps of 1.2x. Only the opaque pixels are compared, so transparent corners or gaps show whatever background the video has. | $0.03 | Base | Coinbase CDP | 1 |
POST/v1/lower-third-render Three templates: bar (accent stripe plus semi-transparent box), box (name on an accent box, subtitle on a second box) and minimal (text with drop shadow and accent underline). Sizes scale with the frame height (name 52 px and subtitle 34 px at 1080p, Liberation Sans Bold/Regular, SIL OFL 1.1); text widths are measured with the font metrics, the graphic is placed inside the EBU R 95 graphics-safe area (5 % from the left/right edge, bottom 10 %) and fonts shrink down to 70 % before a too-long… | $0.015 | Base | Coinbase CDP | 1 |
POST/v1/motion-summary Samples the video at sample_fps on a 160 px wide grey image and compares each sample with the previous one: a pixel is active when its grey level changes by more than pixel_threshold. Per pair it records the active share, mean absolute difference and per-cell shares on a grid_cols-wide grid. Pairs above active_threshold form active intervals (gaps up to 1 s are bridged); pairs with more than 60 % active pixels are reported as global changes (cut, camera motion or lighting change). | $0.01 | Base | Coinbase CDP | 1 |
POST/v1/number-reading-check Extracts every number-like item from the German source text (same rules as tts-text-normalize-de: dates, times, money, units, percentages, decimals, years, digit strings) and parses the transcript of the synthesised audio (from your speech recogniser or the TTS front end), which may contain number words ("zwölften November zweitausendsechsundzwanzig", "vierzehn Uhr dreißig", "zwölf Euro fünfzig", "drei Komma fünf Kilometer") or digits. | $0.005 | Base | Coinbase CDP | 1 |
POST/v1/opml-normalize Parses OPML 1.0/1.1/2.0 and applies the OPML 2.0 rules (opml.org/spec2, freely implementable): version, head and body required, every outline needs a text attribute, rss outlines need type, text and xmlUrl, type values are case-insensitive. Missing text is filled from title or the feed host, missing type on outlines with xmlUrl becomes rss, attribute spelling such as xmlurl is corrected, invalid or non-http(s) feed URLs are flagged (optionally dropped) and exact duplicates (scheme and host… | $0.003 | Base | Coinbase CDP | 1 |
POST/v1/picture-in-picture The speaker clip is scaled to size_percent of the screen width (height from its display aspect ratio; circle = centre square crop), masked with an anti-aliased rectangle, rounded-rectangle (corner radius 12 % of the shorter side) or circle mask, optionally framed by a border of border_px in border_color, and overlaid with ffmpeg 6.1 at the chosen corner with margin_px from the frame edge to the outer border. | $0.02 | Base | Coinbase CDP | 1 |
POST/v1/scrub-sprites Takes one thumbnail every interval_s (default: 1, 2, 5, 10, 15, 30 or 60 s so that at most 120 thumbnails result), scales it to the requested width with the display aspect ratio, tiles the thumbnails into sheets of columns x rows with ffmpeg 6.1 (tile filter) and writes a WebVTT track whose cues cover [k*interval, (k+1)*interval) and point to sprite_NNN.jpg#xywh=x,y,w,h (W3C Media Fragments 1.0), optionally prefixed with your CDN path. | $0.01 | Base | Coinbase CDP | 1 |
POST/v1/slides-from-video Samples the video at sample_fps on a 160 px wide grey image, splits it into runs without change (share of pixels changing by more than 24 grey levels at most change_threshold, against the previous sample and the run start) and keeps runs lasting at least min_stable_s. The last frame of each run represents the slide; runs whose frames match an earlier slide (64-bit DCT perceptual hash within 8 bits and pixel change within the threshold) are merged as repeated appearances. | $0.02 | Base | Coinbase CDP | 1 |
POST/v1/transcript-pages Takes episodes inline or from an RSS feed whose items link transcripts via podcast:transcript (up to four transcripts are fetched, preferring VTT, JSON, SRT, HTML). Parses WebVTT voice spans, SRT cards with "Name:" speaker prefixes, word-level Podcast Namespace JSON segments (merged into sentences) and the cite/time/p HTML format, groups cues into speaker paragraphs (at most 120 words, own rule) and renders one page per episode: lang attribute, skip link, landmarks, one h1, cite for speakers… | $0.003 | Base | Coinbase CDP | 1 |
POST/v1/tts-ab-compare Decodes both clips (base64 or URL, at most 10 MiB and 60 s each) with ffmpeg 6.1 and measures each on 10 ms frames: speech segments above the silence threshold (blips under 30 ms dropped, gaps shorter than min_pause_ms bridged), leading/trailing silence, pause statistics, words per minute over the speech span and syllables per second of speech time if the text is given (vowel-group syllable count), active level, pause noise floor, sample peak, clipped samples at codec full scale, spectral… | $0.01 | Base | Coinbase CDP | 1 |
POST/v1/tts-text-normalize-de Rule-based German text normalisation for TTS front ends. Detects ISO and German numeric dates (12.11.2026, 3. Oktober), times (14:30 Uhr), amounts in EUR/USD/CHF/GBP (12,50 €), numbers with units (km/h, kWh, °C, %, Mio.), paragraphs (§ 5a), en-dash ranges, decimals, thousands separators, numbers with leading zeros (read digit by digit) and about 45 unambiguous abbreviations from the Duden list, plus your own abbreviations. | $0.005 | Base | Coinbase CDP | 1 |
POST/v1/video-denoise Filters with ffmpeg 6.1: hqdn3d (spatio-temporal, default), atadenoise (adaptive temporal averaging, keeps edges, needs a mostly static camera) or nlmeans (non-local means, best detail but slow, therefore limited to short low-resolution clips). Strength presets light/medium/strong map to fixed filter parameters stated in the response. | $0.015 | Base | Coinbase CDP | 1 |
POST/v1/video-dup-detect Both videos (up to 300 s each) are sampled at sample_fps from their start, each sample is reduced to 64×64 grey and hashed with a 64-bit DCT perceptual hash (pHash method; aspect ratio ignored, so rescaling does not matter). Flat samples (standard deviation below 4 grey levels on the 32×32 image) carry no information and are skipped. Every time offset between the two sequences is tried; at each offset a pair of samples matches when their hashes differ in at most max_hamming bits. | $0.02 | Base | Coinbase CDP | 1 |
POST/v1/video-quality-compare Both videos are decoded from start_s for duration_s (at most 60 s), converted to 8-bit YUV 4:2:0 and aligned frame by frame at the frame rate of the reference; the distorted video is scaled to the reference size with a bicubic filter when the sizes differ (the display aspect ratios must agree within 2 %). | $0.02 | Base | Coinbase CDP | 1 |
POST/v1/video-stabilize Pass 1 runs ffmpeg 6.1 vidstabdetect (vid.stab 1.1, local motion fields), pass 2 vidstabtransform with the chosen smoothing window (frames), border handling (static optimal zoom, adaptive zoom, black or kept borders) or tripod mode, followed by a light unsharp mask as the vid.stab authors recommend, then H.264 (libx264, CRF by quality) with AAC audio. | $0.02 | Base | Coinbase CDP | 1 |
POST/v1/video-text-ocr Samples the video at sample_fps; only samples whose 160 px grey image differs from the last OCR frame (more than 0.3 % of pixels changing by more than 24 levels) are read again, at most max_ocr_frames per call (the largest changes win). The chosen frames are re-extracted at up to 1280 px width (small videos are upscaled 2x) and read with Tesseract 5.3.4 (LSTM, sparse-text mode, Ubuntu tessdata eng/deu, Apache-2.0). | $0.03 | Base | Coinbase CDP | 1 |
POST/v1/pronunciation-lexicon Generate mode: takes entries (graphemes plus IPA or X-SAMPA pronunciations and/or aliases) and writes a PLS 1.0 lexicon (namespace, version, alphabet, xml:lang) in IPA or X-SAMPA, converting between them with the X-SAMPA table of J. C. Wells. Check mode: parses an existing lexicon. | $0.005 | Base | Coinbase CDP | 0 |
POST/v1/ssml-validate Parses the SSML (well-formedness, no DTD) and checks it against W3C SSML 1.1: <speak> with version="1.1", xml:lang and namespace; the content model of every element (e.g. no <p> in <s>, <desc> only in <audio>, lexicon/meta first); required attributes (say-as interpret-as, sub alias, phoneme ph, audio src, mark name, lexicon uri and xml:id); value syntax of break, emphasis, prosody and voice. | $0.005 | Base | Coinbase CDP | 0 |
POST/v1/voice-agent-eval Takes the turns of a voice-agent conversation (speaker, text, optional start/end times) and your goal criteria (required phrases per speaker, success and failure phrases). Without any language model it detects, with German and English phrase lists: agent fallback/no-match prompts, user requests for a human, agent transfers, user corrections, repeated user utterances and repeated agent prompts (normalised Levenshtein similarity >= 0.8 / 0.9), and with timestamps: response latency after each user… | $0.005 | Base | Coinbase CDP | 0 |
Is this your project? Suggest an edit.