Convert VTT to SRT
Convert WebVTT cues to numbered SRT with the same timing and displayed text, and see exactly what SRT had no place for.
- SECURE
- NO UPLOADS
- NO SIGNUP
- BROWSER BASED
- FREE
- FOREVER.
Support us with a link or a share
Drop a VTT file here
It becomes SRT in this tab — nothing is uploaded.
What is kept and what is dropped when you convert VTT to SRT
WebVTT can describe more than plain timed captions. A file may contain NOTE, STYLE, or REGION blocks, per-cue position and alignment settings such as align:start, voice and class tags such as <v Anna>, karaoke timestamps embedded inside the text, or an HLS X-TIMESTAMP-MAP header. SRT has no place for any of those. They are removed, and the receipt lists each kind with a count — "Position and alignment removed from 3 cues" — so nothing disappears without a word. Bold, italic, and underline tags stay, because SRT players display them.
Everything a player shows is kept exactly. The job is precise: replace WebVTT timestamp periods with SRT commas, expand times to an hours field, add sequential cue numbers, and preserve each start, end, and payload line. A custom VTT cue identifier cannot occupy the SRT number slot, so it is replaced and the final receipt states how many identifiers changed.
Strict parsing prevents plausible damaged output
The source must be strict UTF-8 and begin with a valid WEBVTT header followed by a blank line. Every cue needs a valid timing separator, a positive duration, and payload. A raw ampersand or angle bracket that a WebVTT player would itself misread still stops the conversion, with the relevant cue, line, and column, rather than guessing at what the text meant. An X-TIMESTAMP-MAP ties cue times to a live stream; the converter keeps the times as written, so if captions from a stream land early or late in your video, correct them afterwards.
After writing SRT, the converter parses the whole result independently through the SRT path. It compares the cue count, integer-millisecond boundaries, and payload lines with the VTT source. Only a matching result becomes downloadable. This reopened-output check catches writer mistakes that a successful string replacement would miss.
Timing correction remains a separate job
Format conversion does not shift early captions, correct growing drift, translate text, or edit cue content. If the subtitles are out of sync, use the subtitle timing tool before or after conversion. Cutting the opening seconds off the clip with the video trimmer moves every caption early by the same amount, so shift the file by that length afterwards. If the destination accepts WebVTT and the receipt lists removed positioning or styling you rely on, keeping the original may be the better file.
Open a local .vtt file or paste its complete text. The preview may be clipped, but the download uses every verified byte and changes only the filename extension to .srt. No subtitle content, filename, timing, or output is uploaded or stored, and the local-processing checklist lets you confirm that with a caption file of your own. For the opposite direction, use SRT to VTT.
Questions
What happens to VTT cue identifiers?
SRT requires sequential cue numbers. Custom VTT identifiers are replaced by those numbers and the receipt reports how many identifiers changed.
What happens to STYLE, REGION, NOTE, cue settings, or cue tags?
SRT has no place for them, so they are removed — and never silently: the receipt names each kind and counts the blocks or cues that had it. Bold, italic and underline tags are kept, because SRT players show them. Cue times and the text a player displays do not change.
Does conversion change subtitle timing or displayed text?
No. WebVTT character references are decoded for SRT, then every output cue is reopened and its millisecond boundaries and displayed payload are compared with the source.
Are subtitle files uploaded?
No. Reading stays in this tab, and parsing, conversion and verification run in a local background worker.