Captions are timed text that shows what people say and identifies important sounds, such as applause or an alarm. They help viewers who are deaf or hard of hearing, and anyone watching with the sound off. A transcript contains the words but usually has no timing, so it cannot serve as on-screen captions by itself.
If you’re making a narrated explainer from scratch, explainroo creates the video and adds captions. If you already have camera footage, use your video host’s caption-upload or editing feature instead: explainroo does not edit existing footage.
Create and check the caption text
Start with the final video’s audio. Use a script or an automatic transcript as a draft, then check every line against what viewers will hear. Correct names and numbers, along with technical terms. Label the speaker when it is unclear who is talking. Describe sounds that matter to the scene, such as [door closes] or [applause]. The W3C captioning guidance says captions sync text with relevant speech and other sounds.
Split the text into short caption blocks. Show each block when its speech or sound starts, and remove it when that speech or sound ends. Keep lines brief, use logical phrase breaks, and avoid covering faces, charts, or other important visuals. Automatic captions save time, but check them before publishing. W3C warns that transcription errors can change a sentence’s meaning.
Add captions with explainroo
explainroo is a free, open-source kit that coding agents use to create narrated explainer videos and product demos. For a new explainer, ask a coding agent to create the video. explainroo generates narration and timing, then adds word-by-word captions to tall, portrait, and square videos.
Paste this prompt into a coding agent that can run shell commands, replacing the bracketed topic:
Make me a short explainer video about [your topic]. Use explainroo for it: clone the explainroo repository, read its AGENTS.md and follow the steps.
The agent sets up explainroo, creates and checks the video, and provides an MP4 file. It writes script.md, which contains the narration, and scenes.js, which describes the visuals. You can ask the agent to revise them if the wording or scenes need changes. explainroo works with several coding agents and works best with Claude Code; see the documentation for details.
Use this approach for videos you create from scratch. It does not add captions to existing camera footage, and it does not provide a drag-and-drop editor.
Upload or attach captions to existing video
For footage you already have, create or correct a caption track, then attach it through the video host’s caption settings. A caption track is a separate file viewers can turn on or off. Common formats include SRT and WebVTT; use the format your host accepts. On your own website, add a WebVTT captions track with the HTML video element’s track feature, as shown in the W3C implementation guidance.
Some hosts also let you enter captions manually or edit automatic captions on the video page. For example, YouTube’s caption options let you upload a file or sync a transcript; you can also enter captions manually. After publishing, play the video with captions enabled. In the actual player, check the wording and timing, then make sure the captions are readable.