Free SRT to VTT Converter

Convert SubRip (.srt) subtitle files to WebVTT (.vtt) in your browser. Required for HTML5 `<track>` elements and most modern web video players.

Drop your .srt file here

Or click to choose a file from your device. Max ~10 MB recommended.

How it works

Conversion happens entirely in your browser using JavaScript. Your file never leaves your device — no upload to our servers, no signup, no rate limits.

Pick a .srt file

Drag and drop, or click to choose. Conversion runs in JavaScript on your machine — the file never touches a server.

Auto-convert to WebVTT

We parse the SubRip cues, rewrite the timestamps with periods, and prepend the required `WEBVTT` signature. Cue text and timings are byte-identical on the output side.

Download or copy

Save the .vtt file and drop it into your HTML5 `<video>` element with a `<track>` tag, or paste it into your CMS. Works in every modern browser without polyfills.

SRT (SubRip) vs WebVTT (.vtt)

The two formats look almost identical — the differences are small but they matter for which players will accept your file.

SRT (SubRip)

1
00:00:01,200 --> 00:00:03,500
First caption line
Second caption line

2
00:00:04,000 --> 00:00:06,000
Another caption
  • Decimal separator: comma (`,`) — `00:00:01,200`.
  • Cue numbering: required, sequential, starts at 1.
  • Styling: none — plain text only. No positioning, no colors, no speaker tags.
  • Compatibility: VLC, MX Player, YouTube, Premiere, Final Cut, DaVinci Resolve, Plex.

WebVTT (.vtt)

WEBVTT

1
00:00:01.200 --> 00:00:03.500
First caption line
Second caption line

2
00:00:04.000 --> 00:00:06.000
Another caption
  • Header required: the file must start with `WEBVTT`.
  • Decimal separator: period (`.`) — `00:00:01.200`.
  • Extras: supports cue settings (position, alignment), `<v Speaker>` tags, CSS `STYLE` blocks, and `NOTE` comments.
  • Compatibility: every modern browser via the `<track>` element. Required by HTML5 video.

Common questions

8 questions people ask about this.

01Why do I need a WebVTT file instead of SRT?+
HTML5 `<video><track src=…></video>` requires WebVTT. Most browser-native video players, YouTube embeds with custom captions, and JavaScript players like video.js and Plyr need .vtt — they won't load .srt directly. WebVTT is also required for adaptive streaming captions in HLS.
02Will my timings be preserved exactly?+
Yes — to the millisecond. We only swap the decimal separator (`,` → `.`) and prepend the `WEBVTT` header. Cue text, line breaks, and the `-->` arrow are passed through unchanged.
03Does the converted VTT include cue settings or styling?+
No. SRT has no concept of cue settings, so we emit plain timing lines. You can add `STYLE` blocks, cue settings, or `<v Speaker>` tags by hand after conversion if needed.
04Will speaker labels from my SRT survive?+
Yes — but as plain text, the same as they were in the SRT. SRT files commonly include labels like `John: Hi there` as part of the cue text. WebVTT has a richer `<v John>Hi there</v>` syntax, but this converter doesn't try to detect and rewrite labels (too many false positives). Add `<v>` tags manually if you need them.
05Does this work for very long files?+
Yes. We've tested with 8-hour conference recordings (~5,000 cues). Conversion is memory-bound, not CPU-bound, so the only practical limit is your device's RAM.
06Why not just rename the .srt to .vtt?+
It won't work. WebVTT players check for the `WEBVTT` signature on the first line and reject files without it. The timestamp separator also differs (`,` vs `.`) — most strict parsers will fail on mixed files.
07Can I go back to SRT later?+
Yes — use our [VTT to SRT converter](/tools/vtt-to-srt). The roundtrip is lossless for cue text and timings.
08Is this free, and what's the catch?+
No catch. The catch is we hope you remember us when you need to generate subtitles from audio or video — that's our paid product. Conversion is free forever.

Need subtitles in the first place?

Upload audio or video, get accurate SRT, VTT, DOCX, or PDF captions in 100+ languages. Free tier covers 30 min/month — no card.

Try transcription free