2026-10-03 · 4 min read
Burned-in captions vs sidecar files: which one short-form video needs
There are two ways to put captions on a video. You can burn them into the picture, or you can ship a separate text file next to it. They solve different problems, and picking the wrong one is a common reason captions look bad on TikTok, Reels and Shorts.
What each one is
Burned-in captions, also called open or hardcoded captions, are drawn onto the video frames. Everyone who plays the file sees them, in the exact font, color and position you chose, and nobody can turn them off. A sidecar file is a separate text file, usually SRT or VTT, that a player loads and renders itself. The viewer can switch it on and off, and the player decides how it looks.
Why short-form feeds want burned-in
Most short-form platforms either do not accept a sidecar file with your upload or style it their own way. Burned-in captions are the only version where you control the look. That matters because word-by-word highlight, big stroked text and a safe position away from the interface are what make a clip readable with the sound off. A sidecar cannot do karaoke-style highlighting in a way every player will draw the same.
When a sidecar file wins
- Accessibility archives and compliance, where users need to toggle captions or pick a language.
- Long-form video on a player you control, where viewers expect a CC button.
- Translations, because one video can carry many caption tracks without re-rendering.
- Search and indexing, where the text file is what a crawler reads.
Where caption.sh fits
caption.sh burns captions into the video. It does not export SRT or VTT sidecar files. Use it for the version people watch on a feed, with word-timed karaoke captions you can style. If you also need a transcript file for an accessibility archive, produce that with a transcription service and keep caption.sh for the render.
How to decide
Ask where the video will be played. If it lands on a social feed or in an ad, burn the captions in. If it lands on a player with a captions menu and you owe viewers a choice, ship a sidecar. Many teams do both: a burned-in cut for social and a sidecar for the long-form copy on their own site.
Try it
Judge the output in the playground at caption.sh, then grab an API key from the dashboard. The reference is at caption.sh/docs and the OpenAPI spec is at api.caption.sh/openapi.json.