SRT vs VTT vs TXT: Which YouTube Caption Format Should You Use?
You’ve downloaded a YouTube caption track and the tool gave you three buttons: SRT, VTT, TXT. They look interchangeable, but they’re not. Picking the wrong one costs you time — burned-in subtitles that don’t sync, web embeds that won’t style, transcripts that still carry timestamps you don’t need. This guide explains what each format actually is, where it shines, and how to convert between them when you’ve picked wrong.
For the broader download workflow, see our complete guide to downloading YouTube captions.
At a glance
| Format | Full name | Best for | Spec / owner |
|---|---|---|---|
| SRT | SubRip | Video editors (Premiere, DaVinci, Final Cut), VLC, OBS, hardware players | De facto standard, originated with the SubRip ripper in the late 1990s |
| VTT | WebVTT | HTML5 <video> element, web embeds, styled captions |
W3C standard (current: WebVTT 1.1) |
| TXT | Plain text | Reading, note-taking, copy/paste, feeding into other text tools | No spec — just Unicode text |
The decision rule that handles 90% of cases:
- Editing video? → SRT
- Embedding on a website? → VTT
- Reading or quoting? → TXT
Everything below is the nuance behind that rule.
What SRT actually looks like
SRT is the simplest of the three. A file is a series of cues, each made of an index, a timestamp range, and the caption text:
1
00:00:01,000 --> 00:00:04,500
Welcome to the channel.
2
00:00:05,000 --> 00:00:09,200
Today we're talking about captions.
Two things to notice:
- The timestamp uses a comma for the millisecond separator (
00:00:01,000). VTT uses a dot (00:00:01.000). This is the most common cause of “SRT not loading” bugs in web players. - SRT has no styling. No colors, no positioning, no speaker labels. If your player supports styling, it’s usually via a sidecar format like ASS/SSA.
SRT opens in nearly every desktop video player and every mainstream non-linear editor. The Matroska project keeps the canonical SRT reference.
What VTT actually looks like
VTT — WebVTT — is the W3C standard for HTML5 captions. It looks similar to SRT but adds a header and supports styling and positioning:
WEBVTT
1
00:00:01.000 --> 00:00:04.500
Welcome to the channel.
2
00:00:05.000 --> 00:00:09.200 align:center
Today we're talking about captions.
Differences that matter:
- Header line: a VTT file must start with
WEBVTT. - Dot, not comma: milliseconds use
.per the W3C spec. - Cue settings: positioning (
align:center,line:90%), styling (<c.classname>text</c>), and even voice tags are supported. - Native browser support: every modern browser plays VTT in
<video>with<track kind="captions" src="captions.vtt" srclang="en" label="English">.
If you’re embedding a YouTube video on your own page and you want captions on that embed, VTT is what you want. YouTube’s own player uses a similar format internally.
What TXT actually looks like
TXT is just the words:
Welcome to the channel.
Today we're talking about captions.
No timestamps, no styling, no header. Useful for:
- Reading the transcript on a phone.
- Pasting into a search index or RAG pipeline.
- Feeding into a blog draft, show notes, or study guide.
The trade-off: TXT loses the timing. You can’t burn TXT onto a video. If you only saved TXT and need the timing later, you have to either re-download as SRT/VTT or extract the words and re-time them by hand — neither is fast.
Choosing by use case
Editing in Premiere, DaVinci, Final Cut
Use SRT. Every major NLE imports SRT natively. The import is usually a “Import > Captions” or “Import > Subtitle” dialog and gives you a text track you can edit cue-by-cue.
VTT imports in newer versions of these editors (Premiere 2022+, DaVinci 18+) but with quirks — some styling cues get dropped, and the dot-vs-comma timestamp can trip up older parsers. SRT is the safe bet.
Playing on VLC, OBS, or a hardware media player
Use SRT. VLC and OBS accept SRT without configuration. Hardware players (set-top boxes, in-car displays, hotel TVs) often only accept SRT.
Embedding on a website
Use VTT. The <track> element in HTML5 reads VTT directly:
<video controls>
<source src="video.mp4" type="video/mp4">
<track kind="captions" src="captions.vtt" srclang="en" label="English" default>
</video>
Browsers handle rendering, positioning, and styling. You get free keyboard shortcut support (C toggles captions on most browsers), automatic language selection, and accessibility compliance without writing JavaScript.
Reading, note-taking, or feeding an LLM
Use TXT. Cleanest for the job. If you’ve already saved as SRT, you can strip the timestamps with a one-line regex.
Republishing captions under CC-BY
Use whichever format the license dictates. CC-BY caption tracks on archive.org often ship as SRT or VTT — match the format the publisher chose.
Converting between formats
When you have one and need another:
SRT → VTT
Drop the index lines and switch commas to dots in timestamps, then prepend WEBVTT. There are dozens of one-click converters; the simplest reliable path is ffmpeg:
ffmpeg -i input.srt output.vtt
ffmpeg writes a valid VTT header for you.
VTT → SRT
Drop the WEBVTT header, switch dots back to commas, and re-add the cue indices if missing:
# In a text editor or with sed
sed -e 's/WEBVTT//' -e 's/\./,/g' input.vtt > output.srt
Edge case: VTT-only styling cues (positioning, colors) have no SRT equivalent and will be silently dropped.
SRT / VTT → TXT
Strip everything that isn’t caption text. A regex-based approach:
# Removes indices and timestamp lines from an SRT
sed -e '/^$/d' -e '/^[0-9]*$/d' -e '/-->/d' input.srt > output.txt
For VTT, drop the WEBVTT header first. Most modern tools like YouTube Caption Downloader do this conversion on the server side when you pick the TXT button — no local tooling required.
TXT → SRT / VTT
This is the one conversion that requires manual work. You have to re-time the captions against the audio. If you don’t have the original file, you’re better off re-downloading as SRT/VTT.
Common pitfalls
- Commas vs dots in timestamps. SRT expects
,; VTT expects.. Wrong separator → the parser ignores the cue silently. The file “loads” but the captions are missing. - Encoding. SRT and VTT are both UTF-8 by spec. If you see
éinstead ofé, the file was saved as Latin-1. - Empty cues. SRT and VTT both reject cues with no text. Some auto-generators produce empty cues for music sections; clean them up before delivery.
- Cue overlap. SRT and VTT both require non-overlapping cues. Players handle overlapping cues inconsistently — usually by skipping the second one.
- Line endings. SRT was originally Windows-CRLF; most parsers handle either, but some legacy tools don’t.
FAQ
Which format is best for downloading YouTube captions? It depends on what you’ll do next. For editing or VLC playback, SRT. For web embeds, VTT. For reading or note-taking, TXT. See the complete download guide.
Can I convert SRT to VTT without losing data? Yes, for timecodes and text. VTT supports more styling than SRT, so a plain SRT converts cleanly. Going VTT → SRT will drop any styling cues.
Do all video players support SRT? Almost all desktop players do. Mobile players are uneven — most iOS and Android players require captions to be embedded in the video or delivered as a sidecar VTT file.
Do I need a special tool to read VTT? No. Any modern browser opens VTT as a text file. You can also open it in VS Code, Sublime, or Notepad.
Is WebVTT the same as VTT? Yes. “WebVTT” is the formal spec name; “VTT” is the file extension and common shorthand.
Can I edit SRT or VTT files in a text editor? Yes. Both are plain UTF-8 text. Use any editor — VS Code, Sublime, Notepad, vim.
Methodology
We exported the same YouTube video’s captions in all three formats using YouTube Caption Downloader, then tested playback in VLC 3.x, OBS 30, Premiere Pro 2024, and the latest Chrome and Safari. We also tested HTML5 <track> integration with VTT files in a sample page. All conversions referenced in this article were reproduced with the ffmpeg and sed commands shown above.
Conclusion
Pick by destination: SRT for editing, VTT for the web, TXT for reading. The three formats cover essentially every YouTube caption use case, and the conversions between them are lossless as long as you’re not carrying styling cues.
For the full download workflow, see the complete guide to downloading YouTube captions. If you’re picking a format for accessibility reasons specifically, our accessibility guide covers WCAG considerations in more detail.
About the author: The YouTube Caption Downloader Team maintains the free, no-signup downloader at youtube-caption-downloader.com. The team includes engineers who work with SRT, VTT, and broadcast subtitle formats daily.
Last updated: 2026-10-09
Sources:
- W3C WebVTT 1.1 specification
- Matroska SRT subtitles reference
- YouTube Help: Subtitles and captions
- MDN: <track> element
Share Article