How to convert SRT to VTT
Drop the .srt file, leave the download format on WebVTT and download the .vtt. The converter does two things that matter: it changes the comma in each timestamp to a period, and it adds the WEBVTT header line the format requires. Cue numbers are kept as cue identifiers.
SRT vs VTT: what is actually different
An SRT timestamp reads 00:00:20,000 --> 00:00:24,400, with a comma before the milliseconds. WebVTT writes 00:00:20.000 --> 00:00:24.400, with a period, and the file must begin with the word WEBVTT. In VTT the hours are optional for cues under an hour, so 00:20.000 is also valid.
WebVTT can also carry things SRT cannot: cue settings such as position and alignment, styling through a STYLE block and CSS, voice tags to mark who is speaking, and comments. Converting from SRT does not add any of these; it produces a plain, valid WebVTT file, which you can then style by hand if you need to.
Which players and platforms use VTT
- HTML5 video: the track element accepts only WebVTT, so an SRT file must be converted before it can be used on a web page.
- Streaming players and adaptive streaming (HLS and DASH) use WebVTT for text tracks.
- Most browsers, video.js, Plyr, JW Player and similar web players read .vtt directly.
- Desktop players such as VLC read both SRT and VTT.
What is kept and what is not
Text, line breaks, timings, and the basic italic, bold and underline tags are kept. SRT has no cue positioning or styling of its own, so nothing is lost in this direction. HTML-style font tags are removed, because WebVTT does not support them.
Encoding problems, handled
Most “broken” subtitle files are not broken: they are saved in an encoding other than UTF-8, so accented letters, Cyrillic, Greek, Arabic or Asian characters turn into question marks or garbage in tools that assume UTF-8. This converter detects the file’s encoding (from a byte-order mark, a UTF-8 validity check, or statistical detection) and shows you what it chose. If the text looks wrong, choose a different encoding from the list and the file is read again. Whatever the input, the file you download is UTF-8, which every modern player understands.
How to use it
- Drop your .srt file onto the box.
- Check the cue count and the detected encoding.
- Choose VTT as the download format.
- Download the converted file.
Frequently asked questions
How do I convert SRT to VTT?
Drop the SRT file here and download it as WebVTT. The tool changes the timestamp separators, adds the WEBVTT header and keeps the text and timings.
Why does my website need VTT instead of SRT?
The HTML5 track element only supports WebVTT, so browsers will not load an SRT file as a text track without conversion.
Will the timing change?
No. Only the way the times are written changes. Use the sync tool if you also need to shift or stretch the timing.
Why do accented or non-Latin letters look wrong?
Because the file is not UTF-8. Many subtitle files are saved in Windows-1252, Windows-1251, Shift-JIS, GBK and other encodings, and reading them as UTF-8 produces garbled text. This tool detects the encoding, shows what it chose, and lets you pick another from a list; the file you download is UTF-8.
Is my subtitle file uploaded?
No. The file is read and converted in your browser and is never sent to a server. The site records only an anonymous count of the format pair and a rough size bucket, never the subtitle text.