YouTube to SRT — free subtitle file converter
Paste a YouTube link and get the caption track back as a finished subtitle file: SRT for players and editors, WebVTT for HTML5 video. Timestamps are rendered server-side, so what you see is exactly what the file contains.
Works with watch links, youtu.be links, Shorts, embeds, or a bare 11-character video ID. The video needs captions or auto-captions on YouTube.
SRT and WebVTT, and which one you actually want
Both formats do the same job — pair a block of text with a start and end time — and both are plain text you can open in any editor. The difference is where they came from, and that decides where each one is welcome.
SRT came out of a Windows subtitle ripper in the early 2000s and became the lowest common denominator by accident. VLC, MPV, QuickTime with a plugin, Premiere Pro, DaVinci Resolve, Final Cut, Handbrake, Plex, Jellyfin, Vimeo, LinkedIn and the upload flows of most social platforms all read it. If something accepts subtitles at all, it very probably accepts SRT. That is why this tool defaults to it.
WebVTT was written for the web. It is what the HTML5 <track> element expects, and a browser will refuse an SRT file handed to it there. A YouTube VTT file also carries a WEBVTT header, uses a period rather than a comma before the milliseconds, and permits cue settings for position and alignment that SRT simply has no grammar for. Reach for VTT when the subtitles are going into a web page, an HLS stream, or a player library like Video.js or Plyr.
Converting between the two is close to a find-and-replace, which is why the toggle above just re-renders the same cues rather than doing anything clever. Pick the format first, or switch after — you get the same cue timings either way.
How to load the file into a player or editor
Copy the output above into a text editor and save it with the matching extension — .srt or .vtt — using UTF-8 encoding. Encoding matters more than people expect: save a file with accented characters as anything other than UTF-8 and they arrive as mojibake in the player.
Desktop players. Name the subtitle file exactly like the video file (talk.mp4 and talk.srt) and drop it in the same folder — VLC, MPV and Plex pick it up automatically. Otherwise drag the file onto the playing window, or use Subtitle → Add Subtitle File.
Video editors. In Premiere Pro, import the SRT and drag it onto a caption track; in DaVinci Resolve, File → Import → Subtitle; in Final Cut Pro, File → Import → Captions. From there the cues are editable objects, so fixing a mistimed line is a drag rather than a text edit.
On the web. A VTT file goes in as a track child of your video element — <track kind="captions" with src, srclang and a label. Serve it with the text/vtt content type and from the same origin (or with CORS headers), or the browser will fetch it and then quietly ignore it.
What this tool will not do
It reads caption tracks that already exist on YouTube, including automatic ones. It does not transcribe audio, so a video with captions switched off has nothing for it to convert. It does not translate — you get the track in the language YouTube serves.
Automatic captions are also unpunctuated and unattributed by nature: no speaker labels, no question marks, and proper nouns are a coin flip. For anything that will be published, budget a pass through a subtitle editor. And a caption track is not a licence — the words in someone else's video are still theirs, so quoting and citing is fine and republishing wholesale is not.
Copying the cues is open to anyone. Saving them as a file is the one thing behind the free signup, along with a bigger daily allowance and an API key for doing this in bulk.
Questions
What is an SRT file?
SubRip Subtitle (.srt) is the most widely supported subtitle format there is. It is plain text: a cue number, a start and end timestamp written as 00:00:04,220 --> 00:00:05,400, then one or more lines of text, then a blank line. Almost every video player, editor and social platform can read it, which is why it is the default choice when you are not sure what the destination expects.
What is a VTT file, and how is it different from SRT?
WebVTT (.vtt) is the subtitle format the web platform standardised for HTML5 video. Structurally it is close to SRT with three differences: the file starts with a WEBVTT header line, timestamps use a period instead of a comma for the fraction of a second (00:00:04.220 --> 00:00:05.400), and cue numbers are optional. VTT also allows styling and positioning that SRT has no syntax for. If the file is going into a <track> element in a browser, use VTT; for anything else, SRT is the safer bet.
Why do the timestamps not line up exactly with the video?
The cues come from the caption track YouTube serves for the video. When those captions were generated automatically by speech recognition, the boundaries are estimates: a cue often starts slightly before or after the word is actually spoken, and consecutive cues can overlap in the source data. We clamp overlapping cues so no two are on screen at once, but we do not move a cue to somewhere the source never claimed it was. If you need frame-accurate subtitles, treat this file as a very good starting point and nudge it in a subtitle editor.
What happens if the video has no captions?
Then there is nothing to convert and the tool tells you so. This converter reads existing caption tracks, including YouTube's automatic ones; it does not transcribe audio itself. If the uploader disabled captions and automatic captions never ran, no subtitle tool can pull a track out of that video — you would need to run the audio through a speech-to-text service instead.
Can I convert a lot of videos at once?
Not through this page. The free tool is one video at a time with a small daily allowance per visitor, because every conversion is a real fetch against YouTube. The same conversion is a single API call if you want to script it — the API returns srt and vtt as rendered strings from the same endpoint, so a playlist loop is a few lines of code.