What is a VTT file?
WebVTT is the subtitle format the web platform standardized for the HTML track element. A file starts with the word WEBVTT on its own line, then blocks that look almost exactly like SRT: a timecode line with an arrow, then the text. The differences are small and strict. Milliseconds are separated with a period rather than a comma, the counter before each block is optional, and the file must be served as text/vtt for a browser to accept it.
On top of that it can do things SRT cannot: place a caption at a particular spot on the screen, size and align it, mark who is speaking, style parts of a line with CSS, and carry chapters or metadata tracks alongside the captions.
Why a browser will not show your subtitles
Three reasons, in order of how often they happen. The file is SRT renamed to .vtt, so the header and the periods are missing. The server sends it with the wrong content type. Or the file sits on another domain without the cross-origin headers the track element requires.
Converting properly rather than renaming fixes the first, which is the one that catches most people: our SRT to VTT converter rewrites the header and the timecodes rather than changing the extension.
Going back to SRT
Uploads and desktop players generally prefer SRT, and converting back drops the parts SRT has no way to express: positioning, cue settings, and styling. The words and the timings survive unchanged, which is all most platforms read anyway.
Frequently asked questions
Can I just rename an SRT to .vtt?
No. A WebVTT file needs the WEBVTT header line and periods instead of commas in the timecodes. A renamed file fails silently in most browsers: the video plays with no captions at all.
Which format does YouTube want?
It accepts both, and SRT is the safer upload. VTT matters when you are putting the video on your own page with an HTML track element.
How do I add captions to a video on my site?
Put a track element inside the video element pointing at the .vtt file, with kind set to captions and the language set. Serve the file from the same origin, or add the cross-origin headers.
Does VTT support styling?
Yes, through cue settings for position and alignment and CSS for appearance. Support varies between browsers, so keep anything essential in the words themselves.