Document tools

SRT to VTT

Convert SRT to VTT subtitles. Cue timings are re-parsed and re-formatted exactly, not merely re-punctuated. ASS/SSA override tags ({\i1}, {\an8}, ...) are carried through as literal text, not re-rendered or stripped. Use Strip subtitle formatting for that. VTT cue settings (align, position, line, size, ...) are dropped, not preserved. This converter carries dialogue and timing, not layout. Runs on your device.

Runs on your device. The file is never uploaded.

SRT to VTT writes a WEBVTT line, a blank line, then a timing line and its text per cue. Each timestamp is read as a number of milliseconds and printed again, so a comma turns into a dot and a short hour is padded. Nothing is written for cue identifiers, settings or numbering; SRT holds none.

Input

Questions

Are the timings converted properly?

Yes. Every timestamp is parsed into milliseconds and written back out in VTT form, so the comma before the milliseconds becomes a dot and the hour is kept two digits wide. Nothing is done by search and replace on the text, which is why an SRT with one-digit hours or missing cue numbers still converts correctly.

What happens to formatting tags in the cue text?

They are copied through as they are. Italic and bold tags written the HTML way survive the trip because VTT understands the same tags. If you want them gone, run Strip subtitle formatting on the file before or after converting.

Does it add the WEBVTT header?

Yes. The output starts with a WEBVTT line followed by a blank line, then the cues, each with its timing line and text and no cue numbers. That header is required: a VTT file without it is rejected by browsers, and by the reverse tool here too.

Why did I get an error about a missing timing line?

Because one cue in the SRT had no arrow on its timing line. The message quotes the first line of that cue back to you, so you can find the block and fix it. Two other checks can stop the conversion: a cue whose end is before its start, and a file with no cues at all, which reports "SRT: no cues found". Fix the block the message names and run it again.

What is the output file called?

Your file name with the extension replaced: movie.srt becomes movie.vtt. The VTT text is also shown on the page so you can check the first few cues before downloading. Cue numbers are not carried over, because VTT cues have none, and the copy button copies the entire file even when the preview is shortened.

How do I convert VTT back to SRT?

Use VTT to SRT. That direction drops VTT cue settings such as align, position, line and size, along with cue identifiers, because SRT has no way to express them. Both tools run in this browser tab with nothing uploaded. A file taken through both keeps its dialogue and its exact millisecond timings, since every timestamp is parsed into a number and written out again.

Related Document tools

1→1VTT to SRTConvert VTT to SRT subtitles. Cue timings are re-parsed and re-formatted exactly, not merely re-punctuated. ASS/SSA override tags ({\i1}, {\an8}, ...) are carried through as literal text, not re-rendered or stripped. Use Strip subtitle formatting for that. VTT cue settings (align, position, line, size, ...) are dropped, not preserved. This converter carries dialogue and timing, not layout.Takes one file1→1SRT to ASS/SSAConvert SRT to ASS subtitles. Cue timings are re-parsed and re-formatted exactly, not merely re-punctuated. ASS/SSA override tags ({\i1}, {\an8}, ...) are carried through as literal text, not re-rendered or stripped. Use Strip subtitle formatting for that. VTT cue settings (align, position, line, size, ...) are dropped, not preserved. This converter carries dialogue and timing, not layout.Takes one file1→1ASS/SSA to SRTConvert ASS to SRT subtitles. Cue timings are re-parsed and re-formatted exactly, not merely re-punctuated. ASS/SSA override tags ({\i1}, {\an8}, ...) are carried through as literal text, not re-rendered or stripped. Use Strip subtitle formatting for that. VTT cue settings (align, position, line, size, ...) are dropped, not preserved. This converter carries dialogue and timing, not layout.Takes one file1→1SRT to SBV (YouTube)Convert SRT to SBV subtitles. Cue timings are re-parsed and re-formatted exactly, not merely re-punctuated. ASS/SSA override tags ({\i1}, {\an8}, ...) are carried through as literal text, not re-rendered or stripped. Use Strip subtitle formatting for that. VTT cue settings (align, position, line, size, ...) are dropped, not preserved. This converter carries dialogue and timing, not layout.Takes one file1→1SBV (YouTube) to SRTConvert SBV to SRT subtitles. Cue timings are re-parsed and re-formatted exactly, not merely re-punctuated. ASS/SSA override tags ({\i1}, {\an8}, ...) are carried through as literal text, not re-rendered or stripped. Use Strip subtitle formatting for that. VTT cue settings (align, position, line, size, ...) are dropped, not preserved. This converter carries dialogue and timing, not layout.Takes one filen→1Merge subtitle tracksCombine 2+ subtitle files (e.g. two language tracks, or a track split across parts) into one file, sorted by start time. Each input keeps its own format on read; the output takes the first file's format. Overlapping cues (e.g. two languages at once) are kept as separate cues, not merged into one.Combines the files you drop