Treat captions as a versioned deliverable with real review steps.
Keep tracks separate from the video
Store a caption file as a related asset with language, label, kind, version, and review status. The HTML track element can attach a WebVTT track to a video. Keep captions editable without re-encoding the video, and make the default language a deliberate product choice.
Review timing and meaning
Automatic speech recognition provides a draft, not a guaranteed accurate caption. Review names, technical terms, speaker changes, and timing against playback. Include meaningful non-speech audio where it affects understanding. Record who approved a track without inventing a public author identity.
Handle changes together
If a video is trimmed, replace or retime its captions before publishing the new cut. Validate the track URL, MIME type, and CORS behavior in the actual player. A caption file that exists in storage but never appears in controls has not completed the workflow.
A concrete acceptance test
Publish a revised cut with a caption track, then trim several seconds from the opening. Confirm that the old track is withdrawn and the revised cues remain aligned. Run this test with a realistic asset and record the observed state, output URL, and failure reason.
Implementation check
- Version each track with its language and video cut.
- Review names, timing, and important non-speech audio.
- Test the track in the real player controls.
Related guides
Primary reference: Official documentation.
