wordtospeechEngine ready

Adding subtitles to a YouTube video from a script

If you narrated from a written script, you already have everything YouTube needs. Here is the route that keeps the captions exact instead of letting auto-captions guess.

YouTube will caption your video for free, automatically, and get most of it right. “Most” is the problem — auto-captions mishear names, technical terms, and anything said quickly, and they arrive with no punctuation worth the name.

If your narration came from a written script, you never needed them to guess.

Why uploading your own is worth it

Accuracy is the obvious one: auto-captions transcribe what the recogniser thought it heard, while your file contains what was actually said, because you wrote it. Punctuation and casing survive too — auto-captions are famously flat, no commas, no sentence breaks, product names lowercased, and a file you supply keeps all of that intact.

It also helps search, since YouTube indexes caption text and accurate captions with real punctuation are better material to index than a run-on transcript with three words wrong. And it’s the only honest route to accessibility — auto-captions aren’t considered adequate for compliance, and viewers who rely on captions can tell the difference immediately.

The route

1. Narrate from the script. Whether you record yourself or synthesise the voice, keep the script — it is the source of truth for the caption text.

2. Get a timed file. If you synthesised the audio, the engine can report when each word was spoken, so the timings are measured rather than estimated. Export SRT.

Text to SRT: from a paragraph to a subtitle file

3. Upload it. In YouTube Studio: Subtitles, pick the video, then Add languageSubtitlesUpload fileWith timing. SRT is accepted directly; no conversion needed.

4. Check the last cue. Not the first. Timing drift accumulates, so a file that looks correct at the start can be seconds out by the end. This one check catches the most common failure in the whole process.

What trips people up

Editing the video after generating captions is the most common mistake — any cut changes every subsequent timing, so lock the edit before you make the caption file or expect to redo it. Changing the narration speed afterwards causes the same problem from a different direction: synthesise at 1.0x, then render at 1.2x, and the caption file now describes audio that no longer exists. Set the rate first.

Re-synthesising to fix a single word breaks things too, since speech synthesis isn’t deterministic — the new audio comes out slightly different, and the old caption file no longer matches it, so regenerate both together, always. And don’t assume YouTube will clean up long cues for you. It won’t. A cue holding thirty words uploads happily and reads terribly.

Subtitle timing rules: cue length, reading speed and line breaks

Should you burn them in instead?

For long-form YouTube, no. Uploaded caption tracks are better: viewers can turn them off, YouTube indexes them, translation tools can work from them, and they scale to the viewer’s own text size settings. Burned-in captions do none of that.

Short-form is the opposite case, and worth its own answer.

Captions for short-form video: TikTok, Reels and Shorts

← All notes