Skip to content

SRT to VTT Converter

Drop an .srt file and get the WebVTT a browser will actually play, rewritten on your own device and ready to download as .vtt.

  • Free
  • No sign-up
  • No watermark
  • Runs in your browser

Loading the tool.

From .srt to .vtt: what changes and what survives

The two formats hold the same captions, so most of the file passes through untouched. Four things are rewritten, and each of them is a rule of WebVTT rather than a choice: the signature at the top, the character before the milliseconds, the counters above each block, and two characters that WebVTT reserves for markup. Here is one cue on its way across.

One cue, before and after
Part of the fileIn your .srtIn the .vtt you download
Very first lineThe number 1, above the opening cueWEBVTT, the signature a player looks for
Block countersA number above every block: 1, 2, 3Removed, because WebVTT identifiers are optional
Timing line00:00:01,000 --> 00:00:03,50000:00:01.000 --> 00:00:03.500
Hour fieldWritten even when it is zeroLeft as it is, which every player reads
Caption wordingCarried over with its line breaksCarried over with its line breaks
Italic and bold<i> and <b>, honored by some players<i> and <b>, part of the WebVTT spec
Ampersand and less-thanTyped as they areEscaped to &amp; and &lt;, as markup demands
Text encodingWhatever the editor happened to saveUTF-8, the one encoding WebVTT permits

Nothing is invented on the way across. WebVTT can carry positioning, regions and styling that SRT has no syntax for, and this page adds none of it: a cue arrives with the wording and the timing it had, and you add the rest in the player if you want it. The reverse trip loses more, which is why it has a page of its own.

What the rewrite touches, line by line

A block of SRT is a counter, a timing line and one or two lines of wording. The counter goes, because WebVTT lets a cue be anonymous and numbering it again would only invite a mismatch. The timing line keeps its hours, minutes, seconds and thousandths and swaps the comma for a dot, which is the single difference that makes most players reject an .srt renamed to .vtt. The wording is copied character for character, blank lines inside a cue included, and only the ampersand and the opening angle bracket are escaped, because WebVTT reads both as the start of markup. Then one line, WEBVTT, is written above the whole thing.

Why a browser ignores the file you already have

A video element on a web page accepts one caption format, and it is WebVTT. Point it at an .srt and nothing appears: no warning, no fallback, an empty caption menu. That is what sends most people looking for this conversion, and it is also why renaming the file does not work. The player reads the first line, does not find the signature, and stops. Desktop players such as VLC are the opposite case, happy with SRT and indifferent to the counters, which is how the same caption file ends up working everywhere except the one place it was needed.

The parts of WebVTT this page leaves alone

WebVTT has a vocabulary SRT never had: cue settings that pin a caption to a corner, regions that scroll, NOTE blocks for comments, STYLE blocks that reach the text through CSS, and identifiers that can be any string rather than a number. None of it is added here, and the reason is that a converter guessing at layout is worse than a converter that does not. A file that came from an editor was timed and worded by somebody; where it sits on the screen is a decision for whoever embeds it, and adding a default would quietly override a choice nobody made.

Timing, encoding and the checks that run anyway

The conversion carries the parent tool with it, so the offset field and the cue checks are on this page too. If the captions run early or late in your video, enter the gap in seconds and every cue moves by it before the file is written; a negative shift that pushes a cue past the start of the video trims or drops it, and says how many. Accented letters are read from the bytes rather than assumed, so a file saved in Windows-1252 or UTF-16 arrives intact, and overlapping cues, zero-length cues and lines over 42 characters are counted and pointed at. They do not block the download. They are the things a player will show you later, listed now.

Questions people ask

Does the conversion change how my captions look?

No. Wording, line breaks and timings arrive exactly as they left, and italic or bold tags are kept. Appearance in WebVTT comes from cue settings and CSS, neither of which is written here, so the player decides the font, the size and the position exactly as it would for any other .vtt file.

Can I just rename the file to .vtt instead?

That almost never works. A player checks the first line for the word WEBVTT and treats the comma in a timestamp as a syntax error; a renamed .srt has neither the signature nor the dots, so the track loads empty. Renaming is the step most people try first, and the blank caption menu that follows is what this page exists to remove.

Do I need WebVTT for YouTube, TikTok or Instagram?

Not usually. Those platforms accept .srt on upload and burn or serve the captions themselves. WebVTT is what you need when the video plays on a page you control, through a video element with a track, or through a player library that reads the same format.

How many files can I convert at once?

One at a time. Drop the next file on the same box when the first is downloaded, or paste the text straight into the field below it; the page never reloads between files, so a batch of a dozen is a minute of dropping and clicking rather than a queue.

Is an SRT file with dots in the timestamps broken?

It is out of spec, and common anyway, because several editors write it. Files like that are read here without complaint and come out as valid WebVTT, which is the one format where the dot was correct all along.

When the captions do not exist yet

This page rewrites captions that somebody has already timed. Starting from a video with no subtitle file at all is the other job, and the one worth paying for: transcribing the speech, timing it word by word and styling it over a vertical cut.

Related

Your file is processed on your device and never uploaded.