How do I add subtitles to a YouTube video with an SRT file?
Make the .srt file from the final cut, save it as plain UTF-8, and check that every timecode follows the 00:00:04,160 --> 00:00:06,000 pattern, that no cues overlap and that each one is readable in time. Then in YouTube Studio open Subtitles, pick the video, click Add language, choose Upload file, select With timing, pick the file and save.
The steps at a glance
A subtitle file is plain text: a start time, an end time and the words for each line. Getting it onto YouTube takes a minute. Getting it right takes these steps:
- Lock the cut before you make the subtitles.
- Pick the format: SRT for most videos, VTT when you need positioning.
- Get the words right.
- Time each cue to the voice.
- Keep every cue readable.
- Check the file before you upload it.
- Upload it in YouTube Studio and watch it back.
Written by Kevin Tabares, long-form YouTube editor since 2015: 1,277 videos and 152.2M+ views tracked on YT Jobs.
On-screen text of the key phrases is part of every lesson I edit for English by Erin Marie, a British English teaching channel I edit each week.
Step 1: Lock the cut before you make the subtitles
A subtitle file is timed to one exact version of the video. Trim two seconds out of the middle after the file exists, and every line after that point shows up two seconds late. So the subtitles are the last text job, after the picture is locked and exported.
Make them from the export you will upload, at that export’s frame rate. A file timed against a different cut, or a 30 fps draft of a 25 fps video, drifts further out of sync the longer the video runs.
Step 2: Pick the format: SRT for most videos, VTT when you need positioning
YouTube accepts a long list of caption formats. Its Help page sorts them into three groups: basic (SubRip .srt, SubViewer .sbv or .sub, MPsub, LRC, Videotron Lambda .cap), advanced (SAMI, RealText, WebVTT .vtt, TTML, DFXP) and broadcast, such as Scenarist .scc. For anyone new to caption files, it points to SubRip or SubViewer, because they only need basic timing and open in any plain text editor.
In practice the choice is between SRT and VTT:
| SubRip (.srt) | WebVTT (.vtt) | |
|---|---|---|
| First line | The cue number (1, 2, 3...) | The word WEBVTT |
| Timecode | 00:00:04,160 (comma before milliseconds) | 00:00:04.160 (dot before milliseconds) |
| Styling on YouTube | None: YouTube Help says no style markup is recognized | Only <b>, <i> and <u> |
| Positioning on YouTube | No | Yes |
| Encoding | Must be plain UTF-8 | UTF-8 (the WebVTT standard) |
A short SRT file looks like this. Each cue is a number, a timecode line and one or two lines of text, with a blank line before the next cue:
1
00:00:01,200 --> 00:00:03,900
Here are three phrases that sound polite
2
00:00:04,100 --> 00:00:06,300
but mean something else entirely.
The same two cues as WebVTT:
WEBVTT
00:00:01.200 --> 00:00:03.900
Here are three phrases that sound polite
00:00:04.100 --> 00:00:06.300
but mean something else entirely.
Use VTT when a caption has to move, for example up to the top of the frame while a name or a graphic sits at the bottom. For everything else, SRT is simpler and every editing program exports it.
Step 3: Get the words right
YouTube’s automatic captions are a fine first draft and a poor final file. They tend to slip on names, jargon and anything said over music. Read the whole file against the video, not against the script: if the speaker changed a word on camera, the subtitle should show what they said, because that is what the viewer hears.
Break lines where a reader would pause: after a comma, before “and” or “but”, never between an article and its noun. Two short lines read faster than one long line with a strange break in it. For lessons and explainers recorded to camera, how to edit talking head videos and how to edit tutorial videos cover the rest of the text on screen.
Step 4: Time each cue to the voice
A cue should appear when its words start and leave when they end, with a small gap before the next one. Three timing problems are the usual suspects:
- Overlaps. One cue starts before the previous one ends, so two lines fight for the same moment.
- Flashes. A cue on screen for less than about a second can’t be read. The checker below warns under 5/6 of a second and over 7 seconds, the limits in Netflix’s general subtitle requirements.
- Lingering. A line that stays up through a long silence makes the next one feel late. End it with the speech.
Step 5: Keep every cue readable
YouTube Help lists the formats it accepts but sets no reading speed or line length. The closest public standard is Netflix’s English (USA) Timed Text Style Guide: at most 42 characters per line, two lines at most, and up to 20 characters per second for adult programs, 17 for children’s programs.
Characters per second is easy to work out: count the characters in the cue, spaces included, and divide by how long it stays on screen. A 70 character cue shown for 2.5 seconds is 28 characters per second, far over either limit. Fast speakers produce cues like this easily. Split the cue at a natural pause into two cues rather than shrinking the text or holding it longer than the speech.
Step 6: Check the file before you upload it
YouTube won’t always tell you why a file looks wrong. Open it in the free SRT & VTT Subtitle Checker first: open or paste an .srt or .vtt file and it reads it in your browser, with nothing uploaded. It sorts what it finds into two groups:
- Errors: a timecode that can’t be read, a cue that ends before it starts, cues out of order, overlaps, empty cues, and (for opened files) bytes that are not valid UTF-8.
- Warnings: over the reading speed you pick (15, 17 or 20 characters per second; 17 by default), a line over 42 characters, more than two lines, a cue under 0.83 seconds or over 7 seconds, and less than 2 frames between cues.
Click a problem to jump to its line and fix it in the box; the check runs again as you type. It can also shift every timing by a number of milliseconds, trim overlaps so each cue ends 2 frames before the next, and sort and renumber the cues. Saving as .vtt from an .srt converts the file, and the other way round; it always saves plain UTF-8.
Step 7: Upload it in YouTube Studio and watch it back
The steps from YouTube Help, read October 19, 2026, on a computer:
- Sign in to YouTube Studio and select Subtitles in the left menu.
- Select the video.
- Click Add language and choose the language of the subtitles.
- Under “Subtitles”, click Add.
- Select Upload file, choose With timing (an SRT or VTT file has its own timecodes) and select Continue.
- Choose the file and select Save.
You can also add subtitles during the upload itself. If you only have a transcript with no timecodes, the Auto-sync option lets YouTube time it to the audio; Help notes that transcripts are not recommended for videos over an hour long or with poor audio.
Then watch the video back with captions on, on a phone as well as a computer, and skim the first minute, one minute in the middle and the last minute. Timing problems are easy to see in context and invisible in a text file.
Burned-in subtitles or a caption file?
Burned-in subtitles are part of the picture: always on, styled the way you want, and impossible to switch off, translate or correct after upload. A caption file sits on top: viewers can turn it on or off, and you can fix a typo in Studio without uploading the video again. Many channels use both: styled words burned in for emphasis, and a full caption file for everyone who watches with captions on.
How I handle subtitles on client videos
The lessons I edit for English by Erin Marie put the key phrases on screen as she says them, because learners read along. When a channel also wants a caption file, I time it from the final export rather than from the script: if the speaker changes a word on camera, the subtitles have to follow what was actually said.
When a client sends subtitles along with the footage, I leave them alone until the picture is locked. A file that is early or late by one constant amount needs a single shift. A file whose error keeps growing was timed to another cut or frame rate, so I retime it from the final export rather than nudging it. Then reading speed: dense lines get split at a natural pause. Then layout: two lines at most, 42 characters a line.
Common subtitle file mistakes
- A dot instead of a comma in SRT timecodes (00:00:04.160 is VTT style).
- No blank line between cues, so two cues read as one.
- The wrong encoding, for example an old Windows code page instead of UTF-8, so accents and curly quotes turn into junk.
- Style tags in an SRT file, which YouTube ignores.
- Subtitles made before the final trim, so everything after the change is off.
- Automatic captions published as they are, with names and terms misheard.
YouTube subtitles FAQ
What subtitle format is best for YouTube?
SubRip (.srt) for most videos. YouTube Help suggests SRT or SubViewer (.sbv) to anyone new to caption files, because they only need basic timing and can be edited in any text editor. Use WebVTT (.vtt) if you need captions to move on screen; YouTube supports positioning in VTT files.
Is SRT or VTT better for YouTube?
Both work. SRT numbers each cue, uses a comma before the milliseconds and carries no styling on YouTube. VTT starts with the line WEBVTT, uses a dot, supports positioning and allows bold, italic and underline. For plain subtitles, SRT is simpler; for captions that move, use VTT.
Why does my SRT file look wrong on YouTube?
Check the encoding, the timecodes and the blank lines first. YouTube Help says an .srt file must be plain UTF-8. Beyond that, every timecode has to follow the pattern 00:00:04,160 --> 00:00:06,000, and each cue needs a blank line before the next. Overlapping or out of order cues also cause trouble. A free subtitle checker lists each problem with its line number.
How many characters per second should subtitles be?
YouTube sets no reading speed. A widely used reference is Netflix’s English (USA) style guide: 20 characters per second for adult programs, 17 for children’s programs, two lines and 42 characters a line at most. If a cue goes over, split it at a natural pause instead of squeezing it.
Should I use With timing or Without timing when I upload subtitles?
With timing, if your file has timecodes, as every SRT and VTT file does. Without timing is for a plain transcript with no times. YouTube’s Auto-sync can also time a transcript to the audio, but YouTube Help does not recommend it for videos over an hour or with poor audio.
My subtitles are out of sync. How do I fix them?
If every line is early or late by the same amount, shift all the timings by that offset and save the file again. If the gap grows along the video, the subtitles were timed to a different cut or frame rate; remake or retime them from the final export.
Sources
YouTube Help, Supported subtitle and closed caption files: the three groups of accepted formats, SRT limited to basic files with no style markup and plain UTF-8, VTT positioning with styling limited to <b>, <i> and <u>, SRT or SBV for beginners; read October 19, 2026. YouTube Help, Add subtitles & captions: the YouTube Studio steps, With timing and Without timing, Auto-sync and its limits; read October 19, 2026. Netflix Partner Help Center, English (USA) Timed Text Style Guide: line length, number of lines and the adult and children’s reading speeds; read October 19, 2026. The minimum and maximum cue durations and the 2 frame gap are Netflix guidelines as cited on the subtitle checker page. How I edit the lessons for English by Erin Marie: the English teaching channels page.