How to Convert SRT to VTT (and Back) for Free

Convert SRT subtitles to WebVTT in your browser in seconds.

You have an .srt subtitle file, and the thing you're uploading it to wants .vtt. Most often that's a web video player: the HTML5 <track> element only reads WebVTT.

The two formats are close enough that the conversion takes a few seconds — but not so close that renaming the file works. Here's what actually changes, and the fastest way to do it.

Convert SRT to VTT in your browser

  1. Open opensubs.app.
  2. Under Subtitles, click Or open an .srt / .vtt you already have and pick your file. You don't need to load a video.
  3. Scroll to Export and click .vtt.

That's it. Your file downloads as WebVTT, with the timings unchanged.

The file is read by your browser and never uploaded — OpenSubs has no upload endpoint. There's no account, and it's free.

Convert VTT to SRT

The same steps work in reverse:

  1. Open opensubs.app.
  2. Click Or open an .srt / .vtt you already have and pick your .vtt file.
  3. Under Export, click .srt.

You get a numbered SubRip file with commas in the timestamps — the version most video editors and desktop players expect.

What actually changes between SRT and VTT

Here is the same subtitle in both formats.

SRT

1
00:01:42,300 --> 00:01:45,120
Thanks for watching,
see you next week.

VTT

WEBVTT

00:01:42.300 --> 00:01:45.120
Thanks for watching,
see you next week.

Three differences matter:

The header. A VTT file must start with the line WEBVTT. Without it, browsers reject the whole file.

The decimal separator. SRT writes milliseconds after a comma (00:01:42,300). VTT uses a period (00:01:42.300). Get this wrong and the player silently shows nothing.

Cue numbers. SRT numbers every subtitle. In VTT the number is optional, so converters usually drop it.

That's why renaming film.srt to film.vtt doesn't work: the header is missing and every timestamp uses the wrong separator.

When to use which

SRTVTT
Web players (HTML5 <track>)
Desktop players like VLC
Video editors✓ usuallyvaries
Styling and positioningnosome, via cue settings

A good rule: use VTT for anything on the web, and SRT for everything else — it's the format almost every tool accepts.

Doing it by hand

For a short file, you can convert in any text editor:

  1. Add WEBVTT and an empty line at the very top.
  2. Find and replace the comma in every timestamp with a period. Replace only inside timestamps — a plain find-and-replace on , will also break the commas in your dialogue.
  3. Save the file with a .vtt extension, as UTF-8.

For anything longer than a few lines, step 2 is where mistakes creep in, which is why a converter is safer.

While your subtitles are open

Once the file is loaded in OpenSubs, you can do more before exporting:

  • Translate it into 20 languages without touching the timings.
  • Fix a line by editing its text directly.
  • Restyle it. Pick a caption style, including word-by-word highlighting.
  • Burn it into a video: load the video and export an MP4 with the subtitles drawn into the picture — useful for Instagram and TikTok, which don't take subtitle files. See how to burn subtitles into a video.

Don't have a subtitle file yet? You can download one if someone has made it, or generate one from the video's own audio.

FAQ

Will converting change my subtitle timings?

No. Only the format changes; every start and end time stays the same.

Can I convert VTT back to SRT?

Yes. Open the .vtt file and export as .srt.

Is my subtitle file uploaded?

No. OpenSubs reads the file in your browser tab. There is no upload endpoint in the product.

Does it cost anything?

No. Converting, translating on your device and exporting are free, with no account.


Convert your file now →