Convert VTT to SRT in your browser

Open a .vtt and save it as .srt. The conversion runs in this tab: no upload, no account, no video and no speech model needed. Every line keeps its start and end time and its text.

Free. No account. One file at a time.

How to convert VTT to SRT

OpenSubs is a subtitle generator, and it reads subtitle files as well as writing them. Converting VTT to SRT is opening one format and saving the other.

  1. Open opensubs.app and choose Open an .srt or .vtt, or drop the .vtt anywhere on the page.
  2. Check the lines in the list. If the characters look wrong, the file was not UTF-8: pick its encoding and it is read again.
  3. Open the Export tab and press .srt. The file downloads as subs.srt; rename it to match your video.

What changes from VTT to SRT

The two formats hold the same thing, timed lines of text, written differently. Converting one to the other changes the wrapping, not the content.

Kept

Every line's start and end time, to the millisecond, and its text, line breaks included.

Rewritten

The WEBVTT header goes, lines are numbered from 1, and timecodes take a comma before the milliseconds, as SRT expects.

Dropped

SRT has no place for them: NOTE, STYLE and REGION blocks, cue identifiers, and positioning such as line:90% or align:center.

Put in order

Lines that are out of time order in the .vtt come out in time order, and a timing with no text is left out rather than becoming a blank line.

A VTT to SRT converter that tells you what is wrong

A converter that quietly drops a broken line gives you a file that looks fine and is missing a sentence. This one refuses instead: a timing line it cannot read, or a line that ends before it starts, is reported with its line number, so you can fix the .vtt and open it again.

Before you save, you can also correct the text in the subtitle editor, translate the subtitles, or save the .vtt as .ass to keep a style you choose.

What it will not do

  • Convert a batch. It is one file at a time.
  • Keep VTT positioning or styling, because SRT cannot hold them.
  • Change timings while converting. They come out as they went in.

What leaves your machine

Nothing. The file is read in the tab, and nothing is uploaded. You can check it rather than take it on trust: open the Network tab, then convert VTT to SRT. After the page has loaded, there are no requests.

The source is public under the AGPL-3.0-or-later, on GitHub. Questions, or a problem to report: email hello@opensubs.app.

Questions

How do I convert VTT to SRT for free?

Open opensubs.app, choose Open an .srt or .vtt, pick the .vtt, then press .srt in the Export tab. It is free, with no account, and the file never leaves your browser.

Is my VTT file uploaded?

No. The conversion runs in your browser, and nothing is sent anywhere.

Do I need the video to convert VTT to SRT?

No. Only the .vtt is needed. No video and no speech model.

Will the timings change?

No. Each line keeps its start and end time to the millisecond. Only the way they are written changes.

What happens to VTT styling and positions?

They are dropped, because SRT has no place for them. To keep a look, save as .ass instead, which carries the style you choose in the app.

Can I convert SRT to VTT as well?

Yes. Open the .srt and press .vtt in the Export tab. More about SRT to VTT.