How-to

How to upload an SRT or VTT caption file to YouTube

The exact YouTube Studio steps, what to do when a file is rejected or drifts out of sync, and the equivalent steps on LinkedIn and Vimeo.

Updated 8 min readBy the AutoCap team

Why upload your own captions

YouTube creates automatic captions for many videos, so why bother with a file? Because automatic captions are a draft. YouTube’s help center says they’re generated by machine learning, that their quality varies, and that they can misrepresent what was said because of mispronunciations, accents, dialects or background noise. It also lists cases where they may not appear at all, including unsupported languages, poor sound, overlapping speakers and very long videos. A file you’ve checked replaces those guesses with the words that were actually said.

That matters to real viewers. YouTube describes subtitles and captions as a way to share videos with a larger audience, including deaf and hard-of-hearing viewers and people who speak another language. Anyone watching in a quiet office, on a train or in their second language can turn captions on and read exactly what was said. And once your spoken words exist as accurate text, you can reuse them: translate them, quote them, or build a description from them.

YouTube’s help pages present captions as an accessibility and reach feature, not a ranking trick, so be wary of anyone promising a search boost from a caption file alone. The dependable benefit is simpler: more people can follow the video.

Before you upload: check the file

Two minutes here saves a rejected upload. Open the file in a plain-text editor — TextEdit in plain-text mode, Notepad, or any code editor — and check:

  • Format. It’s .srt or .vtt. YouTube supports both, along with formats such as SBV, TTML and SCC.
  • Encoding. It’s saved as UTF-8. YouTube requires plain UTF-8 for SRT files, and the wrong encoding turns accented letters and curly apostrophes into garbage.
  • Structure. An SRT repeats a number, a timing line, the text and a blank line. A VTT starts with WEBVTT on the first line.
  • Timestamps. SRT uses a comma before the milliseconds (00:01:05,300); VTT uses a period (00:01:05.300).
  • No styling in SRT. YouTube ignores markup in SRT files. If you need a caption positioned somewhere specific, use VTT: YouTube supports positioning there and limits styling to bold, italic and underline.
  • Language. Know which language the file is in; you’ll choose it during the upload.

If you don’t have a file yet, an SRT generator can make one from the video’s speech. AutoCap, for example, transcribes the audio with a timing for every word, lets you correct the transcript, and exports SRT and VTT files on paid plans. The differences between the two formats are covered in SRT vs VTT.

Upload an SRT or VTT file in YouTube Studio

These are the steps from YouTube’s help center as of September 2026, on a computer. YouTube adjusts Studio’s layout from time to time, so a label may differ slightly.

  1. Sign in to YouTube Studio.
  2. From the left menu, select Subtitles.
  3. Select the video.
  4. Click Add language and choose the language of your caption file.
  5. Under “Subtitles”, click Add.
  6. Select Upload file.
  7. Choose With timing — your SRT or VTT already contains timestamps — then select Continue.
  8. Choose the file on your computer.
  9. Select Save.

You can also add subtitles and captions while uploading a new video. The Without timing option is for a plain transcript with no timestamps, which YouTube synchronizes to the audio itself; its help center says transcripts aren’t recommended for videos over an hour long or with poor audio quality.

For Shorts, which are watched in a fast vertical feed, consider burning captions into the video as well as uploading a file. See YouTube Shorts subtitles for that workflow.

Edit captions after uploading

To fix a word or a timing without uploading again:

  1. In YouTube Studio, select Subtitles, then the video.
  2. For the language you want, select Edit in the “Subtitles” column.
  3. Click inside any line to change its text. To change timing, edit the two timestamp boxes beside the line; if you don’t see them, select Edit timings.
  4. Click Publish.

YouTube’s automatic captions work slightly differently: select Duplicate and edit, and YouTube creates a new caption track that includes your revisions. For bigger changes, open the track with Edit, choose OptionsDownload subtitles, fix the file, and upload it again. To remove a track entirely, choose Options Delete and confirm with Delete captions.

One habit saves trouble later: make corrections in your master file too. If you fix a name only inside YouTube, the SRT you upload to LinkedIn or Vimeo next week still has the old mistake.

Add more languages

Each language is its own track. Repeat the upload steps, choosing Add language for each translation and uploading a separate file for each — for example interview.en.srt, interview.es.srt and interview.de.srt. The language you pick in Studio is what labels the track.

  • Translate from your corrected transcript, not from automatic captions.
  • Keep the original timings, but check reading speed: a translation can run longer than the source, so split long captions where needed.
  • Set the video’s own language correctly. YouTube’s help center notes that automatic captions are only produced in the video’s default language.

Common errors and how to fix them

The file is rejected or not recognized

  • A VTT file without the WEBVTT header, usually an SRT that was renamed. Upload the SRT as it is, or convert it properly with the SRT to VTT converter.
  • A word-processor document renamed to .srt. Word and rich-text files contain formatting data. Copy the text into a plain-text editor and save it again as UTF-8.
  • Broken structure: a missing blank line between cues, a missing cue number, or a timing line with a typo in the --> arrow.

Garbled characters instead of accents or apostrophes

Question marks, boxes or sequences like é mean the text was saved or converted with the wrong encoding somewhere along the way. Open the original file, make sure the text looks right, save it as UTF-8 and upload again. If the characters are already broken in your copy, fix the text first — re-saving won’t restore them.

Timestamps in the wrong format

An SRT timestamp must be HH:MM:SS,mmm: two digits each for hours, minutes and seconds, and three for milliseconds. These cause problems:

timestamps.txt
Problem   00:01:05.300 --> 00:01:07.900   periods in an SRT file
Problem   01:05,300 --> 01:07,900         hours missing
Problem   00:01:05,30 --> 00:01:07,9      milliseconds not 3 digits
Problem   00:01:05:12 --> 00:01:07:27     frames, not milliseconds

Correct   00:01:05,300 --> 00:01:07,900

The last one is common when captions are exported from an editing timeline: the final number counts frames, not milliseconds, so it can’t simply be relabeled. Converting it needs the video’s frame rate, or re-export the captions as SRT from the editing software.

Overlapping cues

When a caption ends after the next one starts, players may show both at once or cut one short. In this example, cue 4 ends at 15.2 seconds but cue 5 starts at 14.9:

overlap.srt
4
00:00:12,400 --> 00:00:15,200
and that's why we started

5
00:00:14,900 --> 00:00:17,000
recording everything.

Change cue 4’s end time to 00:00:14,900 so it hands over cleanly. If a file has many overlaps, it was probably built by hand or merged from two sources — regenerate it from the final video if you can.

Captions are consistently early or late

If every caption is off by the same amount, the file was probably made from a different cut of the video — before an intro was added, or after one was trimmed. Shift all the timings at once with the subtitle timing shifter: add 3.5 seconds if the new version has a 3.5-second intro, for example, then upload the result. If the captions drift further out of sync as the video goes on, it isn’t a simple offset, and a shift won’t fix it; that points to a speed or frame-rate mismatch, so regenerate the captions from the final video.

Captions don’t look like your file

YouTube ignores styling in SRT files and supports only bold, italic and underline in VTT. If the look matters — brand fonts, colors, word highlights — burn the captions into the video and keep the uploaded track for viewers who rely on the player’s caption controls.

Adding captions on LinkedIn

LinkedIn’s help center describes adding closed captions to a video post from the desktop site:

  1. From the share box at the top of your homepage, click the Video icon.
  2. Click Select video to share and choose the video.
  3. In the preview, click Edit in the top-right corner to open the video’s settings.
  4. Click Select Caption, attach your SRT file and confirm.
  5. Add your post text and click Post.

The article specifies SRT files, so export SRT rather than VTT for LinkedIn, and it describes the desktop experience — if you post from the mobile app, check whether the caption option is there before you rely on it. LinkedIn’s interface changes from time to time, so the button names may not match exactly. For clips meant to be read in a muted feed, see LinkedIn video captions.

Adding captions on Vimeo

Vimeo’s help center says it accepts SRT and WebVTT files for captions and subtitles, recommends WebVTT, and requires UTF-8 encoding. To upload one:

  1. Open the video from your library.
  2. Select the Languages button in the toolbar to the left of the player.
  3. Select the + button at the top of the languages window and upload your file.
  4. Use the dropdown menus next to the file name to set the Language and the Type: Subtitle or Caption.
  5. Select Upload, then toggle the track on to activate it.

Choose Caption for a file that includes sound descriptions and speaker labels, and Subtitle for dialogue-only or translated text; the distinction is explained in open vs closed captions. Vimeo’s troubleshooting page for caption files is also specific about structure: a VTT file must begin with the WEBVTT signature, an SRT file must begin with the first cue’s number, and SRT timestamps use a comma, with hours, minutes and seconds always written as two digits.

Questions

Does YouTube accept VTT files?

Yes. YouTube lists WebVTT (.vtt) among its supported caption formats. Positioning in VTT files is supported, and styling is limited to bold, italic and underline.

Should I choose With timing or Without timing?

Choose With timing for SRT and VTT files, because they already contain timestamps. Without timing is for a plain transcript that YouTube should synchronize to the audio itself.

Why are my YouTube captions a few seconds off?

If every caption is off by the same amount, the file was probably made from a different version of the video, such as one without an intro. Shift every timestamp by that amount with a subtitle timing shifter and upload the corrected file.

Caption your next video automatically.

Upload an MP4 or MOV, get captions with a timing for every word, fix anything the transcript missed, and export a captioned video. The free plan needs no card.