Skip to content

SRT vs VTT: Which Subtitle Format to Export?

Updated 2026-08-19

Both formats do the same job: pair lines of text with timecodes. You will hit the choice the moment any transcription tool offers you two download buttons.

The short answer: SRT for video editors and social platforms, VTT for the open web. When in doubt, SRT — it is accepted almost everywhere.

What they look like

SRT (SubRip) — numbered blocks, comma before milliseconds:

1
00:00:00,000 --> 00:00:03,520
Hello, this is a test.

2
00:00:03,520 --> 00:00:07,128
Paste a link and get the transcript.

VTT (WebVTT) — WEBVTT header, period before milliseconds, no numbering required:

WEBVTT

00:00:00.000 --> 00:00:03.520
Hello, this is a test.

00:00:03.520 --> 00:00:07.128
Paste a link and get the transcript.

That is genuinely most of the difference. A comma, a period, a header line, and optional cue numbers.

Where each one works

DestinationSRTVTT
Premiere Pro / Final Cut / DaVinci⚠️ varies
CapCut
YouTube upload
Instagram / TikTok (via editor)
HTML5 <track> elementrequired
Vimeo
VLC and desktop players

The one hard rule in this table: HTML5 video only accepts VTT. If you are putting subtitles on your own website, SRT will not load — the browser ignores it.

What VTT can do that SRT cannot

VTT is the newer format and carries extras that SRT has no syntax for:

  • Positioning. Place a cue at the top of the frame to avoid covering a lower third.
  • Styling. CSS-like rules, plus <b>, <i>, <c.classname> inline.
  • Cue identifiers. Name a cue and target it from JavaScript.
  • Chapters and metadata tracks, not just subtitles.
  • Comments via NOTE, which SRT cannot represent at all.

In practice, almost nobody uses these. The overwhelming majority of VTT files in the wild are SRT with a different punctuation style.

What SRT has going for it

Ubiquity, and nothing else. It is older, simpler, and every tool built in the last twenty years reads it. That is a real advantage when you are handing a file to someone whose workflow you do not control.

Converting between them by hand

If you have one and need the other, the conversion is mechanical:

SRT → VTT

  1. Add WEBVTT and a blank line at the top
  2. Replace , with . in timecodes
  3. Cue numbers can stay — VTT tolerates them

VTT → SRT

  1. Delete the WEBVTT header and any NOTE blocks
  2. Replace . with , in timecodes
  3. Add sequential numbers before each cue if the player is strict
  4. Strip any positioning or styling attributes after the timecode

Any transcription tool that exports both is doing exactly this internally — including ours, which produces both from the same timestamped output.

Things that break subtitles regardless of format

  • Encoding. Save as UTF-8. Non-English characters turn into mojibake in anything else. UTF-8 with BOM occasionally confuses older players; without BOM is safer.
  • Overlapping timecodes. A cue that starts before the previous one ends is invalid. Some players silently drop it, others refuse the whole file.
  • Cues that are too long. Two lines, roughly 42 characters per line, is the readable ceiling. Longer cues get truncated or spill off-screen.
  • Cues that are too short. Under about one second is unreadable no matter how few words it holds.
  • Line breaks inside a cue. A single \n splits the line; a blank line ends the cue. Getting this wrong merges or truncates subtitles.

Which should you actually pick

Ask where the file is going:

  • Into a video editor → SRT
  • Onto your own website → VTT (nothing else works)
  • To a client, destination unknown → SRT
  • To YouTube → either
  • You want styling or positioning → VTT, and check the player supports it before you invest effort

Common questions

Can one file hold two languages? No. Both formats are single-language. Multiple languages means multiple files, selected by the player.

Do timecodes need to start at zero? No, but they must be monotonically increasing. Files that start mid-timeline are valid and common when subtitling a clip from a longer piece.

What about ASS/SSA? Advanced SubStation Alpha handles karaoke effects, complex typography and animation. It is standard in anime fansubbing and almost nowhere else. If you do not already know you need it, you do not.

Why does my SRT show up blank in a browser? Because browsers do not read SRT. Convert it to VTT — see above.

More guides