Why convert WebVTT back to SRT?
WebVTT is everywhere on the web — YouTube's auto-captions come down as .vtt, HLS and DASH streaming packages bundle .vtt for closed captions, and the browser's HTML5 <track> element accepts only WebVTT. But the moment you take that file off the web and into a desktop video editor, the workflow falls apart.
Adobe Premiere Pro, Final Cut Pro, DaVinci Resolve, Avid Media Composer, VLC, and most third-party transcription workflows expect SubRip (.srt). SubRip predates WebVTT by a decade, has a simpler structure (no cue settings, no inline styling, no header), and stuck around as the lingua franca of subtitle interchange between editors and broadcasters.
Three common reasons people land on this page:
- They downloaded auto-captions from YouTube (which exports .vtt for some videos and .srt for others) and need .srt to import into their NLE timeline.
- They pulled the subtitle track from an HLS or DASH stream and need to hand it off to a translator who works in Aegisub or Subtitle Edit.
- They're uploading a video to a social platform that lists .srt as the preferred format and wants a clean file without WebVTT's positioning and styling baggage.
How to convert VTT to SRT
- Drag your
.vttfile onto the drop zone above (or click to open the file picker). - The converter strips the
WEBVTTheader, NOTE/STYLE/REGION blocks, and cue settings; renumbers cues from 1; pads timestamps toHH:MM:SS,mmm(the strict SRT form); flattens<v Speaker>tags into a readable Speaker: prefix; and keeps basic styling like<i>and<b>intact. - Click Download to save the resulting
.srt. The file is generated entirely in your browser — no upload, no server-side processing.
What gets dropped in the conversion
This direction is intentionally lossy. SubRip is a smaller format than WebVTT, so anything VTT can express that SRT can't is removed cleanly rather than encoded as a hack. Specifically:
Here's the same cue in both formats — note what disappears:
WEBVTT NOTE Intro section. intro-cue 00:00:01.000 --> 00:00:04.000 line:90% align:center <v Alice>Hello, world.</v> 00:00:05.500 --> 00:00:08.250 <c.shouty>GOODBYE</c>
1 00:00:01,000 --> 00:00:04,000 Alice: Hello, world. 2 00:00:05,500 --> 00:00:08,250 GOODBYE
The WEBVTT header, the NOTE comment, the intro-cue identifier, and the line:90% align:center cue settings are all stripped. Voice tags become readable prefixes; class spans collapse to plain text. Cue indices start at 1, and the timestamp comma replaces VTT's period.
When SRT is the right choice over VTT
Pick SubRip whenever the destination is outside the browser ecosystem. That covers:
- Importing subtitles into Premiere Pro, DaVinci Resolve, Final Cut Pro, Avid Media Composer, or Adobe After Effects. These editors have their own positioning systems and don't honor VTT cue settings anyway.
- Uploading to YouTube, TikTok, Instagram, Facebook, LinkedIn, or Vimeo — all accept .srt directly and convert it to their internal caption format on their side.
- Handing the file to a translator working in Aegisub, Subtitle Edit, or any other dedicated subtitle authoring tool — SRT is the universal interchange format.
- Playing the video locally with VLC, MPC-HC, IINA, or any desktop media player — they auto-load
movie.srtwhen present next tomovie.mp4, but ignoremovie.vttin the same spot on many builds.
Keep WebVTT when the destination is the web: a self-hosted HTML5 <video>, an HLS package, or any browser-based player that requires the <track> element.