Convert SRT to WebVTT
WebVTT is what an HTML5 track element reads; SRT is not, and browsers will silently show no captions rather than report the problem. This converts between them in the page.
Drop a .srt file here
or click to choose one. It is converted in this page and never uploaded.
The three differences that matter
- WebVTT requires the literal header line WEBVTT. A file without it is rejected outright, and this is the most common reason a renamed .srt shows no captions.
- Milliseconds are separated by a full stop rather than a comma: 00:00:01.000, not 00:00:01,000.
- The angle bracket and ampersand are markup in WebVTT and are escaped, so a caption containing either keeps its text instead of losing it to the parser.
Renaming a .srt to .vtt does not work, and the failure is silent: the browser finds no header, discards the track, and plays the video with no captions and no error.
Nothing is uploaded
The .srt is read and the .vtt is written in this page, by the same code that builds exports in the editor. The file never reaches a server and no copy is kept. A subtitle file is a transcript, and a transcript is often the part of a project that cannot leave the building.
Frequently asked questions
Why does my renamed .srt show no captions?
WebVTT requires the WEBVTT header line and a full stop before the milliseconds. A renamed SRT has neither, so the browser discards the track silently rather than reporting an error.
Does cue positioning get added?
No. WebVTT supports cue settings for alignment and position, but an SRT carries none, so nothing is invented. Captions use the player's default placement.
No subtitle file yet?
Generate one from your audio or video with word-level timing, then export WebVTT directly, no conversion step, and every word individually timed rather than every line. Free for 15 minutes and 5 transcriptions a month.
Transcribe a file instead