VTT to SRT
Converter
Convert WebVTT subtitle files to SRT format. Upload a file or paste content directly — conversion happens instantly in your browser.
How It Works
Paste or Upload
Paste VTT content or upload a .vtt subtitle file.
Instant Convert
Timestamps and cues are converted to SRT format automatically.
Download or Copy
Download as .srt or copy the output to your clipboard.
Convert VTT to SRT subtitles online to make captions compatible with media players, editors, and platforms that reject WebVTT. ConverterUp's VTT to SRT converter parses cue numbers, timestamps, and styling, then rewrites them in the SRT format used by tools like VLC, Premiere Pro, and most TV media players. It is helpful for video editors importing browser-recorded captions and for translators delivering subtitle files to clients. Conversion runs locally in your browser, so dialogue from unreleased videos never gets uploaded.
WebVTT vs SubRip: format differences that matter
WebVTT (Web Video Text Tracks, .vtt) is the W3C standard built for HTML5 <track> elements. It opens with a mandatory WEBVTT header, uses dot separators in timestamps (00:00:01.500), and supports inline styling, cue positioning, CSS classes, region definitions, and chapter metadata. It is the only format YouTube exports for downloadable captions and the only format most browsers accept natively.
SubRip (.srt) is the older, simpler format. No header, no styling, comma separators in timestamps (00:00:01,500), and a sequential integer cue number before every block. SRT is what every editor (Premiere Pro, Final Cut, DaVinci Resolve, Avid) accepts on import, what set-top boxes and smart TVs read from USB drives, and what most translation agencies deliver.
Timing precision is identical — both formats use millisecond resolution (HH:MM:SS.mmm / HH:MM:SS,mmm). The only timestamp difference is the decimal separator, which is a one-character regex replace. Everything else that differs lives in the styling and positioning features that VTT adds and SRT lacks.
When you convert VTT → SRT, expect to lose: inline <c.classname> CSS classes, <v Speaker> voice tags, line: and position: cue settings, NOTE blocks, STYLE blocks, region definitions, and chapter markers. You keep: all dialogue text, timestamps, cue order, and basic line breaks within a cue. For 95 % of subtitle workflows this is a lossless round-trip.
ToolSeo.vtt-to-srt.section1.p5
Where each format is used in the pipeline
HTML5 video (<video><track src='captions.vtt'>) only accepts WebVTT. Chrome, Firefox, Safari, and Edge all refuse SRT directly. If you have SRT and need to display in a browser, convert to VTT first or use a player library (Video.js, Plyr) that does the conversion automatically at runtime.
YouTube accepts SRT, VTT, SBV, TTML, and SCC on upload, but exports only as SRT or VTT. Vimeo requires VTT for uploaded captions. Netflix, Disney+, Prime Video use their own broadcast-grade formats internally (IMSC, TTML, EBU-STL) but accept SRT and VTT as deliverables from translation partners.
NLE editors are SRT-first. Adobe Premiere Pro, DaVinci Resolve, and Final Cut Pro X import SRT directly into the captions track with frame-accurate timing. They also import VTT but discard styling. Avid Media Composer requires SRT or its proprietary .txt format. Going from a YouTube auto-caption (VTT) into Premiere for cleanup means converting to SRT first.
Media players: VLC, mpv, MPC-HC, and most smart TVs auto-detect a sidecar .srt file with the same name as the video. They also read VTT but the support is patchier on older firmware. For DVD/Blu-ray players reading subtitles from USB, ship SRT — it is the universal lingua franca.
ToolSeo.vtt-to-srt.section2.p5
Common conversion issues and how to fix them
BOM (byte-order mark) corruption is the most common gotcha. VTT files exported from YouTube sometimes start with a UTF-8 BOM (\uFEFF) that breaks SRT parsers expecting a clean integer cue number on line 1. ConverterUp strips the BOM on input. If you see 'Subtitle 1 has no number' errors in an editor, the BOM is the likely culprit.
Positioning cues lost — VTT lines like 00:00:05.000 --> 00:00:08.000 line:80% align:center become plain 00:00:05,000 --> 00:00:08,000 in SRT. If your VTT relied on positioning (e.g., to avoid overlapping on-screen text), the resulting SRT may place captions over the wrong area. Re-position in your editor after import.
Speaker tags (<v John>Hello!) become plain text. Some editors expect John: Hello! instead. The converter offers a 'Inline speaker prefix' toggle that rewrites <v Name>... as Name: ... on output, preserving speaker identity in SRT-compatible form.
Overlapping cues — VTT allows two cues to display simultaneously (e.g., dialogue + on-screen text). SRT does not. ConverterUp keeps both cues in sequence with their original timestamps; if your player shows them flickering on top of each other, edit in your NLE to stagger or merge them.
ToolSeo.vtt-to-srt.section3.p5
ToolSeo.vtt-to-srt.section4.heading
ToolSeo.vtt-to-srt.section4.p1
ToolSeo.vtt-to-srt.section4.p2
ToolSeo.vtt-to-srt.section4.p3
ToolSeo.vtt-to-srt.section4.p4
ToolSeo.vtt-to-srt.section4.p5
ToolSeo.vtt-to-srt.section5.heading
ToolSeo.vtt-to-srt.section5.p1
ToolSeo.vtt-to-srt.section5.p2
ToolSeo.vtt-to-srt.section5.p3
ToolSeo.vtt-to-srt.section5.p4
ToolSeo.vtt-to-srt.section5.p5
Frequently asked questions
What are the main differences between VTT and SRT?
VTT uses a dot before milliseconds (00:00:01.500) while SRT uses a comma (00:00:01,500). VTT also supports inline styling and a WEBVTT header which SRT does not, so styling is stripped during conversion.
Will my cue styling and positioning be preserved?
Plain text is kept intact, but VTT-specific cues such as line position, alignment, and CSS classes are removed because SRT does not support them. The result is clean, universally compatible subtitles.
Can I convert multiple files at once?
Yes. Drop several .vtt files together and the tool will produce a ZIP archive containing each converted .srt with the same base name.
Is there a file size limit?
Up to 10 MB per VTT file, which is enough for a 4-hour film with hundreds of cues. Most subtitle files are well under 1 MB.
Does the converter handle non-Latin scripts and RTL languages?
Yes. UTF-8 is preserved end-to-end, so Arabic, Hebrew, Chinese, Japanese, Korean, Cyrillic, and combined-mark scripts (Devanagari, Tamil) round-trip without corruption. RTL line direction is implicit in the characters themselves — SRT has no directionality marker, so renderers detect it from the first strong-directional codepoint.
Can I shift all timestamps by a fixed offset during conversion?
Yes. Use the <em>time shift</em> option to add or subtract a duration (in seconds, with millisecond precision) from every cue. Useful when a VTT was exported from a player that included pre-roll ads, or when you need to sync captions to a re-encoded video with a different start offset.
ToolSeo.vtt-to-srt.q7
ToolSeo.vtt-to-srt.a7
ToolSeo.vtt-to-srt.q8
ToolSeo.vtt-to-srt.a8