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.
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.