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 SRTHow to use it
Convert an SRT file in four steps.
No account and no upload. Close the tab and nothing is kept.
- Paste your SRT text into the box, or drop a .srt file onto it. Choose file works too.
- The WebVTT version appears as you type, with the number of cues and anything worth checking listed below it.
- Copy the result, or download it as a .vtt file named after your original.
- 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,500and WebVTT writes00: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, soTom & Jerryis written asTom & Jerry. Players display it normally.
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>WEBVTT
1
00:00:01.200 --> 00:00:03.900
Hi & 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:
<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.vttextension. - If the
.vttfile is on a different domain from the page, that server must allow cross-origin requests (CORS), and the<video>element needs acrossoriginattribute. - 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:
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.
Keep going
- VTT → SRTVTT to SRT converterTurn a WebVTT file into a clean, numbered SRT for video editors, YouTube and social platforms.
- ± TimingSubtitle timing shifterMove subtitles earlier or later by seconds or milliseconds, for the whole file or from any cue onward.
- GuideSRT vs VTTHow the two subtitle formats differ, and when to use each one.
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.