katlab tools/srt-vtt

SRT VTT Subtitle Converter

Paste or drop a subtitle file in either pane — the other side converts live. Optional time shift to fix out-of-sync subtitles.

Everything runs locally in your browser. Nothing is sent to a server.
SRT (SubRip)
VTT (WebVTT)
+ delays subtitles, − brings them earlier

How to convert SRT to VTT (or back)

  1. Paste SRT into the left pane or drop an .srt file on it — the WebVTT appears on the right instantly. Same the other way round.
  2. Optionally enter a time shift in seconds to resync the subtitles: positive delays them, negative brings them earlier.
  3. Use copy or download above either pane to take the result.

SRT vs WebVTT

SRT (SubRip) is the plain-text classic: a number, a timing line like 00:01:04,200 --> 00:01:06,800, then the text. WebVTT is the W3C standard HTML5 video uses with <track>: it starts with a WEBVTT header, writes milliseconds after a dot (00:01:04.200), and adds features SRT lacks — cue positioning, STYLE blocks, NOTE comments and speaker voice tags. Most video players accept SRT; browsers require VTT.

What changes during conversion

SRT → VTT adds the WEBVTT header and switches the millisecond comma to a dot — the cue text and timings are preserved as-is. VTT → SRT removes what SRT can't express: NOTE and STYLE blocks are dropped, cue-positioning settings are stripped, timestamps without an hour part gain one, and <v Anna> voice tags become an Anna: prefix. Basic <b>, <i> and <u> formatting is kept in both directions.

Fixing out-of-sync subtitles

If every subtitle appears too early or too late by the same amount, a constant shift fixes it. Enter the offset in seconds — 2.5 delays all cues by two and a half seconds, -2.5 moves them earlier. Cues that would shift before 00:00:00 are clamped to zero, and the tool tells you when that happens. If subtitles drift progressively (fine at the start, worse later), the frame rate differs and a constant shift won't fix it.

Is anything uploaded?

No. Parsing and conversion run entirely in this page with plain JavaScript. Subtitle files never leave your machine — you can even use the tool offline once loaded.