SSubToolDesk
en

How to Add Subtitles to a YouTube Video (SRT or VTT)

A step-by-step walkthrough for uploading SRT or VTT captions to YouTube, plus what to do if YouTube rejects your file.

YouTube supports timed-text captions, and adding your own file gives you far more accurate subtitles than YouTube’s auto-generated ones, especially for technical terms, names, or non-English audio.

Uploading a caption file

  1. Open YouTube Studio and go to Content.
  2. Click the video you want to caption, then open the Subtitles tab.
  3. Click Add language if the language you’re captioning in isn’t listed yet.
  4. Under the language, click Add next to Subtitles, then Upload file.
  5. Choose With timing (not “Transcript only”: that option strips your timestamps and asks YouTube to re-sync them, which defeats the point of a pre-timed file).
  6. Select your .srt or .vtt file and publish.

Why YouTube sometimes rejects the file

A few things reliably break the upload:

  • Wrong timestamp format. SRT uses commas (00:00:01,000), VTT uses periods (00:00:01.000). Mixing them up is the single most common cause of a rejected or garbled upload.
  • Missing the WEBVTT header. If you’re uploading a .vtt file, the very first line must be WEBVTT. Without it, YouTube treats the file as invalid.
  • Encoding issues. Non-UTF-8 files (common if the subtitles were exported from older software) can cause accented characters or non-Latin scripts to show up as garbled text.
  • Overlapping cues. If two cues have overlapping time ranges, some platforms silently drop one of them.

SRT or VTT: does it matter for YouTube?

YouTube accepts both, so this mostly comes down to what you already have. If you’re starting from a transcript tool or an editing suite that exports SRT (the more common default), there’s no need to convert, just upload it as-is. If you already have VTT from a web-based workflow, that uploads fine too.

Where this matters more is if you’re also embedding the same captions on your own website using the HTML5 <video> element: browsers specifically expect VTT there, so you’d want both formats on hand. Converting between the two is purely mechanical (timestamp separator, header, cue numbering), so you don’t need to re-time anything by hand. Our SRT to VTT converter handles it instantly in your browser, with nothing uploaded to a server.

Convert SRT to VTT