b2KIT

VTT to SRT Subtitle Converter

Convert WebVTT subtitle files to SRT format for broad media player compatibility.

Tested tool guide Tested browser tools Checked August 16, 2026

What VTT to SRT Subtitle Converter does, with a checked example

WebVTT is the caption format of the web: YouTube exports, HTML5 track elements, and HLS streams all deliver it. SRT is the oldest and most widely played subtitle format, understood by nearly every media player, TV, and editing tool. This tool rewrites a VTT file into SRT. The surprising part is how little actually changes: timestamps, text, and cue boundaries carry over almost verbatim, and the visible differences are a comma instead of a period in the timestamps, plus everything VTT-only - the WEBVTT header, styles, regions, cue settings, and inline tags - being dropped because SRT has no place for them.

Worked example

A concrete input and expected output from the current implementation.

Input

WEBVTT

00:00:00.500 --> 00:00:03.000
Welcome to the tour.

00:00:03.500 --> 00:00:06.000 align:middle
The gates open at dawn.

Expected output

1
00:00:00,500 --> 00:00:03,000
Welcome to the tour.

2
00:00:03,500 --> 00:00:06,000
The gates open at dawn.

The WEBVTT header and the align:middle cue setting have no SRT equivalent, so they are dropped, while each cue gets a sequential number and the milliseconds separator becomes a comma. Text and timing are otherwise unchanged.

How the result is produced

1

Read the container, keep the cues

The tool recognizes the WEBVTT header (allowing the UTF-8 byte-order mark some files start with), then splits the file on blank lines into a header block and individual cues. Each cue's timestamp line is carried over at its original values; only the milliseconds separator is rewritten.

2

Drop what SRT cannot express

NOTE, STYLE, and REGION blocks, cue settings after the arrow (align, line, position, size), voice and timestamp tags inside cue text, and HLS X-TIMESTAMP-MAP lines have no SRT equivalent, so the converter discards them and keeps the plain text. Cues are then numbered from 1 and written out in the standard SRT layout with blank lines between cues.

Good uses

  • A caption file exported from YouTube or an HTML5 video page refuses to load in your desktop player or TV; converting it to SRT makes it play anywhere.
  • You downloaded subtitles from an HLS stream or video site as .vtt and want to mux them into a movie with a tool that only accepts SRT input.
  • Delivering captions to a client, broadcaster, or platform whose specification requires SRT, or exchanging tracks with an editor whose software reads only SRT.

Limits and checks

  • Everything VTT-only disappears: positioning, alignment, and voice labels such as <v Narrator> are removed, not converted. A file that relies on side-by-side speaker placement renders every cue at the default bottom-center position with plain text.
  • This is a format conversion, not a repair. Typos, mistimed cues, and garbled text in the source are carried into the output unchanged, so proof the original against the audio before converting.
  • VTT permits overlapping and zero-duration cues and timestamps that run past 99:59:59, which SRT has no clean way to represent; players handle these cases differently. Verify such cues in the output rather than assuming every player will render them.

Common questions

Will the timing be exactly the same after conversion?

Yes, to the millisecond. VTT and SRT use the same hours:minutes:seconds structure, and every timestamp is carried over unchanged apart from the separator, which becomes a comma, the form SRT readers expect. If a cue was mistimed in the VTT, it stays mistimed; nothing is resynced or adjusted.

Will my styled cues, speaker names, or positioned text survive?

No. SRT has no mechanism for styling, voice metadata, or on-screen positioning, so those are dropped and only the plain text remains. If positioning or per-speaker styling matters to you, keep WebVTT or target a richer format such as ASS instead of converting to SRT.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools