# YouTube captions and subtitles: files, timing and reuploads

YouTube supports **separate caption files**, including SRT, SBV and WebVTT, and **automatic captions for long-form
videos and Shorts**. Add or correct selectable captions in YouTube Studio. Words burned into an exported video stay
in its picture; they are not a selectable caption track, and uploading the video alone does not upload an SRT beside it.

Checked on October 31, 2026, against YouTube and Google's own documentation, linked inline and under [Sources](#sources).

## Burned-in words versus selectable captions

| Kind of text | Where it lives | What the viewer gets |
|---|---|---|
| Burned-in words, sometimes called open captions | Pixels rendered into the exported video | Always visible while those frames play. Turning captions off cannot remove them; changing the words requires changing the video picture |
| Uploaded captions or subtitles | A separate text-and-timing track attached to a YouTube video | Captions the player can display separately, with language choices where available |
| YouTube automatic captions | A track YouTube generates from speech | Machine-generated text that needs review; it may not be ready when the video is uploaded |
| Video title or description | The video's metadata | Not synchronized subtitles, even if another publishing app calls its post text a “caption” |

YouTube defines a [caption track](https://developers.google.com/youtube/data/reference/rest/v3/captions) as timed text
associated with a video. Captions can include speaker identification and meaningful sounds such as `[applause]`, not
just dialogue. A translated subtitle track supplies another text language; it does not dub the audio. See
[YouTube's caption editor instructions](https://support.google.com/youtube/answer/2734796?hl=en).

## Add a caption file in YouTube Studio

For an existing upload, use the desktop [YouTube Studio workflow](https://support.google.com/youtube/answer/2734796?hl=en):

1. Sign in to YouTube Studio for the channel that owns the video.
2. Choose **Subtitles** in the left menu, then select the video.
3. Choose **Add language** and the language of the text you are adding. Under **Subtitles**, choose **Add**.
4. Choose **Upload file**. Select **With timing** for a timed SRT, SBV or another supported caption file, or
   **Without timing** for a transcript you want Studio to synchronize. Select **Continue** and choose the file.
5. **Save** the upload. Review the words and their timing in the editor; use **Publish** to publish editor changes.
   A track left as a draft is not visible to viewers.
6. Play the video with the intended caption language enabled. Check the opening, speaker changes and ending, not just
   whether the file uploaded.

YouTube also lets you add subtitles during its native video-upload process. You do not need to reupload an existing
video just to add or fix captions. For corrections, go back to **Subtitles**, select the video and **Edit** beside the
language. Adjust the text or the two timestamp boxes for each cue; if timestamps are hidden, choose **Edit timings**.
Finish with **Publish**. You can also use **Options → Download subtitles**, edit the file locally and upload it again.
[Editing and downloading instructions](https://support.google.com/youtube/answer/2734705?hl=en).

## Which caption files does YouTube support?

For a straightforward text-and-timing file, YouTube recommends **SubRip (`.srt`) or SubViewer (`.sbv`)** to beginners.
Both must be plain **UTF-8**, and YouTube recognizes no styling markup in their basic supported versions.
[Supported formats and examples](https://support.google.com/youtube/answer/2734698?hl=en).

| Format family | File types | Important qualification |
|---|---|---|
| Basic text | SRT `.srt`; SubViewer `.sbv` / `.sub`; MPsub `.mpsub`; LRC `.lrc`; Videotron Lambda `.cap` | SRT/SBV have no styling; MPsub supports `FORMAT=`; LRC supports enhanced format but no styling; Lambda is primarily used for Japanese subtitles |
| Advanced text | SAMI `.smi` / `.sami`; RealText `.rt`; WebVTT `.vtt` | SAMI/RealText support simple markup but no positioning. WebVTT supports positioning with limited bold, italic and underline styling |
| XML timed text | TTML `.ttml`; DFXP `.ttml` / `.dfxp` | TTML support is partial; DFXP is interpreted as TTML. Check the supported subset before relying on styling |
| Broadcast | Scenarist `.scc`; EBU-STL `.stl`; Caption Center `.tds`; Captions Inc. `.cin`; Cheetah `.asc` / `.cap`; NCI `.cap` | Several are binary formats. A `.cap` extension alone does not identify the dialect |

A minimal SRT file has numbered cues, start and end times separated by `-->`, and a blank line between cues:

```srt
1
00:00:00,500 --> 00:00:02,800
The next step is yours.

2
00:00:03,000 --> 00:00:05,200
[applause]
```

SRT uses **comma milliseconds**, as in `00:00:00,500`. SBV uses decimal-point milliseconds and comma-separated start
and end times, as in `0:00:00.500,0:00:02.800`. A renamed `.txt` file is not automatically a valid SRT. Keep the timed
file matched to the final video edit: trimming an intro, inserting a clip or changing playback speed can move the
speech away from its cues. Use the [editor's timing controls](https://support.google.com/youtube/answer/2734705?hl=en)
to correct it.

## Automatic captions, auto-sync and language are different choices

**Automatic captions transcribe the audio. Auto-sync times text you supply. An uploaded timed file supplies both text
and timing.** These are different workflows, not three names for the same operation.

- **Automatic captions:** YouTube generates and publishes them when available. They cover long-form videos and Shorts
  in the [supported speech-recognition languages](https://support.google.com/youtube/answer/6373554?hl=en), but may be
  delayed or mishear names, accents and noisy audio. Unsupported languages, overlapping speakers, simultaneous
  languages, long opening silence or poor speech detection can leave a video without them. With multiple audio-language
  tracks, automatic captions use the default language; they are not a complete set of translated subtitles.
- **Auto-sync in Studio:** choose **Auto-sync**, enter the words or upload a transcript, then **Edit → Save and close**.
  The transcript must match the spoken language and use a supported speech-recognition language. YouTube says timing
  can take a few minutes and the transcription is automatically published when ready. It advises against transcripts
  for videos over an hour or with poor audio; this is guidance, not a universal video-upload limit.
  [Native auto-sync instructions](https://support.google.com/youtube/answer/2734796?hl=en).
- **Type manually:** Studio also accepts typed or pasted text. Play the video, enter the text and meaningful sound
  descriptions, review the resulting timing and choose **Publish**.
  [Manual-entry instructions](https://support.google.com/youtube/answer/2734796?hl=en).
- **Translated subtitles:** add the target language and its translated text as another track. Do not use an English
  transcript under a Spanish language label and expect the label to translate it, or use auto-sync to align a
  translation as though it were the spoken-language transcript.

To correct automatic captions, open **Subtitles → video**, then choose **Duplicate and edit** for the automatic track.
Review the words and timing and **Publish**. YouTube creates a new caption track containing your revisions.
[Edit automatic captions](https://support.google.com/youtube/answer/2734705?hl=en).

Set the original video language separately in **Content → video → Show more → Language and captions certification**,
then **Save**. That tells YouTube the original language; it does not rewrite existing captions. YouTube says changing
it affects the source language for future translated subtitles, not published or draft caption tracks.
[Video-language settings](https://support.google.com/youtube/answer/6304325?hl=en).

## What transfers when you upload the video separately?

A video export and its subtitle sidecar are separate assets. If you upload the same edited video to another YouTube
video entry, another channel or another platform:

- **The burned-in words remain** if they are actually rendered into the file's picture. An editable text layer in your
  project is not enough unless the export includes it.
- **A separate SRT/SBV/VTT does not ride along merely because it shares the video's filename.** Upload or attach the
  caption file in the destination's supported workflow. YouTube's API has a
  [video upload method](https://developers.google.com/youtube/data/reference/rest/v3/videos/insert) and a separate
  [caption insertion method](https://developers.google.com/youtube/data/reference/rest/v3/captions/insert) that takes
  the destination `videoId`; video upload is not a caption-sidecar attachment operation.
- **An existing video's caption tracks are not a transferable property of its MP4.** Download an editable track from
  Studio if you need it, then add it to the new upload. Recheck timings against that upload's final cut. Do not assume
  YouTube-generated captions or translations on the old video will be copied; automatic caption generation for the
  new upload is a separate process.
- **A new YouTube upload gets a new URL.** YouTube does not let you replace an existing video's file while preserving
  that video entry. Adding captions to the existing entry is different from uploading a new video.
  [YouTube's replacement rule](https://support.google.com/youtube/answer/55770?hl=en).

This sidecar workflow is not a promise that an embedded caption stream inside every video container will be extracted.
Keep a separate supported caption file rather than relying on an undocumented transfer. For destination-specific video
requirements, see [TikTok, X and LinkedIn video specs](/docs/guides/video-specs-tiktok-x-linkedin).

## YouTube's API is not Studio auto-sync

Developers can upload a caption file separately with `captions.insert`, supplying the destination video ID, caption
language and track name. The language is a **BCP-47 tag**, such as `en` or `en-US`. Caption-method authorization and
permission to edit the destination resource are required; a video-upload integration is not automatically a caption
integration. [Insert contract](https://developers.google.com/youtube/data/reference/rest/v3/captions/insert) and
[caption resource fields](https://developers.google.com/youtube/data/reference/rest/v3/captions).

**API caption files must contain timing information.** YouTube stopped supporting the `sync` parameter for caption
insert/update on **April 12, 2024**. Studio's native auto-sync workflow still exists; it is not evidence that an app can
send an untimed transcript with `sync=true`. [YouTube's deprecation notice](https://developers.google.com/youtube/data/revision_history#march-13-2024).

Caption processing and visibility are separate: the API reports `serving`, `syncing` or `failed`, and `isDraft: true`
means the track is not publicly visible. A successful upload response is not proof that captions are ready or timed
correctly. [Track status and draft fields](https://developers.google.com/youtube/data/reference/rest/v3/captions).

## Does Flaghand upload YouTube caption files?

**Flaghand does not currently provide a YouTube caption-file workflow.** Its
[media documentation](https://app.flaghand.com/docs/drafts-and-media.md) does not offer YouTube caption-track upload, editing,
auto-sync or translation operations. Connecting a channel, uploading video media or adding a post's text does not
create a selectable YouTube caption track. Use the native Studio steps above for that work.

If your video already has burned-in words, they remain part of that video's picture. That is not Flaghand generating,
attaching or verifying selectable subtitles. YouTube's automatic captions are YouTube's feature, not a Flaghand
caption service.

## Sources

Checked on October 31, 2026.

- [YouTube: add subtitles and captions, including file upload, auto-sync and manual entry](https://support.google.com/youtube/answer/2734796?hl=en)
- [YouTube: supported subtitle and closed-caption files](https://support.google.com/youtube/answer/2734698?hl=en)
- [YouTube: automatic captions for long-form videos and Shorts](https://support.google.com/youtube/answer/6373554?hl=en)
- [YouTube: edit, time and download captions](https://support.google.com/youtube/answer/2734705?hl=en)
- [YouTube: change the original video language](https://support.google.com/youtube/answer/6304325?hl=en)
- [YouTube: a new upload is not a replacement of the old video](https://support.google.com/youtube/answer/55770?hl=en)
- [Google: caption resource, language, draft and processing status](https://developers.google.com/youtube/data/reference/rest/v3/captions)
- [Google: insert a caption track](https://developers.google.com/youtube/data/reference/rest/v3/captions/insert)
- [Google: upload a video](https://developers.google.com/youtube/data/reference/rest/v3/videos/insert)
- [Google: caption API auto-sync deprecation](https://developers.google.com/youtube/data/revision_history#march-13-2024)

[All guides](/docs/guides.md)
