Captions

Burn styled captions into a video

Transcribes the speech (99 languages incl. Hebrew, word-exact timing) and burns animated captions into the video: classic, Hormozi, karaoke, one-word, news, neon, typewriter and more — or your own style (font, size, colours, outline, box, position, animation). Pass transcript_id to reuse a transcript, or captions to burn your edited text.

Billing: Per second of output (≤720p / 1080p tiers; audio and images cheaper) + transcription seconds when captions or silence removal transcribe automatically + the voice clean-up per second of output when asked for (audio.denoise / enhance, off by default) and only when it found noise to reduce or enhanced the voice (auto on a clean recording is free) + effect seconds for a heavy engine effect in effects (its seconds on screen × its measured weight — GET /v1/effects). Failed renders are not charged. · Rate limit: 30/min · Asynchronous

post/v1/studio/captions

Request

  • Base URL: https://apihub.co.il
  • URL: https://apihub.co.il/v1/studio/captions
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

Replay-safe: the same execution is returned instead of charging twice

X-Tagstring

Group calls into one job (e.g. one video) — see GET /v1/usage?tag=…

x-wait-msinteger

Wait for the job inside this call (ms)

Request body

lead_msnumber

The highlight of a word switches this many ms before the word's frame (default: one output frame)

brand_idstring

A brand of yours (GET /v1/brands): its logo (at its corner), colours, fonts and caption style fill what this request leaves out — anything you set here wins. default = your default brand

keytermsstring[]

Names and terms to recognise correctly (brands, people)

video_urlstring uri required

Public URL of the source video (mp4, mov, webm, mkv…) — or the url of a previous render

language_codestring

Spoken language for automatic transcription, e.g. he, en. Omit to detect

speech_modelsstring[]
transcript_idstring

Reuse a transcript from /v1/speech/transcripts (no transcription charge). Omit to transcribe automatically

caption_languagestring

Write the captions in this language (two letters, e.g. en, he, ru) when the video is spoken in another: the speech is translated sentence by sentence, each line keeps its sentence's time span (one small text-model call on your account, billed at the POST /v1/ai/text rate). Omit = the spoken language. Ignored when you send captions of your own or the spoken language is the same. Word-by-word karaoke becomes an even sweep over each translated line

Response

Completed (or 202 while processing)

idstring

Execution id — stable across internal retries; use it with GET /v1/executions/{id}

status'pending' | 'processing' | 'completed' | 'partial' | 'failed' | 'cancelled' | 'timeout'
operationstring
tagstring nullable

Your X-Tag, if sent

created_atstring date-time
completed_atstring date-time nullable
outputobject

Operation result (see each operation). While a Studio render is processing: stage (queued · transcribing · downloading · preparing · cleaning_voice · mixing_audio · rendering · finishing), phase (the engine's: download · prepare · voice · audio · encode · qa · upload, or null), progress (a percent, 0–100) and progress_fraction (0–1), eta_seconds (seconds left, never below 0) and estimate_seconds

errorstring nullable

Changes

No recorded changes to this operation across all 2 revisions of this API.