Subtitle Converter (SRT, VTT, SBV)

Convert between SRT, WebVTT and SBV, shift timing and fix sync — in your browser.

Ad placeholder (leaderboard)
Enjoying the tools? Go Pro for £4.99 (one-time) and remove all ads — forever, on this device. Remove ads — £4.99

A fast, private subtitle converter that turns SRT, WebVTT and YouTube SBV files into one another while letting you correct the timing in the same pass. It is built for anyone who has downloaded captions that play a second too early, exported the wrong format for their video player, or needs to re-sync a transcript after re-encoding a film at a different framerate. Paste the text or load a file, choose your target format, nudge the timing, and copy or download the result — all without installing software or uploading a single line to a server.

How it works

The converter first auto-detects the input format by looking for the WebVTT header, the --> timing arrow used by SRT and VTT, or the comma-separated timestamps used by SBV. It then parses every cue into a structured list of start time, end time and text, measured in milliseconds for precision. Each timestamp is read flexibly, so it copes with both comma and dot decimal separators and with or without an hours field.

Once parsed, your chosen transforms are applied in order. The time shift adds or subtracts a fixed offset from every cue. The framerate scale multiplies each timestamp by a ratio — for example 23.976 ÷ 25 when a 25 fps subtitle needs to match a 23.976 fps video — so the drift is corrected across the whole runtime, not just at the start. Optional clean-up can strip formatting tags and fix overlapping cues by trimming any caption that runs into the next. Finally the cues are re-serialised into the target format with the correct header, punctuation and numbering. A live preview table shows the first 200 cues with their adjusted timings, and a stats bar reports the cue count, character total, total span and any remaining overlaps.

Example

Suppose you have an .srt file that runs exactly 1.4 seconds ahead of the dialogue and you need a .vtt for an HTML5 <video> element. Load the file, set the output to WebVTT, type -1.4 into the time-shift box, and the preview instantly shows every caption pulled back into sync. A cue that was timed at 00:00:05,000 --> 00:00:08,000 in SubRip becomes 00:00:03.600 --> 00:00:06.600 in WebVTT, complete with the WEBVTT header. Hit Download .vtt and the corrected file is saved locally, ready to drop into your player.

TaskInputOutputSetting
Re-sync ahead-of-time captionsSRTSRTshift -1.4s
Web player needs VTTSRTVTTformat only
Upload transcript to YouTubeVTTSBVformat only
Match a 23.976 fps re-encodeSRT (25 fps)SRTscale 23.976→25

Every figure is calculated in your browser — no subtitle text is ever uploaded or stored.

Ad placeholder (rectangle)