SRT ↔ VTT Subtitle Converter

Convert SRT to VTT (and VTT back to SRT) in seconds — batch whole seasons at once, fix out-of-sync timing, all in your browser. Free, private, nothing uploaded.

Your subtitles never leave your device — all processing happens in your browser.

Drop your .srt / .vtt files here

Select files

or drop them here — batch supported, converted instantly in your browser

Converted!

Everything happened inside your browser — your subtitles were never uploaded anywhere, so there is nothing to delete.

SRT vs VTT: why you need to convert

SRT (SubRip) is the universal subtitle format — nearly every video player and editor reads it. VTT (WebVTT) is the web's native format: it's what the HTML5 <video> <track> element expects, so browsers, YouTube's web player workflows and most streaming pipelines want VTT. The two formats are close cousins: the conversion is mostly a header line plus a timestamp punctuation change — 00:01:23,456 becomes 00:01:23.456.

This subtitle converter handles both directions — SRT to VTT and VTT to SRT — plus messy real-world files (BOM markers, mixed line endings, missing numbers), whole batches at once, and a time-shift control to resync subtitles when every cue drifts a few seconds out of sync. All in your browser — handy when the subtitles belong to unreleased content you'd rather not upload to a random server.

What actually changes in the conversion

SRTVTT
HeaderNone — starts with cue numberMust start with WEBVTT
Timestamps00:01:23,456 (comma)00:01:23.456 (period)
Cue numbersRequired (1, 2, 3…)Optional identifiers
Extra featuresPlain cues onlyCue settings, styling, regions

Honest scope: VTT cue settings (align/position), NOTE blocks and STYLE/REGION headers are read but not carried over — the conversion preserves cues, timing and text, which is what players need.

How to use this converter

  1. Step 1. Drop .srt or .vtt files onto the page — or paste subtitle text directly.
  2. Step 2. If the subtitles are out of sync, set a time-shift (positive = later, negative = earlier).
  3. Step 3. Click Convert subtitles — the direction is auto-detected.
  4. Step 4. Download files individually or as one ZIP.

Real-world use cases

  • Web video captions — your editor exports SRT; your HTML5 player needs VTT. Convert in seconds.
  • Fixing drifted subtitles — downloaded subs running 2 seconds early? Shift +2s and re-download.
  • Batch season packs — convert a whole season's subtitle files at once and grab the ZIP.
  • YouTube / course uploads — platforms that prefer VTT get clean, validated files.

Tips

  • Keep a backup of the original. Conversion is lossless for cues and timing, but keep the source anyway.
  • Check one file before batching. Open the first converted file in a text editor to confirm the WEBVTT header is there.
  • Shift in small steps. Nudge by 0.5s at a time and preview — overshooting is the classic mistake.
  • UTF-8 matters. The tool reads and writes UTF-8 (with BOM stripped), so accented and non-Latin scripts survive.
  • Don't hand-edit timestamps. Find-and-replace on commas will wreck cue text containing commas — let the parser do it.

Frequently asked questions

Is SRT ↔ VTT Converter free to use without signup?

Yes. EzySize’s SRT ↔ VTT Converter tool is free to use without creating an account. Advertising may appear on this page; the tool remains free to use. Use the controls above and check the result against your requirements.

How do I convert SRT to VTT?

Drop the .srt file on this page and click Convert — the tool adds the required WEBVTT header and rewrites every timestamp from comma to period format (00:01:23,456 → 00:01:23.456), then hands you a .vtt download. No signup, no upload.

What is the difference between SRT and VTT?

SRT (SubRip) is the universal subtitle format read by almost every player and editor. VTT (WebVTT) is the web-native format used by HTML5 video players. The visible differences: VTT requires a WEBVTT header line, uses periods instead of commas in timestamps, and supports cue settings and styling that SRT lacks.

Can I convert VTT back to SRT?

Yes — the direction is auto-detected. Drop a .vtt file and you'll get a clean .srt back, with cue numbers regenerated and timestamps rewritten in comma format.

Can I convert multiple subtitle files at once?

Yes. Drop a whole batch — a full season, for example — and download each converted file individually or all together as a ZIP.

My subtitles are out of sync — can this fix that?

Yes. Set a time-shift in seconds before converting: positive values delay every cue, negative values pull them earlier. Nudge in 0.5s steps and preview. Cues can't shift earlier than 0:00 — they're clamped there.

Will special characters and non-English text survive?

Yes. The tool reads and writes UTF-8 and strips stray BOM markers, so accented characters, Hindi, Arabic, CJK and other scripts come through intact.

Does conversion lose any subtitle data?

Cues, timing and text are preserved exactly. VTT-only extras — cue position settings, NOTE comments, STYLE/REGION blocks — are read but not carried over into SRT, since SRT has no equivalent.

Do I need to install anything?

No. The converter runs entirely in your browser on any modern phone or computer — nothing to install, no account, no watermark.

Is it safe to convert subtitles for unreleased videos?

Yes — the conversion happens 100% in your browser. Your subtitle files are never uploaded to any server, so unreleased or client-confidential captions stay private.

Why does my video player need VTT instead of SRT?

HTML5 web players use the <track> element, which expects WebVTT — most browsers won't load an .srt track. Desktop players like VLC accept both, which is why SRT files from downloads often need converting for web use.

Can I just rename a .srt file to .vtt?

Almost — but not quite. A renamed file lacks the WEBVTT header and keeps comma timestamps, so strict players reject it. Proper conversion takes seconds and avoids silent failures.

What if my SRT file has no cue numbers or has errors?

The parser is built for messy real-world files: missing numbers, extra blank lines, mixed line endings and stray whitespace are all tolerated. Files that can't be parsed are reported per-file instead of failing the whole batch.