Skip to main content

Overview

Add Captions transcribes a video from your media library and burns captions onto it. Captions are on by default. The output keeps the source video’s aspect ratio.

Basic Example

media is the ID of one video in your library (a single string, not an array).
The create call answers right away with the projectId. The finished video comes later: poll GET /v1/project/{projectId} or pass a webhook (see below).

With Custom Caption Style

With Background Music


Parameters

Caption presets: any id of Get Catalog with name=caption-presets (for example wrap1, tiktok, beast, classic).
Managed teams pay 4 credits plus 4 per started 30 seconds of the video, charged when processing starts. Teams in bring-your-own-keys mode are not charged credits for generation, but need their own OpenRouter key (transcription) in Settings → AI keys. Without it the call answers 402 with code: "missing_credentials" and the missingProviders list, before anything is created or charged.

Tips for Add Captions

Clear audio: Ensure your video has clear, high-quality audio for best transcription accuracy
Set the language: Pass language when the video is not in English
Style selection: Choose caption presets that match your content style and target audience
Retry creates safely: send an Idempotency-Key header. A retry with the same key after a timeout or 5xx returns the first answer instead of charging twice

Checking the Result

Handling the Webhook Response

Webhooks are signed: check the Hooked-Signature header as shown in Webhooks.

Common Use Cases

  • Social Media Content: Add captions to make videos more engaging and accessible
  • Educational Videos: Help learners follow along with automatic captions
  • Accessibility: Make content accessible to deaf and hard-of-hearing viewers
  • Multi-Language: Caption videos in other languages with the language field
  • Silent Viewing: Enable viewers to watch without sound in public places