Convert WebVTT to SRT
SRT is the format almost every player and editing application reads, and many of them will not touch a .vtt. This strips the WebVTT-specific parts and writes plain SubRip cues.
Drop a .vtt file here
or click to choose one. It is converted in this page and never uploaded.
What is removed
- The WEBVTT header, and any NOTE, STYLE or REGION blocks, none of which have an SRT equivalent.
- Cue settings trailing the timestamp, such as align:start or position:10%. These place a caption inside a web player and mean nothing outside one.
- Escaped entities are resolved, so & becomes a literal ampersand in the SRT rather than staying as markup.
Cues are renumbered from 1 in file order. VTT cue identifiers are optional and often absent or duplicated, so they are not carried across.
Nothing is uploaded
The .vtt is read and the .srt 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
Will I lose caption positioning?
Yes, and unavoidably: SRT has no way to express it. If positioning matters, keep the VTT for web playback and use the SRT only where positioning is not supported anyway.
What happens to cues with the same identifier?
Identifiers are ignored entirely and cues are renumbered from 1 in the order they appear, which is where an SRT's order comes from.
No subtitle file yet?
Generate one from your audio or video with word-level timing, then export SRT 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