What is an SRT file, exactly?
It's a text file with a .srt extension. Open one in Notepad and you can read every line. There's no video, audio or styling data in it, only text and timestamps. That simplicity is why almost everything supports it: YouTube, Vimeo, Facebook, LinkedIn, VLC, Premiere, DaVinci Resolve, and most course platforms.
The name comes from SubRip, a Windows program first released in 2000 that pulled subtitles off DVDs with optical character recognition and saved them in this format. SubRip itself hasn't had an update since 2018. The format outlived it.
The SRT file format, line by line
Here are two subtitles from a real-looking SRT file:
1
00:00:01,000 --> 00:00:04,200
Hi, I'm Priya, and today
I'm editing a video in ten minutes.
2
00:00:04,600 --> 00:00:07,050
<i>First, the rough cut.</i>
Each block has four parts, always in this order:
- A sequence number, starting at 1 and counting up.
-
The timing line: start time, a space, the arrow
-->, a space, and the end time. Times are writtenHH:MM:SS,mmm, so hours, minutes and seconds with two digits each, then a comma and three digits of milliseconds.00:00:04,200means 4.2 seconds in. - The text, on one or two lines. More lines work, but two is the usual limit for readability.
- A blank line, which ends the block.
Many players also understand a few HTML-style tags: <i> for italics, <b> for bold,
<u> for underline and <font color="..."> for color. Support varies. YouTube's
supported caption formats page says it recognizes no
style markup in SRT files and wants them in plain UTF-8, so don't rely on tags there. The format details above match the
SubRip article on Wikipedia.
Common mistakes that break an SRT file
Most "my subtitles won't load" problems come down to one of these:
- A dot instead of a comma before the milliseconds (
00:00:04.200). That's VTT syntax. Some players forgive it, many don't. - The wrong text encoding. Accented letters turn into junk like é. Save the file as UTF-8.
- A missing blank line between blocks, so the player reads the next number as part of the text.
- Overlapping times, where a subtitle starts before the previous one ends. Players handle this differently: some stack both lines, some drop one.
- Saving as rich text. TextEdit on a Mac does this by default, and you end up with formatting codes inside the file.
- A hidden .txt ending, so the file is really called subtitles.srt.txt. Turn on file extensions in your file manager to check.
SRT vs VTT
WebVTT (.vtt) started as an extension of SRT for the web, and it's the format the HTML video player reads natively. The two look almost the same, with a few differences that matter:
| SRT | VTT | |
|---|---|---|
| First line | Starts straight with subtitle 1 | Must start with WEBVTT |
| Millisecond separator | Comma: 00:00:04,200 | Dot: 00:00:04.200 |
| Hours in timestamps | Required | Optional |
| Cue numbers | Required | Optional |
| Positioning | None | Cue settings for line, position, size and alignment |
| Styling | A few HTML tags, if the player allows | CSS styling via STYLE blocks and the ::cue selector |
| Encoding | Anything, UTF-8 recommended | UTF-8 only |
The rules for VTT are in the W3C WebVTT specification. Our rule of
thumb: use SRT for uploads to YouTube, social platforms and video editors, since it's the most widely accepted. Use VTT for a
<video> tag on your own website, or when you need captions positioned somewhere other than the bottom.
How to open and edit an SRT file
Any text editor opens it. That's fine for fixing a typo. For anything involving timing, a subtitle editor is much nicer, because it shows the video and a waveform next to the lines. Subtitle Edit is free and open source, and it converts between SRT, VTT and dozens of other formats. Aegisub is another free option, built mainly for the ASS format that anime fansubbers use, but it opens and saves SRT too.
You can also drop an SRT and its video into our burn-in tool at the same time, edit the
lines against the picture, and download the corrected SRT or a video with the subtitles burned in. Two things to know: it drops
formatting tags like <i> on import, and it joins a two-line subtitle into one line (the video preview wraps it
again), so check italics and line breaks if they matter to you.
How to make an SRT file
By hand
On Windows, open Notepad. On a Mac, open TextEdit and choose Format, then Make Plain Text, before you type anything. Write the blocks exactly as in the example above: number, timing line, text, blank line. Get the times by pausing your video player and reading the clock. Then save the file with a .srt extension and UTF-8 encoding. In Notepad, pick "All files" as the type so it doesn't add .txt.
It works, and it's tedious. A 10-minute talk has somewhere around 150 to 200 subtitle blocks. Hand-typing makes sense for a 30-second clip or for fixing a few lines. For anything longer, generate a draft and correct it.
Automatically from a video
Drop the video into our SRT generator. It sends a compressed audio track to a Whisper speech model, gets back every word with its timing, and groups the words into lines of up to about 42 characters and 5 seconds. You check the text, fix names and numbers, and download the .srt. It's the same engine as our auto captions tool, set up to put the file download first.
How to use an SRT file
On YouTube, open YouTube Studio, choose Subtitles, pick the video and language, click Add, then Upload file and With timing. That replaces the automatic track with your checked one. If you're still deciding whether YouTube's own captions are good enough, see how YouTube auto captions work.
In VLC, play the video, then choose Subtitle, then Add Subtitle File, and pick the .srt. If the SRT has the same name as the video and sits in the same folder, VLC usually loads it on its own.
For TikTok, Reels or anywhere that doesn't take subtitle files, burn the SRT into the video so the text becomes part of the picture.