๐ฌ VTT to SRT Converter
By Shihab Mia ยท Updated 2026-06-27
Paste WebVTT above, then press Convert to SRT.
This VTT to SRT converter turns WebVTT subtitle text into the SRT format that most video editors and players expect. Paste the contents of your .vtt file, press Convert, and the tool removes the WEBVTT header, drops NOTE and STYLE blocks, renumbers every cue, and rewrites each timestamp so it uses a comma before the milliseconds. Everything runs in your browser, so your captions are never uploaded anywhere.
What is the VTT to SRT Converter?
WebVTT (Web Video Text Tracks, file extension .vtt) and SubRip (.srt) are the two most common plain-text subtitle formats, and on the surface they look almost identical. Both list a series of cues, where each cue has a start time, an arrow, an end time, and one or more lines of caption text. The differences are small but they matter: VTT begins the file with a WEBVTT header line, it can carry NOTE comments and STYLE or REGION blocks, and crucially it separates seconds from milliseconds with a dot (00:00:01.000). SRT uses none of those extra blocks, numbers every cue with a sequential integer, and separates milliseconds with a comma (00:00:01,000).
Converting VTT to SRT therefore comes down to a handful of mechanical edits. First you remove the WEBVTT header so the file does not start with an unexpected line. Then you strip out any NOTE, STYLE, and REGION blocks, because SRT has no concept of comments or styling and those lines would confuse a player. Next you walk through each remaining cue, give it a number starting at 1 and counting up, and replace the dot in both timestamps with a comma. The caption text itself is copied across unchanged. That is exactly the sequence this tool performs.
Why bother at all? Because the format you need depends on where the subtitles are going. WebVTT is the native format for the HTML5 video element and is what YouTube, Vimeo, and most browser players hand you when you download captions. SRT, on the other hand, is the lingua franca of desktop media players such as VLC, of editing suites such as Premiere Pro and DaVinci Resolve, and of platforms that ask you to upload a sidecar subtitle file. If a tool refuses your .vtt file, an SRT version almost always works, which is why converting VTT to SRT is one of the most frequently needed subtitle tasks.
A correct converter has to be careful about a few edge cases. VTT cues may include an optional id line above the timestamp, and the timestamp line itself can carry cue settings such as line:90% or align:start after the end time. SRT does not understand any of that, so a clean conversion keeps the id out of the output and trims the cue settings, leaving only the two timecodes and the text. This tool detects the timing line by looking for the --> arrow, ignores anything that is not a real cue, and renumbers from scratch so the output is always a valid, sequentially numbered SRT file.
Because the whole job is a text transform, there is no quality loss and nothing is sent over the network. You can convert a private interview transcript or an unreleased film script with the same confidence as a public lecture, since the bytes never leave your machine. The output appears in a text box you can copy with one click or save directly as a .srt file ready to drop next to your video.
When to use it
- Preparing captions downloaded from YouTube or Vimeo (which arrive as .vtt) for upload to a platform that only accepts .srt.
- Loading subtitles into VLC, MPV, or another desktop media player that reads SRT more reliably than VTT.
- Importing a transcript into Premiere Pro, DaVinci Resolve, or another editor whose subtitle import expects SRT.
- Cleaning a messy WebVTT export that contains NOTE comments or STYLE blocks down to a plain numbered SRT file.
- Standardising a folder of mixed subtitle files on a single format before archiving or handing them to a client.
How to use the VTT to SRT Converter
- Open your .vtt file in any text editor, select all of the text, and copy it.
- Paste the WebVTT text into the input box above, or press Load sample to see the expected format.
- Press Convert to SRT. The tool removes the header, drops comment and style blocks, and renumbers the cues.
- Check the SRT output box: each cue now has a number, a comma in the timestamps, and the original text.
- Press Copy to grab the result, or Download .srt to save it as a file next to your video.
Formula & method
Worked examples
A minimal WebVTT file with a header and one cue: "WEBVTT" then a blank line then "00:00:01.000 --> 00:00:04.000" and "Hello and welcome."
- The first block is the WEBVTT header line, so it is removed entirely.
- The next block is a real cue because its timing line contains the --> arrow.
- This is the first cue, so it is numbered 1.
- The timestamps 00:00:01.000 and 00:00:04.000 become 00:00:01,000 and 00:00:04,000.
Result: 1 00:00:01,000 --> 00:00:04,000 Hello and welcome.
A cue with an optional id line and a position setting: "intro-2" then "00:00:04.500 --> 00:00:07.250 line:90%" then "Second line of text."
- The id line "intro-2" sits above the timing line and is left out of SRT, which has no ids.
- The timing line is found by the --> arrow; the trailing "line:90%" cue setting is trimmed away.
- Because a header and one earlier cue came before it, this cue is numbered 2.
- Dots become commas, giving 00:00:04,500 --> 00:00:07,250 with the text kept as is.
Result: 2 00:00:04,500 --> 00:00:07,250 Second line of text.
Key differences between WebVTT and SRT
| Feature | WebVTT (.vtt) | SubRip (.srt) |
|---|---|---|
| File header | Starts with WEBVTT | None |
| Cue numbers | Optional | Required, sequential from 1 |
| Millisecond separator | Dot (00:00:01.000) | Comma (00:00:01,000) |
| Comments / styling | NOTE, STYLE, REGION blocks allowed | Not supported |
| Cue settings | line, position, align after the time | Not supported |
What the converter does to each part of the file
| Input part | Action taken |
|---|---|
| WEBVTT header line | Removed |
| NOTE / STYLE / REGION block | Removed |
| Optional cue id line | Dropped from the output |
| Timestamp line | Dot to comma, cue settings trimmed |
| Caption text lines | Kept unchanged |
| Cue numbering | Renumbered sequentially from 1 |
Common mistakes to avoid
- Leaving the WEBVTT header in the file. If you only swap dots for commas but keep the WEBVTT line at the top, many SRT players treat the first cue as broken. The header must be removed, which this VTT to SRT converter does automatically.
- Forgetting to change the dot to a comma. The single most common reason an "SRT" file fails to load is timestamps that still use a dot before the milliseconds. SRT requires a comma (00:00:01,000), and a stray dot makes the timing unreadable.
- Keeping VTT cue settings after the timestamp. Settings such as line:90% or align:start are valid in WebVTT but meaningless in SRT. Left in place they can push a parser off the timing line, so they should be trimmed during conversion.
- Not renumbering the cues. SRT needs a sequential integer above every cue. WebVTT cues are often unnumbered or use text ids, so a correct conversion assigns fresh numbers starting at 1 rather than reusing whatever was there.
- Saving the output with the wrong extension or encoding. Save the result as a plain UTF-8 text file ending in .srt, not .txt. A mismatched extension means your player will not recognise it as a subtitle file even though the content is correct.
Glossary
- WebVTT
- Web Video Text Tracks, the .vtt subtitle format native to HTML5 video; it uses a WEBVTT header and a dot before the milliseconds.
- SRT (SubRip)
- A plain-text subtitle format with numbered cues and a comma before the milliseconds, read by most players and editors.
- Cue
- A single subtitle entry: a start time, an end time, and the lines of text shown on screen during that interval.
- Timestamp
- The start and end time of a cue, written as hours:minutes:seconds plus milliseconds, separated by the --> arrow.
- NOTE block
- A WebVTT comment starting with the word NOTE; it is for human readers and is stripped out when converting to SRT.
- STYLE block
- A WebVTT section that defines CSS-like styling for cues; SRT has no styling, so these blocks are removed.
- Cue settings
- Optional WebVTT directives such as line, position, and align that appear after the end time and are dropped for SRT.
Frequently asked questions
How do I convert VTT to SRT?
Paste the contents of your .vtt file into the box above and press Convert to SRT. The tool removes the WEBVTT header, drops NOTE and STYLE blocks, numbers every cue from 1, and changes the dot in each timestamp to a comma. Then press Copy or Download .srt to save the result.
What is the difference between VTT and SRT?
Both are plain-text subtitle formats with timed cues. WebVTT starts with a WEBVTT header, allows NOTE and STYLE blocks, and uses a dot before the milliseconds. SRT has no header, requires a sequential number above each cue, and uses a comma before the milliseconds.
Is this VTT to SRT converter free?
Yes, it is completely free with no sign-up, no watermark, and no file-size limit beyond what your browser can hold. Convert as many subtitle files as you like.
Are my subtitle files uploaded to a server?
No. The entire VTT to SRT conversion happens locally in your browser with plain JavaScript. Nothing you paste is sent over the network, so it is safe for private transcripts and unreleased footage.
Does the converter handle multi-line captions?
Yes. Any line of caption text below the timestamp is preserved exactly, including cues that span two or more lines. Only the header, comment blocks, optional ids, and cue settings are removed.
What happens to NOTE and STYLE blocks in my WebVTT file?
They are removed. SRT has no concept of comments or styling, so any block beginning with NOTE, STYLE, or REGION is stripped out, leaving a clean numbered subtitle file.
Why does my SRT file still not load after I changed the extension?
Renaming a .vtt file to .srt does not fix the contents. You still need to remove the WEBVTT header and change the dots to commas, which is exactly what this converter does. Run the text through it and save the new output.
Can I convert SRT back to VTT here?
This page handles VTT to SRT. To go the other way you would add a WEBVTT header and change the commas back to dots; a separate SRT to VTT tool is the cleaner choice for that direction.
Does converting to SRT change the timing or text?
No. The conversion only reformats the file. Start and end times keep the same values (just with a comma instead of a dot), and the caption text is copied across word for word, so the subtitles still sync to your video.