Free tool

SRT to VTT Converter

Drop an .srt — get a valid WebVTT file for any HTML5 player.

Converted in your browser, never uploaded
Input
Output

Convert SRT to VTT in your browser: paste or drop your .srt file and get a valid WebVTT file instantly — commas become periods, the WEBVTT header is added, and the result works with YouTube, Vimeo, and any HTML5 video player. Nothing is uploaded.

Example: Input and Output

Input (.srt) — a two-line cue, italics, and a {\an8} position tag

1
00:00:01,000 --> 00:00:03,500
<i>Welcome back</i>
to the channel.

2
00:00:04,000 --> 00:00:07,000
{\an8}<font color="#ffff00">Today we're fixing subtitles</font>
that <b>drift</b> out of sync.

Output (.vtt)

WEBVTT

00:00:01.000 --> 00:00:03.500
<i>Welcome back</i>
to the channel.

00:00:04.000 --> 00:00:07.000 line:0
Today we're fixing subtitles
that <b>drift</b> out of sync.

Line breaks inside a cue stay where they were. <i>, <b> and <u> are valid WebVTT and are kept. {\an8} (top of the frame) becomes the cue setting line:0, and <font> is dropped, because WebVTT has neither.

How to Convert Subtitle Files

Four steps to convert any subtitle or transcript format — no software, no upload, no account.

  • Paste or drop your SRT fileCopy the content of your .srt file and paste it into the input area, or drag and drop the SRT file directly onto the input panel.
  • Conversion happens automaticallyThe tool detects the SRT format, parses every cue, converts the timestamp separators from commas to periods, and adds the WEBVTT header required by the VTT spec.
  • Optionally adjust timestampsUse the offset field to shift all cues forward or backward by a fixed number of seconds — useful when your subtitles are slightly out of sync with the video.
  • Download the VTT fileClick Download to save the converted .vtt file, or copy the output to your clipboard. The result is a valid WebVTT file accepted by all major video platforms and players.

Why Use This Converter

  • Convert SRT to VTT in one click — no software to install
  • Handles CRLF line endings and BOM characters, and keeps the line breaks inside multi-line cues
  • Timestamp offset sync — shift cues forward or backward by any amount
  • 100% client-side — your SRT files are never uploaded
  • Output is a valid WebVTT file accepted by YouTube, Vimeo, and HTML5 video
  • No file size limits, no watermarks, no account required

Frequently Asked Questions

Paste your SRT file content into the input area above (or drag and drop the .srt file). The tool auto-detects the SRT format and converts it to VTT instantly. Click Download to save the .vtt file.

Three things. The millisecond separator in every timestamp goes from a comma to a period (00:00:01,500 becomes 00:00:01.500). A WEBVTT line and a blank line are added at the top. And the cue numbers, which SRT requires and VTT only allows as optional identifiers, are removed. The text and the timings are not touched.

Yes. After the end time, VTT accepts cue settings such as line:0 (top of the frame), align:start and position:10%. SRT has no place for them, so a plain SRT converts without any. The one exception is a top-of-frame {\an7}, {\an8} or {\an9} tag, which the tool turns into line:0.

They stay multi-line. WebVTT allows several text lines in one cue, so each line break is written to the output as it was and the player shows the cue on two lines, as the SRT did.

<i>, <b> and <u> are valid WebVTT and are kept. <font> is not part of WebVTT, so the tag is removed and the text stays, which means a font colour is lost. A {\an8} block is removed from the text, and when it is a top position (an7, an8, an9) the cue gets line:0 instead. Other positions are left at the player default.

Yes. YouTube accepts WebVTT files for manual caption upload. After converting your SRT to VTT with this tool, go to YouTube Studio, open your video, click Subtitles, Add, and upload the .vtt file.

Yes, completely free. There is no account, no sign-up, and no usage limit. Convert as many SRT files as you need.

No. All conversion happens in your browser using JavaScript. Your SRT files are never sent to any server, never stored, and never leave your device.