SRT to VTT Converter & Subtitle Validator

Convert SubRip (.srt) subtitles into WebVTT (.vtt) for HTML5 video players, or turn VTT back into SRT. The parser auto-detects the format, handles short timestamps, cue identifiers and NOTE blocks, and reports invalid timing lines, end times before start times and out-of-order cues. A millisecond offset lets you fix subtitles that are out of sync, and you can upload a file or paste text.

PrivateFreeWorks offline

Reviewed by Vincenzo Manto, Founder & Lead Developer · Last updated September 30, 2026

How it works

  1. 1

    Upload a .srt or .vtt file, or paste the subtitle text.

  2. 2

    Pick the target format and optionally enter a time shift in milliseconds.

  3. 3

    Review any validation warnings, then copy or download the converted file.

Example

SRT
1
00:00:01,000 --> 00:00:03,500
Hello, and welcome.
WebVTT
WEBVTT

00:00:01.000 --> 00:00:03.500
Hello, and welcome.

Using subtitles on the web

The HTML5 track element only accepts WebVTT, so subtitles exported from editing tools or downloaded as SRT need converting before they work in a browser video player. The conversion is mostly mechanical, changing the header and the millisecond separator, but a validator catches the malformed timing lines that otherwise cause the whole track to fail silently.

Common subtitle problems

Files saved in a legacy encoding show garbled accents, overlapping cues flicker on screen, and a missing blank line between blocks merges two subtitles. This tool flags timing problems and normalises line endings and the byte-order mark. If special characters look wrong, re-save the source file as UTF-8 before converting.

Frequently asked questions

What is the difference between SRT and VTT?

WebVTT starts with a WEBVTT header, uses a dot instead of a comma before the milliseconds, and supports styling, positioning and comments. SRT is simpler and numbered. HTML5 video tracks require VTT.

How do I fix subtitles that are out of sync?

Enter an offset in milliseconds: a positive value delays every cue, a negative value makes them earlier. For example 2000 delays all subtitles by two seconds.

Is formatting preserved?

Basic tags such as <i> and <b> inside cue text are kept as they are. VTT-only features like positioning settings and CSS styles have no SRT equivalent and are dropped when converting to SRT.

Are my files uploaded?

No. Parsing and conversion happen entirely in your browser.

Related tools