Video APIv1 Home OpenAPI spec

Docs › Captions (Pro and Scale)

Captions (Pro and Scale)

Add "captions": true to complete, an import, an edit or a reprocess, and we transcribe the speech into subtitles. The language is detected automatically; to set it, send {"language": "es"} (an ISO 639-1 code such as en, es, fr, de, ja, zh).

POST /videos/3f1c…/complete
{ "captions": true }

GET /videos/3f1c… (once ready)
"captions": { "status": "ready", "language": "en",
              "vttUrl": "https://…/en.vtt?…", "srtUrl": "https://…/en.srt?…", "txtUrl": "https://…/en.txt?…" }
  • The video doesn't wait. It's published and playable first; captions follow, typically a few minutes later. Until then captions.status is processing (keep polling, or wait for the webhook).
  • Files: WebVTT (vttUrl, for <track> and most players), SRT (srtUrl) and a plain-text transcript (txtUrl). The links last 15 minutes, like downloads.
  • Streaming: the HLS stream also gets a subtitle track, so standard players show a CC button automatically.
  • Never blocks or fails your video: if captions can't be made, captions.status is failed and the video is unaffected. Over the limits below it's skipped with a reason.
  • Cost: each captioned minute counts as 2 extra processing minutes (minimum 1), only when a transcript is actually made. A reprocess with the same trim reuses the earlier transcript at no charge.
  • Limits: videos up to 4 hours; 1,200 captioned minutes per account per day.