ToolNimba

๐ŸŽฌ SRT to VTT Converter

Shihab Mia By Shihab Mia ยท Updated 2026-06-27

WebVTT output
 

Paste SRT above, then press Convert to VTT.

This SRT to VTT converter turns SubRip (.srt) subtitle text into valid WebVTT (.vtt) right in your browser. Paste your SRT, press convert, and the tool adds the required WEBVTT header, changes every timestamp comma to a dot, and drops the numeric cue index lines that WebVTT does not need. You can then copy the result or download a ready-to-use .vtt file. Nothing is uploaded anywhere, so even private or unreleased captions stay on your own machine.

What is the SRT to VTT Converter?

SRT, short for SubRip Subtitle, is the most common caption format on the planet. Almost every desktop subtitle editor exports it, and you will find it bundled with downloaded videos and ripped from streaming sources. An SRT file is plain text made of cues, where each cue is a numbered block: a line with a counter (1, 2, 3...), a timing line that says when the caption appears and disappears, one or more lines of caption text, and a blank line that separates it from the next cue. The timestamps look like 00:00:01,000 --> 00:00:04,000, with a comma before the three millisecond digits.

WebVTT (Web Video Text Tracks), with the .vtt extension, is the subtitle format that the HTML5 <track> element understands. If you want captions to show on a video on a web page, in most browsers and in many HTML5 players, you need VTT rather than SRT. The two formats are close cousins, which is exactly why an SRT to VTT conversion is so common: the cue structure is nearly identical, and only a few mechanical changes stand between a working .srt and a working .vtt.

There are three differences that matter for a basic conversion. First, a VTT file must begin with the literal line WEBVTT, followed by a blank line, so the browser can recognise the format. SRT has no such header. Second, VTT uses a dot as the decimal separator in timestamps (00:00:01.000) where SRT uses a comma (00:00:01,000). Third, the numeric index line at the top of each SRT cue is optional in VTT and is usually dropped, because VTT treats any text before the timing line as an optional cue identifier rather than a required counter. This tool handles all three: it prepends the header, rewrites every timestamp, and removes the index numbers (or keeps them as identifiers if you prefer).

The conversion is a pure text transform, which is the key reason it is safe and instant. The tool never decodes video, never contacts a server, and never changes your wording or timing. It walks your subtitle text line by line: when it sees a line containing the cue arrow "-->", it swaps the timestamp commas for dots; when it sees a standalone number sitting directly above a timing line, it recognises that as an SRT index and removes it. Caption text, including any commas inside your dialogue, is passed through untouched. Because the change is so targeted, the output keeps your exact timing, line breaks and wording.

Knowing why each step happens helps when something looks off. If a player refuses your file, the usual culprit is a missing WEBVTT header or a stray comma left in a timestamp, both of which this SRT to VTT converter fixes automatically. If your captions appear but the timing is wrong, that is a source-file timing issue and not a format problem, since converting SRT to VTT never shifts the clock. Understanding that VTT is essentially SRT plus a header, with dotted timestamps and optional identifiers, makes the whole process predictable.

When to use it

  • Adding captions to an HTML5 <video> element with a <track> tag, which expects a .vtt file rather than .srt.
  • Preparing subtitles for web players and frameworks that only accept WebVTT, such as many video.js or Plyr setups.
  • Converting downloaded or exported .srt files so they play correctly in a browser-based course or LMS.
  • Turning subtitle editor output into VTT for a static site, portfolio video, or self-hosted clip.
  • Quickly checking that an SRT file is well formed by converting it and seeing whether every cue maps cleanly to VTT.

How to use the SRT to VTT Converter

  1. Open your .srt file in any text editor, select all of the text, and copy it.
  2. Paste the SRT subtitles into the input box above. A sample is loaded so you can see the expected layout.
  3. Leave "Keep cue numbers as identifiers" unticked for a clean VTT, or tick it if you want the original numbers preserved.
  4. Press Convert to VTT. The tool adds the WEBVTT header, converts the timestamps, and drops the index lines.
  5. Use Copy to grab the WebVTT text, or press Download .vtt to save a ready-to-use subtitle file.
  6. Attach the .vtt file to your video with a <track kind="subtitles" src="subtitles.vtt"> tag.

Formula & method

Method: output = "WEBVTT" + blank line + transformed cues. For each line, if it contains "-->" replace the timestamp comma with a dot (HH:MM:SS,mmm becomes HH:MM:SS.mmm). If a line is a plain number sitting directly above a timing line, treat it as an SRT index and drop it (or keep it as an optional VTT cue identifier). All caption text, including commas inside dialogue, is left unchanged.
SRT to VTT: three changesSRT input (.srt)100:00:01,000 --> 00:00:04,000Hello there.VTT output (.vtt)WEBVTT00:00:01.000 --> 00:00:04.000Hello there.1. Add WEBVTT header 2. Comma to dot 3. Drop index lineCaption text and timing stay identical

Worked examples

A single SRT cue with an index line and a comma timestamp: "1" then "00:00:01,000 --> 00:00:04,000" then "Hello there."

  1. The file gets a "WEBVTT" header line followed by a blank line.
  2. The line "1" sits directly above a timing line, so it is recognised as an SRT index and removed.
  3. On the timing line, each comma before the millisecond digits becomes a dot: 00:00:01.000 --> 00:00:04.000.
  4. The caption text "Hello there." is passed through unchanged.

Result: WEBVTT 00:00:01.000 --> 00:00:04.000 Hello there.

A cue whose caption text contains a comma: "00:00:05,500 --> 00:00:08,250" then "Welcome, everyone, to the show."

  1. Only the timestamp commas are converted, because the tool changes commas that sit just before three millisecond digits.
  2. The timing line becomes 00:00:05.500 --> 00:00:08.250.
  3. The commas inside the sentence "Welcome, everyone, to the show." are left exactly as written.
  4. This shows the converter never touches punctuation in your dialogue.

Result: WEBVTT 00:00:05.500 --> 00:00:08.250 Welcome, everyone, to the show.

What changes when you convert SRT to VTT

ElementSRT (SubRip)VTT (WebVTT)
File headerNoneWEBVTT on the first line, then a blank line
Timestamp separatorComma: 00:00:01,000Dot: 00:00:01.000
Cue index numberRequired (1, 2, 3...)Optional, usually dropped
Cue arrow--> (with spaces)--> (with spaces)
File extension.srt.vtt

A single cue, before and after the SRT to VTT conversion

StageText
SRT input2 / 00:00:05,500 --> 00:00:08,250 / Welcome to the show.
VTT output00:00:05.500 --> 00:00:08.250 / Welcome to the show.

Common mistakes to avoid

  • Forgetting the WEBVTT header. A .vtt file that does not start with the literal line WEBVTT will be rejected by the browser, and your captions simply will not appear. This SRT to VTT converter adds the header for you, so you never have to remember it.
  • Leaving commas in the timestamps. If you just rename a .srt to .vtt, the timestamps still use commas (00:00:01,000) and most players will fail to parse them. VTT requires a dot before the milliseconds, which the tool fixes on every timing line.
  • Only changing the file extension. Renaming subtitles.srt to subtitles.vtt does not convert the contents. The format differences (header and timestamps) still need to be applied, which is exactly what this tool does.
  • Assuming conversion fixes timing or sync issues. Converting SRT to VTT never shifts the clock. If captions appear too early or too late, that is a timing problem in the source file and must be corrected separately; the format change keeps your exact timestamps.
  • Pasting only part of a cue. If you copy a timing line without its caption text, or a caption without its timing line, the output will be incomplete. Copy whole cues, including the blank line that separates them.

Glossary

SRT
SubRip Subtitle: the most common plain-text subtitle format, with numbered cues and comma-separated millisecond timestamps.
VTT
WebVTT (Web Video Text Tracks): the subtitle format used by the HTML5 <track> element, using a WEBVTT header and dotted timestamps.
Cue
A single subtitle block: a timing line plus the caption text that should appear between those two times.
Timestamp
The start and end time of a cue, written as HH:MM:SS with milliseconds. SRT uses a comma before the milliseconds; VTT uses a dot.
Cue identifier
An optional label that can appear before a VTT timing line. SRT index numbers can be kept as identifiers or dropped.
WEBVTT header
The literal first line of every WebVTT file. Without it, browsers do not recognise the file as valid subtitles.
Track element
The HTML5 <track> tag that attaches a .vtt subtitle file to a <video>, enabling on-screen captions.
Millisecond field
The three digits after the seconds in a timestamp (.000), giving subtitle timing fine, sub-second precision.

Frequently asked questions

How do I convert SRT to VTT?

Paste your SRT subtitles into the box above and press Convert to VTT. The tool adds the WEBVTT header, changes each timestamp comma to a dot, and removes the numeric index lines, then lets you copy the result or download a .vtt file. It all runs in your browser.

What is the difference between SRT and VTT?

VTT is essentially SRT with three changes: it starts with a WEBVTT header line, it uses a dot instead of a comma in timestamps (00:00:01.000 not 00:00:01,000), and the cue index numbers are optional. The cue structure and timing are otherwise the same.

Why will my SRT file not show captions on a web page?

The HTML5 <track> element expects WebVTT, not SubRip. A raw .srt file lacks the WEBVTT header and uses comma timestamps, so the browser cannot parse it. Convert SRT to VTT first, then point your <track> tag at the .vtt file.

Can I just rename my .srt file to .vtt?

No. Renaming the file does not change its contents, so it still has no WEBVTT header and still uses comma timestamps. You need a real SRT to VTT conversion, which is what this tool performs.

Does converting SRT to VTT change my subtitle timing?

No. The converter only reformats timestamps (comma to dot) and adds the header. Every start and end time stays identical, so your captions appear at exactly the same moments as in the original SRT.

Will commas inside my dialogue get changed?

No. The tool only converts commas that sit immediately before the three millisecond digits on a timing line. Commas inside your caption text, like "Welcome, everyone," are left exactly as written.

Is my subtitle file uploaded to a server?

No. This SubRip to WebVTT conversion happens entirely in your browser with plain JavaScript. Nothing you paste is sent over the network, which makes the tool safe for private, unreleased or sensitive captions.

Can I keep the cue numbers in the VTT output?

Yes. Tick "Keep cue numbers as identifiers" before converting. WebVTT treats text before a timing line as an optional cue identifier, so the original SRT numbers are preserved instead of being dropped.

How do I add the converted .vtt file to my video?

Download the .vtt file, place it next to your video, and add a track tag inside your video element: <track kind="subtitles" srclang="en" src="subtitles.vtt" default>. The browser will then show the captions.

Does this SRT to VTT converter work on mobile?

Yes. The tool is fully responsive, so you can paste SRT, convert to VTT, and copy or download the result from a phone or tablet just as easily as on a desktop.