Guides/srt file

SUBTITLES / 8 MIN READ

What is an SRT file? The subtitle format everything still reads.

An SRT is a plain-text file that says when each line appears and when it disappears. No styling, no positioning, no container — which is exactly why every editor, player and upload form still accepts one.

SRT stands for SubRip Subtitle. The format came out of a tool for extracting subtitles from DVDs in the late 1990s, and nothing replaced it. Open the file in any text editor and you see precisely what a player sees: a number, a time range, the words, a blank line. There is no header to get wrong and nothing binary to corrupt.

The short answer

An SRT file is a sequence of cues. Each cue is four parts: a sequential number, a time range written 00:00:02,500 --> 00:00:05,000, the text the viewer reads, and a blank line that closes it. Because every part is plain text, you can fix a typo in Notepad, TextEdit or vim and the file is still valid — no export step, no re-encode.

That is the whole specification in practice. Everything else people believe about SRT — that it needs software, that it is a video format, that changing the extension does something — comes from never having opened one.

What is actually inside the file

A two-cue SRT, and what each line does.

example.srt
1
00:00:02,500 --> 00:00:05,000
Welcome back to the channel.

2
00:00:05,400 --> 00:00:07,200
Today we are rebuilding the intro.
what each line is
cue number — 1, 2, 3, in order
start --> end, with a comma before milliseconds
the words the viewer reads
(blank line — this is what ends the cue)
next cue number
next time range

The blank line is not cosmetic. It is the delimiter: a parser reads lines until it hits an empty one, then starts the next cue. Delete a blank line and two cues merge into one block whose text runs together on screen — the most common "my subtitles are broken" that is not actually a format problem.

  • The comma matters. 00:00:02,500 is SRT. 00:00:02.500 is WebVTT. Same numbers, different separator, and a strict parser rejects the whole file over it.
  • The numbers do not have to be meaningful, but they have to be there. Some players renumber on load; upload forms and editors often refuse a file that starts at 2.
  • Timing is absolute, not relative. Every cue carries its own start and end. There is no "previous cue plus two seconds" anywhere in the format.
  • Encoding is invisible until it is not. UTF-8 without a BOM is the safe default; a BOM is tolerated by some players and rendered as a stray character by others.

Why a plain-text format survived

SRT won because it is impossible to half-support. A program that can read three lines of text can read an SRT; there is no container to parse, no version negotiation, no codec. That is why the format shows up in places nobody designed for it — a spreadsheet of quotes, a translation handoff, a subtitle track uploaded back to a platform in 2026.

The trade-off is that SRT carries only what it was designed to carry. If you need anything beyond "this text, at this time", the format does not stretch — you need a different one.

What an SRT cannot carry

You wantIn an SRTWhat to use instead
Move one cue to the top of the screenNot possible — position is a player settingWebVTT cue settings
Different colours or fonts per speakerInline tags that each app interprets differentlyWebVTT STYLE block plus CSS classes
Say who is speakingNo standard field — people type - JOHN:WebVTT <v John>
Carry chapters or metadataNothing outside cuesA sidecar file, or the platform's own metadata
Ship a single self-contained file for the webNeeds converting firstWebVTT, which <track> reads natively

If you are weighing SRT against WebVTT for a specific job, that comparison has its own page — SRT vs VTT. This article is only about what an SRT is.

How to open or edit one

  • Any text editor — Double-click and read it. This is the fastest way to check whether a file is really SRT — the first line should be a bare number, not WEBVTT.
  • VLC or mpv — Load the video, then drag the .srt onto the window. If it does not appear, the problem is in the file, not the player.
  • Premiere, Final Cut, DaVinci Resolve — Import as a caption track. All three accept SRT directly and will keep the timings.
  • Subtitle Edit — Open source, and the only free tool worth naming for retiming: it shows the audio waveform behind the cues so you can drag a line onto the syllable.
One rule when hand-editing

Never let an editor "help" with the blank lines. Trailing whitespace, auto-indent and smart quotes all break the structure silently — the file still opens, it just stops working. Edit in a plain-text mode and save as UTF-8.

Why an SRT sometimes shows nothing

  1. Cue numbers were renumbered or removedConverting a file through a spreadsheet, or copy-pasting half of it, often drops the counter. A player then has nothing to separate one cue from the next, and shows nothing at all rather than showing something wrong.What to do: Renumber from 1, consecutively, each followed by its own time range. The numbers carry no meaning, but their presence and order do.
  2. A blank line between cues went missingSome editors strip "trailing blank lines" on save. The result is one enormous cue: every line of dialogue stacked on screen at the same moment, from the first timestamp to the last.What to do: Exactly one empty line between cues. Not two, not none, and no spaces on the empty line.
  3. The file is not really UTF-8, or it has a BOMAccented characters and non-Latin scripts come out as mojibake, or the first character of the first line is invisible and the parser fails before it reads anything else.What to do: Re-save as UTF-8 without a BOM, then open the file and confirm the first cue still starts with a number.

Getting an SRT from a YouTube video

You do not have to build one by hand. If the video already publishes a caption track, the same track can be written out as SRT, WebVTT or plain text — the words and the timing come from YouTube, only the wrapper changes. What that cannot do is invent a track: a video with captions disabled produces no file in any format.

One track, three formats

Paste a public YouTube link, check which tracks the video actually has, then save SRT, VTT or TXT. Three extractions a day are free without an account; after that a signed-in account costs 1 credit per video, and a new account starts with 5. Failed extractions are not charged.

Open the subtitle downloader
NEXT

Need the other format?

SRT and WebVTT differ in four ways that actually break files — the separator, the header, the counter and positioning. Here is which one your next step needs.

Compare SRT and VTT

More on subtitles