SRT vs VTT: what's the difference?
SRT and WebVTT look almost identical, but one tiny difference decides whether your subtitles load in a browser. Here's the rundown — and a converter for when you need to switch.
…or paste subtitle text
🔒 Runs entirely in your browser. Your file is never uploaded.
The one difference that matters
SRT separates seconds and milliseconds with a COMMA (00:00:01,000). WebVTT uses a DOT (00:00:01.000) and requires a WEBVTT header line. That's exactly why an SRT file won't load in an HTML5 <track> element — the browser's VTT parser rejects the comma and the missing header.
When to use SRT
SRT is the universal interchange format: video editors (Premiere, DaVinci Resolve), desktop players (VLC), and most upload forms take SRT. If you're handing a file to a person or an editor, use SRT.
When to use VTT
WebVTT is for the web: HTML5 <video> with <track>, JS players (video.js, hls.js), and streaming manifests. VTT also supports cue positioning and styling that SRT can't carry. If the captions play in a browser, use VTT.
Converting between them
The converter below switches a file either way, in your browser: it rewrites the timestamps (comma ↔ dot), adds or strips the WEBVTT header, and leaves the text and timing untouched. Nothing is uploaded.