SRT to VTT
How to use
Converts SRT subtitle files to WebVTT for web video players. Drop the SRT and download the VTT.
Step 1 of 4: Upload
- 1
- 2
- 3
- 4
Step 1 of 4 · Upload
- 1Upload
- 2Options
- 3Convert
- 4Download
- Adding captions to a video on your own website with the <track> element
- Moving captions exported from a video editor into a web player
- Preparing subtitles for a course platform that asks for WebVTT
Free and private. Everything runs on your own device, with no account and no uploads.
SRT and WebVTT carry the same thing, a list of timed captions, but HTML5 video players only accept WebVTT through the <track> element. The formats differ in three small ways: VTT files start with a WEBVTT header, write milliseconds after a full stop instead of a comma, and treat a bare < or & as markup. This converter makes those changes, keeps italic, bold and underline tags, and gives you a .vtt file a browser player will load.
The HTML5 <track> element is specified for WebVTT only. Browsers ignore an SRT file there even though the cue text is nearly identical, which is why a web player needs the VTT version.
They are dropped. SRT requires a number above every cue; WebVTT does not need one, and the converter identifies cues by their timing line instead.
Some SRT files carry SubStation-style codes such as {\an8} to move a caption to the top of the frame. VTT has its own cue settings for that, so those codes are removed rather than shown as literal text.
The file is read as UTF-8. An older SRT saved in a Windows code page will show its accented letters as garbage. Open it in a text editor, save it as UTF-8, and convert again.
- 1
Add the SRT files
Drop one or several .srt files. Each converts separately.
- 2
Convert
Cues are read, timestamps normalised to HH:MM:SS.mmm and the WEBVTT header added.
- 3
Download
One file downloads as .vtt; several arrive together in a ZIP.
- 4
Attach it to the video
Reference it from a <track kind="subtitles"> element, or upload it wherever your player asks for captions.
- ·Check the first few cues after converting: a missing WEBVTT header or a comma in a timestamp is the usual reason a player silently shows nothing.
- ·If your source video is going somewhere that burns captions in, you do not need VTT at all; keep the SRT.