SRT to VTT Converter
Choose an .srt subtitle file, or paste its text, and get a WebVTT file with timestamps fixed and an optional time shift.
Your subtitle file is converted inside this page and never uploaded.
What this tool does
To convert SRT to VTT, open the .srt file here or paste its text. The tool adds the WEBVTT header, changes each timestamp comma to a dot and writes the cues back out. You can also shift all the times by a number of seconds. Then download the .vtt file for use in an HTML5 video track.
Reads the cues of an SRT file and writes them as a WebVTT file with the required header and timestamp format.
Shifts every cue by the number of seconds you set, and reports the cue count and the end time.
How to use it
- Choose your .srt file, or paste the subtitle text.
- Optionally enter a shift in seconds; negative moves subtitles earlier.
- Check the VTT result and the cue count.
- Press Download .vtt or Copy VTT.
Why use this converter
Converts SRT to WebVTT with the header added and timestamp commas turned into dots, ready for an HTML5 video track. HTML5 video players read WebVTT, not SRT. The two formats are nearly identical, but a missing header or the wrong timestamp separator makes the browser ignore the whole file.
Why we built it
We built the SRT to VTT converter to add the header and turn timestamp commas into dots, with an optional time shift. Convert back with the VTT to SRT converter and add a video with add audio to video.
Handy alongside this: the Text to Speech and the Video to MP3.
Who this tool is for
- Web developers adding captions to HTML video
- Video editors converting subtitle files
- Teachers preparing captioned lessons
When to use it
- Adding captions to a video on your own website with the HTML5 track element.
- Uploading subtitles to a player or platform that asks for WebVTT.
- Correcting subtitles that appear a second or two late or early.
- Cleaning up a subtitle file whose cue numbering or spacing is inconsistent.
How it works
An SRT cue is a number, a time range written 00:01:02,500 --> 00:01:05,000 and the text. A WebVTT cue has no required number, starts the file with the line WEBVTT, and writes times with a dot: 00:01:02.500 --> 00:01:05.000.
The converter parses each cue, applies any shift to both start and end, and rewrites it in the target format. A shift that would make a time negative is held at 00:00:00.000.
Basic styling tags such as <i> and <b> are kept as text. SRT has no positioning, so none is added.
What you give it, and what you get back
| Item | Details |
|---|---|
| Input | An .srt file, or its text pasted in. Cues with hour:minute:second,millisecond timestamps. |
| Shift | Seconds to add to every start and end time; use a negative number to move earlier. |
| Output | WebVTT text beginning with WEBVTT, with dot-separated milliseconds. |
| Stats | The number of cues found and the end time of the last one. |
Issues you may run into
| What you see | Why it happens | What to do |
|---|---|---|
| "No subtitle cues were found" | The text does not contain lines with a --> time range. | Check the file is plain-text SRT and not a different subtitle format. |
| Accented characters look wrong | The file was saved in an older encoding such as Windows-1252. | Re-save the file as UTF-8 in a text editor and convert again. |
| Subtitles still out of sync | The delay is not constant (for example a different frame rate). | A fixed shift fixes a constant offset only; use a dedicated tool for frame-rate drift. |
| Browser does not show the captions | The track element is missing its kind and srclang, or the file is on another domain. | Add kind="subtitles" and srclang, and serve the .vtt from the same site. |
Assumptions and limitations
- Handles cue timing and text; it does not convert styling, positioning or ASS/SSA formatting.
- A fixed shift cannot correct drift between different frame rates.
- Files are read as text, so UTF-8 is expected.
Frequently asked questions
How do I convert SRT to VTT?
Open the .srt file here and press Download .vtt. The tool adds the WEBVTT header and changes timestamp commas to dots.
What is the difference between SRT and VTT?
WebVTT is the web standard for captions. It starts with a WEBVTT header and uses dots in timestamps, while SRT numbers each cue and uses commas.
Can I fix subtitles that are out of sync?
Yes, if the delay is constant. Enter the number of seconds to shift - negative to move earlier - and download the result.
How do I use a VTT file on my website?
Add a track element inside your video element: <track kind="subtitles" src="captions.vtt" srclang="en" label="English" default>.
Is my subtitle file uploaded?
No. It is converted in your browser.
Can I convert VTT back to SRT?
Yes - use the VTT to SRT converter, which does the reverse and numbers the cues.