Updated
What the two formats look like
Both formats are plain text. Each cue has a start time, an end time and one or more lines of text.
WebVTT starts with the line WEBVTT. It uses a dot before the milliseconds, where SRT uses a comma. The cue number that SRT requires is optional in VTT.
SRT
1
00:00:01,000 --> 00:00:04,000
Hello there.
VTT
WEBVTT
1
00:00:01.000 --> 00:00:04.000
Hello there.Where each format is used
- VTT is the format browsers play. The HTML5 track element only reads WebVTT.
- SRT is what most video editors import and export, and what many subtitle download sites offer.
- YouTube and Vimeo accept both formats when you upload captions.
Convert SRT to VTT
The converter adds the WEBVTT header and swaps the commas in the timestamps for dots. It removes SSA positioning tags such as {\an8} and font tags, which VTT does not support. Italic, bold and underline tags stay. The file is converted in your browser and is not uploaded.
- Paste the SRT text or drop the .srt file into the converter.
- Choose whether to keep the cue numbers as cue IDs.
- Download the .vtt file and point your track element at it.
Convert VTT to SRT
Going the other way, more has to be removed. The WEBVTT header goes, and so do NOTE, STYLE and REGION blocks. Cue settings such as position and alignment are dropped, along with voice, class and timestamp tags.
The cues are numbered from 1, the dots become commas, and timestamps without hours get them added.
If the timing is off after converting
Converting never changes the timing. If the subtitles were already early or late, they will still be after the conversion. Shift them in the same file format before or after you convert.