AIStacker
MediaNew

Overview

WebVTT to SRT Converter

Bidirectional WebVTT (.vtt) and SubRip (.srt) subtitle converter. Strips VTT cue settings, speaker tags, and inline styling. Runs entirely in your browser.

Category hub

Media

Problems

5

FAQ

3

WebVTT ↔ SRT Converter

Convert between WebVTT (.vtt) and SubRip (.srt) formats. Strips cue settings, speaker tags, and inline styling. Browser-only — no uploads.

Paste or upload to convert

What you can solve

I downloaded captions from YouTube as .vtt — how do I get a clean .srt?

YouTube exports VTT with timestamp markers, color classes, and speaker tags that most SRT editors choke on. Paste the VTT into this tool with VTT → SRT mode; the output is plain SRT with all <c>, <v>, and timing-marker tags removed. Save as .srt and import into Subtitle Edit or Aegisub.

I put an SRT file in <track src="..."> but the captions don't show — why?

HTML5 <track> elements only support WebVTT. Browsers ignore .srt files even if the path is correct. Convert your SRT to VTT here, save with a .vtt extension, and update the src. The captions will load on next page reload.

Why does my VTT file say timestamps are invalid even though the format looks right?

WebVTT requires period decimals (00:00:01.000), while SRT requires commas (00:00:01,000). Mixing them silently breaks parsers. Convert through this tool to normalize the decimal separator instead of fixing it by hand and missing one.

How do I strip <v Speaker> speaker tags from a VTT file?

Convert the VTT to SRT through this tool — <v> blocks are stripped automatically while the inner text is preserved. If you need to keep the file as VTT but without speaker tags, convert VTT → SRT and then SRT → VTT in two passes.

My VTT has NOTE comments — will they appear in the SRT output?

No. NOTE, STYLE, and REGION blocks are dropped during VTT → SRT conversion because SRT has no equivalent. If you rely on NOTE blocks for editorial review, keep a copy of the original VTT alongside the SRT export.

Guides for this workflow

Supporting guides that connect this tool to the broader category workflow.

Open category hub

What is

What is WebVTT to SRT Converter?

WebVTT and SRT look almost identical at a glance, but they are not interchangeable in practice. VTT supports cue settings (line:90%, vertical:rl), inline tags (<v Speaker>, <c.classname>), NOTE and STYLE blocks, and uses period decimal separators. SRT supports none of that — it expects pure cue blocks with comma decimals.

This converter handles both directions cleanly. Going VTT → SRT, it strips the WEBVTT header, drops NOTE/STYLE/REGION blocks, removes cue identifiers and settings, and rewrites every timestamp from period to comma. Going SRT → VTT, it prepends the WEBVTT header and rewrites the decimal separators. The output stays cue-accurate so downstream tools can consume it directly.

How to use

How to use WebVTT to SRT Converter

1. Pick a direction: VTT → SRT or SRT → VTT.

2. Paste subtitle text into the left pane, or upload a .vtt / .srt file.

3. Output is generated instantly on the right.

4. Copy or download with the correct extension.

Example

Example

VTT input:
00:00:01.000 --> 00:00:03.500 line:90%
<v Speaker>Hello world</v>

SRT output:
1
00:00:01,000 --> 00:00:03,500
Hello world

Common use cases

Common use cases

1. Convert YouTube auto-caption downloads (VTT) to SRT for editing in a desktop subtitle tool.

2. Convert SRT released by translators to VTT for HTML5 video embedding via <track src=…>.

3. Strip VTT cue settings before feeding a translation memory tool that does not understand them.

4. Prepare clean SRT for upload to platforms that reject the VTT speaker/style tags.

Frequently asked questions

Frequently asked questions

What happens to VTT cue settings like line:90% or vertical:rl?v
They are dropped. SRT does not support positioning hints. If you need positioning preserved, target an ASS workflow instead — ASS supports per-cue positioning natively.
Will my SRT cue numbers be preserved when converting to VTT?v
VTT cue identifiers are optional, and your SRT numbers are not carried over by default. VTT renderers do not require them, and adding them can confuse some HLS muxers. If you need stable cue IDs, add them manually after conversion.
Does this support VTT files with multiple cues sharing the same timestamp?v
Yes. Each cue block is parsed independently and emitted as its own SRT entry with sequential numbering, regardless of timestamp collisions.