Free tool · Nothing uploaded

SRT to VTT converter

Paste an SRT file or drop one in, and get a WebVTT file for the HTML5 <track> element and web video players. The conversion runs in your browser, so your subtitles never leave your device.

Paste the text, or drop a .srt or .vtt file here. Up to 5 MB.

WebVTT output

Saved as a .vtt file.

Paste subtitles or choose a file, and the WebVTT version appears here.

Runs in your browser. Nothing is uploaded.

Swap direction: VTT to SRT

How to use it

Convert an SRT file in four steps.

No account and no upload. Close the tab and nothing is kept.

  1. Paste your SRT text into the box, or drop a .srt file onto it. Choose file works too.
  2. The WebVTT version appears as you type, with the number of cues and anything worth checking listed below it.
  3. Copy the result, or download it as a .vtt file named after your original.
  4. Put the .vtt file next to your video and point a <track> element, or your player's caption setting, at it.

What changes between SRT and WebVTT

Both formats store a list of cues, each with a start time, an end time and some text, and the timings carry over exactly. The differences are in the details, and the converter handles each one:

  • A header line. A WebVTT file must begin with WEBVTT. SRT files start straight with the first cue.
  • A period before the milliseconds. SRT writes 00:01:02,500 and WebVTT writes 00:01:02.500. The time is the same.
  • Cue numbers become identifiers. Every SRT cue starts with a number. In WebVTT the line above a timing is an optional cue identifier, so the numbers are kept and players ignore them.
  • Only tags WebVTT understands stay. <i>, <b> and <u> work in both formats. <font> tags and position codes such as {\an8} are SRT conventions that WebVTT does not support, so they are removed and their text is kept.
  • Reserved characters are escaped. WebVTT reads & and < as markup, so Tom & Jerry is written as Tom &amp; Jerry. Players display it normally.
before.srt
1
00:00:01,200 --> 00:00:03,900
<font color="yellow">Hi</font> & welcome back.

2
00:00:04,100 --> 00:00:06,500
{\an8}<i>Previously...</i>
after.vtt
WEBVTT

1
00:00:01.200 --> 00:00:03.900
Hi &amp; welcome back.

2
00:00:04.100 --> 00:00:06.500
<i>Previously...</i>

Where you need VTT instead of SRT

Browsers play captions from one text format. The HTML5 <track> element takes a WebVTT file and does not read SRT, so captions for video on your own site need to be .vtt:

index.html
<video controls src="talk.mp4">
  <track kind="captions" src="talk.vtt" srclang="en" label="English" default>
</video>
  • Serve the file with the content type text/vtt, which is registered for WebVTT. Some servers need to be told about the .vtt extension.
  • If the .vtt file is on a different domain from the page, that server must allow cross-origin requests (CORS), and the <video> element needs a crossorigin attribute.
  • WebVTT is also the subtitle format for HLS streaming, and players built on the <video> element, such as Video.js, read it.

What WebVTT adds once you have converted

SRT has no formal specification; it grew out of SubRip, a program for extracting subtitles from video. WebVTT is a W3C specification, and it can do things SRT cannot. Cue settings after the end time control where a caption sits:

settings.vtt
WEBVTT

00:00:04.100 --> 00:00:06.500 line:0 align:start
Shown at the top, aligned left.

That cue is shown at the top of the video and aligned to the left. WebVTT files can also carry NOTE comments, and captions can be styled with CSS through the ::cue selector. For the full comparison, read SRT vs VTT.

Questions

The short answers.

Is my subtitle file uploaded?

No. The conversion runs in your browser. The text you paste or the file you choose is read on your device and never sent to a server, and you don't need an account.

Does converting change the timing?

No. Every start and end time is copied to the millisecond. Only the separator changes, from a comma in SRT to a period in WebVTT.

Will italics and bold survive?

Yes. <i>, <b> and <u> are valid in both formats and are kept. <font> color tags and {\an8} position codes are removed because WebVTT does not support them; their text stays.

What happens to the SRT cue numbers?

They are kept as cue identifiers, the optional line WebVTT allows above each timing. Players do not display them.

Accented letters in my file look wrong. Why?

The original file is probably not UTF-8. When a file you choose is not valid UTF-8, the tool reads it as Windows-1252, the usual older encoding for Western European text, and tells you it did. The .vtt download is always UTF-8, which WebVTT requires.

Is there a size limit?

Files up to 5 MB. Subtitle files are plain text, so even a feature-length film's subtitles are usually well under that.

From video to subtitles

Don't have subtitles yet? AutoCap generates them from your video.

Upload a video with English speech and get captions with a timing for every word. Edit any word, then export a burned-in MP4 rendered in your browser at up to 2K, or download SRT and VTT files on a paid plan. The free plan includes 2 minutes a month.