Export format

YouTube to WebVTT

Get a YouTube video's captions as a WebVTT (.vtt) file, the caption format browsers use for the HTML5 <track> element. Use it on your own site, in an LMS, or anywhere that asks for VTT instead of SRT.

How it works

  1. Paste a YouTube video link or ID.
  2. Preview the cues with their timings.
  3. Download the .vtt file and attach it to your player.

What the WebVTT export looks like

Real output for “Me at the zoo”, the first video on YouTube, produced by the same code as the tool above.

WEBVTT

00:00:01.200 --> 00:00:03.360
All right, so here we are, in front of the elephants

00:00:05.318 --> 00:00:07.974
the cool thing about these guys is that they have really...

00:00:07.974 --> 00:00:12.616
really really long trunks

00:00:12.616 --> 00:00:14.367
and that's cool

00:00:14.421 --> 00:00:15.733
(baaaaaaaaaaahhh!!)

00:00:16.881 --> 00:00:18.881
and that's pretty much all there is to say

Who it's for

  • Web developers self-hosting video
  • Course creators uploading to an LMS
  • Teams that need captions in the browser's native format

Other formats

Need this for many videos?

Pull a playlist's transcripts with the playlist tool, or get the same data from code with the transcript API and MCP server.

YouTube to WebVTT: questions

What is the difference between VTT and SRT?

Both are timed text. WebVTT starts with a WEBVTT header and uses a dot before the milliseconds (00:01:02.500); SRT numbers each cue and uses a comma. Browsers need VTT for <track>; desktop editors usually prefer SRT.

What if a video has no captions?

The tool can only export captions YouTube already has, creator-written or auto-generated. Videos with captions turned off have nothing to export, and the tool tells you so.

Can I export a whole playlist or channel?

This page exports one video at a time. For a playlist, the playlist tool pulls transcripts for its videos; for whole channels or recurring exports, the API and MCP server return the same data for every video.