The caption track that silently fails
HTML5 video is picky in a quiet way: the track element used by native browser players, Video.js, Plyr, and most JavaScript players accepts only WebVTT, and a SubRip file renamed to .vtt loads without complaint while displaying nothing. The two formats look nearly identical, which makes the failure baffling — but they differ in specifics that matter. A valid VTT file must begin with a WEBVTT header, and its cue timestamps use a period before the milliseconds (00:01:23.450) where SRT uses a comma (00:01:23,450). Get either detail wrong and the player rejects the file without a word.
Step by step
- Open the SRT to VTT converter at safefileconvert.com/data/srt-to-vtt/. There is no signup and no daily task limit — a real constraint elsewhere, since some converter sites cap free use at a couple of files per day.
- Drop your .srt files onto the dropzone. One file or a whole season’s worth in a single batch — both work.
- Let each file convert; it takes a fraction of a second. The tool rewrites every cue’s timestamps to the period format, adds the WEBVTT header, and normalizes encoding problems that break parsers, such as a byte-order mark or mixed line endings from files edited on different operating systems.
- Download each converted file. It arrives with the correct .vtt extension, ready to reference from your track element.
Going the other way
The converter works in both directions, so a .vtt file can become .srt for desktop players and subtitle editing software that only read SubRip. The dialogue and timing values are preserved either way — only the timestamp punctuation, header, and encoding details are rewritten to match the target format, so nothing you or a translator wrote gets touched.
Private, unwatermarked, uncapped
Subtitle files can be more sensitive than they look: captions for an unreleased episode, a court transcript, an internal training video. This converter reads and rewrites them with code running in your browser, not on a server — the contents never travel over the network, and nothing is retained after you leave the page. No watermark is inserted into your cues, and there is no fee or quota, so re-converting an entire library after an edit is as free as the first file.
If captions still don’t appear
Once the file itself is valid WebVTT, remaining failures are usually plumbing rather than format: confirm the path in your track element actually resolves, that the file is served alongside the page rather than blocked, and that captions are switched on in the player’s menu. The value of converting first is ruling the file out — after conversion you know the header and timestamps are correct, which is precisely the part that fails silently.