What this does
WebVTT is the subtitle format HTML5 <track> elements expect, while most subtitles you download are SubRip (.srt). This converter rewrites the timestamps and adds the required WEBVTT header — without sending your file anywhere.
How to use it
- Paste your SRT content into the box, or drop the
.srtfile onto it. - The conversion runs locally as you type — no request is made to any server.
- Copy the result or download it as a
.vttfile.
Good to know
- SRT uses
00:00:01,000(comma); WebVTT uses00:00:01.000(period). This is the single most common cause of subtitles silently failing to load. - Cue numbers are optional in WebVTT but are kept here so you can diff the output against the input.
- Styling tags such as
<i>and<b>are valid in both formats and are preserved.
Where each format is accepted
SubRip (.srt) is the safe default for desktop editing software, mobile players and the subtitle upload boxes used by most video platforms. If you are unsure which format to supply, supply SRT.
WebVTT (.vtt) is required by the HTML5 <track> element, which means every browser-based player, custom web player and most streaming pipelines. It is also the format modern broadcast workflows expect.
Some tools accept both and detect the format from the content rather than the extension. Those tools are why a file can seem to work locally and then fail after upload — the upload box is stricter than the desktop editor you tested with.
Worked example
Input — .srt
1 00:00:01,000 --> 00:00:04,000 Hello there. 2 00:00:04,200 --> 00:00:07,000 <i>Music playing</i>
Output — .vtt
WEBVTT 1 00:00:01.000 --> 00:00:04.000 Hello there. 2 00:00:04.200 --> 00:00:07.000 <i>Music playing</i>
The only structural change is the WEBVTT header plus a period instead of a comma in every timestamp. Text, italics and cue numbers survive untouched.
FAQ
Why won't my .srt file work in an HTML5 video player?
<track> elements only accept WebVTT. A file with an .srt extension, or with comma decimal separators in its timestamps, will be ignored by the browser without an error message.Does this upload my subtitle file anywhere?
Is there a file size limit?
Troubleshooting
- The .vtt file loads but no subtitles appearCheck the
<track>tag useskind="subtitles"and that the server sends the file astext/vtt. A server answering withtext/plainmakes some browsers ignore the track silently, with no console error. - Timestamps still contain a comma after conversionA cue was not recognised, so it was passed through as-is. Every cue needs a blank line before it and a line containing
-->. Stray text between cues is the usual culprit. - Each cue holds two languages stacked on two linesThat is preserved exactly as written. Most players render both lines; if you need one language per track, split the file before converting.
- The output contains empty cuesCues whose text was only whitespace are kept so the numbering stays stable. Run the file through Clean subtitles with Drop empty cues enabled.
Related tools
VTT to SRT Converter
Turn WebVTT files back into SubRip (.srt) for editors, players and upload platforms.
Shift Subtitle Timing
Move every subtitle cue earlier or later to fix out-of-sync captions.
Clean Up AI-Generated Subtitles
Remove sound cues, HTML tags, speaker labels and duplicate cues from auto-generated captions.