Skip to content

VTT to SRT Subtitle Converter

Turn web-compatible WebVTT subtitles into widely supported SRT.

Drag & drop your VTT file here

or click to browse

Supports .vtt files up to 50 MB

Core Engine Architecture

From Web Standard to Universal Standard

VTT files are designed for browsers, while many media players, editors, and smart TV workflows still prefer SRT. This converter removes the WEBVTT header, converts dot-separated timestamps to SRT comma format, adds sequential entry numbers, and strips VTT cue settings. The result is a plain SRT file that can be tested in your target player or workflow.

Payload & Syntax Inspector

VTT to SRT Code Syntax & Structure Inspection

Side-by-side code inspection illustrating header definitions, timestamp syntax, and cue payload formatting

Millisecond Sync
input.vtt
VTT SOURCE
WEBVTT
 
00:00:01.000 --> 00:00:04.000
Hello, world!
 
00:00:04.500 --> 00:00:08.000
This is a subtitle file.
 
00:00:08.500 --> 00:00:12.000
Converted locally!
output.srt
SRT RESULT
1
00:00:01,000 --> 00:00:04,000
Hello, world!
 
2
00:00:04,500 --> 00:00:08,000
This is a subtitle file.
 
3
00:00:08,500 --> 00:00:12,000
Converted locally!
Specification Sheet

VTT vs SRT Technical Specifications

Standard Compliant
Input Format

VTT

VTT

VTT (WebVTT) is the W3C standard subtitle format for HTML5 video. Files begin with the WEBVTT header string. Cues use dot-separated timestamps (00:01:30.500 --> 00:01:35.000) and may include positioning settings like line, position, and align after the timestamp. VTT files may also contain NOTE comment blocks and optional cue identifiers.

Output Format

SRT

SRT

SRT (SubRip) is the most universally compatible subtitle format. Each entry starts with a sequential number (1, 2, 3...), followed by a timestamp line with comma-separated milliseconds (00:01:30,500 --> 00:01:35,000), and then the subtitle text. SRT has no header, no metadata sections, and no styling or positioning support.

Format Differences

VTT begins with the WEBVTT header. SRT has no header; it starts directly with the first entry number.
VTT timestamps use dot separators (00:01:30.500). SRT timestamps use comma separators (00:01:30,500).
VTT cues have optional string identifiers. SRT entries have mandatory sequential numbers (1, 2, 3...).
VTT supports cue positioning settings (line, position, align, size). SRT has no positioning or styling.
VTT supports NOTE blocks for comments. SRT has no comment or metadata mechanism.
VTT is the web standard recognized by browsers. SRT is a widely supported plain-text standard outside browsers.

Conversion Troubleshooting & Gotchas

Practical solutions for player compatibility, character encoding, and timing synchronization

4 Common Gotchas
GOTCHA #1

Why do raw cue tags like '<v Speaker>' or '<c.highlight>' appear in some video players?

WebVTT supports native voice markup (`<v SpeakerName>`) and CSS class tags (`<c.classname>`). While VLC and MPV ignore or hide these, older smart TVs or Premiere Pro may display them literally as raw text. AllSubConverter extracts the inner speech text and removes web-only wrapper tags.

GOTCHA #2

VTT downloaded from YouTube or Zoom has duplicate lines or flickering subtitles

Auto-generated YouTube and Zoom WebVTT files use scrolling roll-up cues with rapid millisecond overlapping chunks. When directly converted to SRT, this causes rapid screen flickering. To resolve this, use our Subtitle Cleaner tool to deduplicate consecutive identical lines and merge rolling windows.

GOTCHA #3

Missing cue numbers or invalid SRT sequence order

WebVTT does not require cues to have sequence numbers, but strict SubRip players require sequential integers (1, 2, 3...) separated by newlines. Our parser automatically assigns sequential indexes starting at 1 and normalizes blank lines between cues.

GOTCHA #4

Video editor (Premiere Pro, Final Cut, DaVinci Resolve) fails to import converted SRT

NLE video suites are notoriously strict about timestamp formatting. Ensure your file does not contain negative timestamps or zero-duration cues. AllSubConverter guarantees strict HH:MM:SS,mmm --> HH:MM:SS,mmm syntax with two-digit hour zero-padding.

Features

Removes the WEBVTT header and NOTE comment blocks that SRT does not use
Converts VTT dot timestamps (00:01:30.500) to SRT comma timestamps (00:01:30,500)
Adds sequential entry numbers (1, 2, 3...) required by the SRT format
Strips VTT cue settings (line, position, align, size) after timestamp lines
Removes VTT cue identifiers that have no equivalent in SRT
Leaves common VTT inline tags such as <b>, <i>, <u>, and <c> in the cue text
Outputs UTF-8 encoded SRT for compatible players and workflows
Processes entirely client-side with no file uploads to any server

Why Convert?

Many smart TV workflows prefer SRT for local media playback.
Plex, Jellyfin, and Emby media servers commonly index external SRT subtitle files.
Several video editing tools import SRT captions more consistently than VTT.
HandBrake, FFmpeg, and MKVToolNix accept SRT for subtitle embedding into video containers more reliably than VTT.
Mobile video apps on iOS and Android often default to SRT for external subtitle file loading.
SRT files are simpler and smaller because they lack headers, cue settings, and metadata blocks.
Some legacy devices and older media players support SRT but not VTT.
Scenarios

Common Use Cases

Smart TV Playback

Convert VTT subtitles to SRT for compatibility with Samsung, LG, and Sony smart TVs that prefer SRT for local media playback.

Media Server Libraries

Prepare external SRT subtitles for media servers such as Plex, Jellyfin, and Emby, then verify recognition in your library.

Video Editing Import

Import subtitles into Adobe Premiere Pro, DaVinci Resolve, or Final Cut Pro as SRT, the format these NLEs accept natively.

Mobile Video Playback

Most iOS and Android video apps load external SRT subtitles by default. Convert VTT to SRT for reliable mobile subtitle display.

Subtitle Embedding

Embed subtitles into MKV or MP4 containers using FFmpeg, HandBrake, or MKVToolNix. SRT is the most compatible format for container embedding.

Format Ecosystem

Related Formats

How It Works

  1. 1

    Upload your .vtt file by dragging it onto the converter or browsing.

  2. 2

    The parser identifies the WEBVTT header and skips NOTE blocks and metadata.

  3. 3

    Each VTT cue block is read: optional identifier, timestamp line, and text.

  4. 4

    Dot separators in timestamps are replaced with commas (00:01:30.500 becomes 00:01:30,500).

  5. 5

    Cue settings after the timestamp arrow are removed (line, position, align, etc.).

  6. 6

    Sequential numbers are assigned to each entry in chronological order.

  7. 7

    The SRT output is assembled and encoded as UTF-8 for download.

Frequently Asked Questions

While VTT is the web standard, many smart TVs, media servers, editing tools, and mobile players accept SRT more consistently. Converting VTT to SRT is a simple way to prepare a plain-timed-text version, but always test it in your target player or workflow.

The decimal separator changes from dots to commas. VTT uses 00:01:30.500. SRT uses 00:01:30,500. The hours, minutes, seconds, and milliseconds values are identical. The converter simply replaces the dot with a comma in each timestamp pair.

Yes. SRT requires each entry to start with a sequential number. VTT uses optional string identifiers instead. The converter removes VTT identifiers and assigns sequential numbers (1, 2, 3...) to each subtitle entry in chronological order.

The WEBVTT header is removed. SRT has no header format. The output SRT file starts directly with the number 1 for the first subtitle entry. This is correct and expected behavior for SRT format.

VTT cue settings (such as line:50%, position:left, align:center) appear after the timestamp arrow on the same line. SRT does not support these. The converter removes them, leaving only the clean timestamp pair. Any positioning information from VTT is lost.

No. VTT NOTE blocks are comment sections for metadata or developer notes. They are not displayable subtitle content. The converter skips all NOTE blocks during conversion.

Ready to convert your subtitles?

Drop your VTT file here and convert to SRT instantly.