Localized caption batch: eight QA checks before you ship

Eight checks for a batch of burned caption videos in several languages: script coverage, language hint, timing, key per job, and cost. Sume job behavior.

5 min readSume
All posts

Before you ship a batch of captioned videos in several languages, check eight things: the script is covered by a documented face, the language hint matches the speech, the source has audible speech, the cue times fit the translated text, each job has its own Idempotency-Key, no job reuses another's timings, the cost matches the number of languages, and every output is watched once. Each check below maps to behavior on the Video captions page.

The guidance is limited to what the docs state; the translations are yours.

1. Does every language have a documented face?

The docs list Latin styles and Hangul styles. Korean copy on a Latin style returns 400 (caption_hangul_text_latin_style). For other scripts nothing is documented, so test one clip. See Japanese, Chinese or Arabic captions.

2. Is the language hint right?

language is a speech-to-text hint such as ko or en; omit it for automatic detection. It never selects the style or font. Use it when the speech is clear and you know the language, and omit it when a clip mixes languages.

3 to 5. Speech, timing, and keys

A silent clip fails as caption_no_speech with next_action: use_overlay_captions; send cues with text, start, and end instead. Translated text often needs more time on screen, so check each cue against its window. Use a different Idempotency-Key per language and per deliberate rerun, and reuse a key only for the same payload.

Checks mapped to docs behavior, read 2026-10-02.
CheckDocs behaviorError or field
Hangul on Latin styleRejected before billingcaption_hangul_text_latin_style
Silent clipFails, suggests overlay captionscaption_no_speech
Script does not alignTyped failure; omit script_textscript_alignment_mismatch
Out-of-range design number400 at request timedesign fields
Dubbed fileNeeds its own jobvideo_url, not source_caption_id

6 to 8. Reuse, cost, and the final watch

source_caption_id reuses the source video and word timings, so it is for restyling the same clip, not a dub. See caption a dubbed video. Each accepted job is $0.20 for video up to 60 seconds, so N languages are N times $0.20.

Last, watch every output once. The docs say the caption stage returns a video, and a render that looks wrong still bills as a good one, so a skim of each language is the cheapest check you have.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume