HTML5 video players read WebVTT, not SubRip. So the moment you drop a `<track>` tag into a page, that perfectly good .srt file stops working. This SRT to VTT converter fixes that in about two seconds: pick your file, press convert, download the .vtt. Everything happens inside this browser tab, so nothing is uploaded and your original .srt is never touched.
Why a web player needs VTT and not SRT
SubRip (.srt) came from DVD ripping tools and stayed popular because it is simple. WebVTT (.vtt) is the format the HTML `<track>` element was actually specified around, and it is what browsers parse natively. A .vtt file has to open with the word WEBVTT, and its timestamps separate seconds from milliseconds with a period rather than a comma. Renaming subtitles.srt to subtitles.vtt does not add that header, which is why the rename trick usually ends with an empty caption track and no error message.
What carries over, and what does not
Cue text, line breaks within a cue, cue order, and start and end times all carry over exactly. Basic inline tags such as bold and italic are kept as-is, since both formats accept them. What this converter does not do is invent styling: it will not add positioning, regions, CSS classes, or custom fonts to the output. If your player needs captions parked at the top of the frame or coloured per speaker, add those cue settings afterwards in a text editor or in the subtitle editor.
Attaching the VTT file to your video
In HTML, a caption file is wired up with a track element nested inside your video element: give it kind="captions", the path to your .vtt in src, and a srclang such as "en" so the browser labels the option correctly. Add default if you want captions on from the start. One thing catches people out constantly: if the .vtt file is served from a different domain than the page, the browser blocks it unless that server sends the right cross-origin headers. Hosting the subtitle file next to the video, on the same origin, avoids the problem entirely. Video platforms and players such as Video.js, Plyr, and JW Player accept the same .vtt file through their own settings.