Facebook

How to Add Captions to Facebook Videos (2026): Auto-Captions, SRT Files and Rejected Uploads

Matt
· Updated 16 min read

Quick answer: Facebook accepts uploaded captions in one format, SubRip (.srt), and the file name has to carry the locale: filename.en_US.srt. That single rule is the most common reason a caption upload fails. You can also let Facebook auto-generate captions and edit them, or type them in yourself. All three work after the video is already published, from the video's own edit screen. You do not need Creator Studio for any of it: Meta retired Creator Studio in 2024 and moved its Page tools into Meta Business Suite.

Jump to: Pick a method · Auto-captions · Upload an SRT file · Why your SRT was rejected · After publishing · Reels, Live and Stories · Writing captions · Viewers cannot see them · FAQ

Which caption method do you need

You wantMethodWhere you do itCan you do it after posting
A rough draft, fastAuto-generate, then edit the textVideo edit screen, or Meta Business SuiteYes
Accuracy, or more than one languageUpload a .srt fileVideo edit screen, or Meta Business SuiteYes
A short clip with a few linesType the captions in FacebookVideo edit screenYes
Captions on a ReelCaptions sticker in the Reels editor, or burn them in before uploadFacebook app, while creatingAdd them before you post
Captions on a Live broadcastCaptions embedded in the stream by your encoder or a captioning vendorYour streaming setupThe replay can be captioned afterwards like any video
Captions on a StoryBurn the text into the clip in your own editorYour video editorNo

These are genuinely different systems, and most guides blur them. Closed captions that a viewer can toggle exist for uploaded video. Reels and Stories rely on text that is part of the picture. Live needs the captions to arrive inside the stream while it is running.

Quick Knowledge Check
Test your understanding

Your SRT file is valid and your video is fine, but Facebook rejects the caption upload. What is the most likely cause?

💡
Hint: Language code lowercase, country code uppercase, both before the .srt extension.

Create content, post everywhere

Create captions, images, and videos with AI. Schedule to 9 platforms in seconds.

Start your free trial

Auto-generated captions

Facebook can transcribe the audio for you and turn it into an editable caption track.

On a new upload:

  1. Start the post and upload your video
  2. Once it finishes processing, open the caption or subtitle controls in the post editor
  3. Choose the option to generate captions automatically
  4. Wait for the transcript to appear, which can take a few minutes on longer videos
  5. Read every line and fix it
  6. Save

On a video you already posted: open the video, use the options menu on the post, choose to edit it, and you will find the same caption controls. Details below in adding captions after publishing.

Auto-captions are a draft, not a deliverable

Speech recognition is reliably wrong about the things that matter most in a business video: proper nouns, brand names, product names, jargon, numbers and anything said over music. Before you publish, check:

  • Names of people, companies and products
  • Punctuation, especially sentence breaks, which the transcript often omits entirely
  • Timing drift after a long pause or a music bed
  • Whole missing phrases where two people talked over each other

What Meta actually documents about auto-captions

Be careful with the language lists you find online, including the confident ones. Meta's help article on caption file naming says a table of valid language and country code combinations is listed below the explanation, but that table does not render when the article is fetched from a desktop browser, so there is no readable public list to cite. Separately, Meta's help article for adding captions to a video on your personal profile describes only the .srt upload path and does not offer an auto-generate option at all, which fits the long standing pattern that automatic captioning is a Page and Business Suite feature rather than a profile feature.

Practical translation: if you cannot find a generate button, you are probably on a surface that does not offer one. Upload an SRT file instead. That path works everywhere.

Uploading an SRT file

An SRT (SubRip Text) file is a plain text file made of numbered caption blocks, each with a start and end timestamp and one or two lines of text.

1
00:00:01,000 --> 00:00:04,000
Welcome to our guide on Facebook marketing.

2
00:00:04,500 --> 00:00:08,000
Today we'll cover three strategies
that actually work.

3
00:00:08,500 --> 00:00:12,000
Let's start with the first one:
content consistency.

The filename rule, which is the whole game

Meta's Graph API reference for the video captions edge states that the upload takes a "Caption file in SRT (SubRip Text) format. File name must be in the format filename.locale.srt". Meta's help centre article on the SubRip naming convention gives the same rule in plain language: filename.[language code]_[country code].srt, with the language code in lower case and the country code in upper case, both case sensitive, and gives filename.en_US.srt as the American English example.

So:

File nameResult
promo.srtRejected, no locale
promo.en.srtRejected, no country code
promo.en_us.srtRejected, country code must be upper case
promo.EN_US.srtRejected, language code must be lower case
promo.en_US.srtAccepted, American English
promo.en_GB.srtAccepted, British English

The base name in front of the locale is yours to choose. It does not have to match the video file name.

How to upload it

  1. Open the video post and choose to edit it
  2. Find the captions or subtitles section
  3. Choose the option to upload your own file
  4. Select your correctly named .srt
  5. Save, then confirm the caption track is listed on the post

More than one language

Upload one correctly named file per language and Facebook keeps them as separate caption tracks, so promo.en_US.srt and promo.es_ES.srt can sit on the same video. Viewers get the track that matches their language preference. Meta's API exposes a default_locale parameter to pick which track is used by default and a locales_to_delete parameter to remove tracks, which tells you these really are independent tracks rather than one file being overwritten each time.

Why your SRT upload was rejected

This is the part nobody publishes. Meta's Graph API captions reference lists the exact errors the caption endpoint returns, and the same validation sits behind the web uploader even when the wording you see is friendlier.

CodeMeta's messageWhat it actually means
386"You uploaded a .SRT file with an incorrect file name. Please use this format: filename.en_US.srt"The locale is missing or wrongly cased. This is the number one cause.
385"The captions file you selected is in a format that we don't support."Not an SRT file, or it was saved as .txt, or a text editor appended a second extension
482"The captions files you selected contain locales that had been applied to video, please remove and try again."A track for that locale already exists. Delete the existing one first, or upload a different locale.
387"There was a problem uploading your captions file. Please try again."The generic failure. Check the file contents, then retry.

Work through it in this order:

  1. Check the file name character by character. video.en_US.srt. Lower case language, upper case country, one dot before srt.
  2. Check the real extension, not what Windows or macOS shows you. Turn on file extensions first. A file that displays as video.en_US.srt is very often video.en_US.srt.txt.
  3. Check for a duplicate locale already on the video. Delete the old track before uploading a replacement.
  4. Save as plain text in UTF-8. Word processor output, smart quotes and byte order mark oddities are a common source of the generic error, and non-English characters render as boxes without UTF-8.
  5. Check the timestamp format. SRT uses HH:MM:SS,mmm with a comma before the milliseconds, and an arrow between start and end time. Swapping the comma for a full stop breaks the whole file.
  6. Check for a stray blank line or a missing sequence number. Every block needs its number, its timestamp line, its text, then one empty line.

Adding captions after publishing

Yes, and this is the question most people actually arrive with. Meta's help article on adding captions to a video describes exactly this flow: upload the video, then once it is published, find the video, open its options menu, choose to edit the post, and add the caption file. The same article covers removing a caption file by deleting it from the list, and adding further languages by repeating the process.

Two things worth knowing:

  • Editing captions does not re-upload or re-process the video, so the post keeps its existing likes, comments, shares and permalink.
  • Captions added later apply to everyone who watches from that point, including people who already watched it once.

On a Page, Meta Business Suite's content list lets you open a published video and reach the same caption controls without hunting through the Page timeline. If you plan video posts in advance, that is the same editor where scheduling lives, covered in our Facebook post scheduler guide.

Where captions live on each Facebook surface

Uploaded feed video

The full system: auto-generate, upload SRT or type them in, one track per language, toggleable by the viewer, editable after publishing. Everything above applies here.

Reels

Reels are made in the Reels creation flow, and the practical answer is to put the captions in the picture: use the captions sticker in the Facebook app's Reels editor, or burn captions into the clip in your video editor before you upload. Treat the sticker as something to look for in your own app version rather than a guaranteed feature, since Meta ships Reels creation changes often and documents them thinly. Either way, decide before you post, because burned-in text cannot be retrofitted.

Live

Live captions have to arrive while the broadcast is running, which means they come from your encoder or a real time captioning vendor rather than from a file you upload afterwards. Facebook has supported captions embedded in the live stream for publishers since 2017 and works with third party captioning services for it, but Meta's current Live Video API getting-started documentation does not mention captions at all, so confirm support with your encoder or vendor rather than assuming it. Once the broadcast ends, the recording behaves like an ordinary video, so you can add a proper caption track to the replay using either method above.

Stories

Stories are short, vertical and disposable, and there is no caption track to upload. Burn the text into the clip before you post it. Our Facebook Stories guide covers what the format does and does not support.

Writing captions that read well

Meta does not publish a characters-per-line limit, a maximum caption duration or a required accuracy level for Facebook video captions. The figures repeated across caption blog posts (two lines, roughly forty characters each, a second or two on screen) come from broadcast subtitling convention, not from anything Facebook enforces. Treat them as craft guidance and judge the result on a phone screen instead of against a number:

  • Two lines maximum per caption, because a third line eats the picture
  • Break lines at natural phrase boundaries, not wherever the character count runs out
  • Leave the caption up long enough to finish reading after the speaker stops
  • Label speakers when more than one person talks
  • Put non-speech audio in brackets: [applause], [phone rings], [upbeat music]
  • Punctuate properly, since punctuation is what makes a caption scannable at speed

If you also need to write the post text that sits above the video, that is a different job with real limits attached: see Facebook ad character limits for paid placements and our Facebook caption ideas guide for organic post copy.

Closed captions or burned-in text

Closed captions are a separate track the viewer can switch off, and they can be corrected later. Burned-in (open) captions are permanently part of the image, always visible, and cannot be fixed without re-exporting the video. Use closed captions on uploaded video, and burned-in text where there is no caption track available, which in practice means Reels and Stories.

Why viewers do not see your captions

Captions being present on your video and captions being visible to a given viewer are two different things.

  • Not every video has them. Meta's help article on turning captions on says plainly that not all videos on Facebook have captions available, so nothing appears if no track exists.
  • On a computer, the viewer controls this with an "Always Show Captions" toggle in their video settings.
  • On iOS, it follows the device's "Closed Captions + SDH" accessibility setting rather than a Facebook setting.
  • You cannot force captions on for every viewer. If it matters that the text is seen, burn it into the video.

Then check your own side: that you saved after editing, that the video finished processing before you looked, and that the caption track is actually listed on the post.

Caption tools worth using

You do not need paid software to produce a clean SRT.

  • YouTube Studio as a transcription engine: upload the video unlisted, let it caption, correct the transcript, download the .srt, then rename it to the Facebook locale format
  • Subtitle Edit, a free desktop editor, for timing adjustments and format conversion
  • Kapwing for browser-based subtitling (pricing here)
  • Descript and Rev for human-grade transcripts when accuracy is non-negotiable

Whatever you use, the last step is the same: rename the file to something.en_US.srt before you upload it.

Frequently Asked Questions

Can I add captions to a Facebook video after I have already posted it?

Yes. Meta's help article on adding captions describes doing exactly this: publish the video, find it, open the options menu on the post, choose to edit it, and add your caption file. Editing captions does not re-upload the video, so the post keeps its existing engagement and permalink.

Why does Facebook keep rejecting my SRT file?

Almost always the file name. Meta's API documentation says the name must be in the format filename.locale.srt and returns a dedicated error telling you to use filename.en_US.srt. The language code must be lower case and the country code upper case. After that, check that the real extension is .srt and not .srt.txt, that no caption track already exists for that same locale, that the file is saved as plain text in UTF-8, and that timestamps use a comma before the milliseconds.

Does Facebook accept VTT or SBV caption files?

For uploads, Meta's Graph API reference specifies an SRT (SubRip Text) file, and returns an error saying the format is not supported for anything else. Convert a .vtt or .sbv file to .srt in a free subtitle editor first, then rename it to the locale format.

Does Facebook add captions to every video automatically?

No. Automatic captioning is something you turn on for a given video, not a default, and it is not offered on every surface. Meta's help article for adding captions to a video on a personal profile describes only the SRT upload path, with no auto-generate option. If you cannot find a generate button, upload an SRT file instead.

How do I add captions to a Facebook Reel?

Put the text in the picture rather than in a caption track. Use the captions sticker in the Facebook app's Reels editor if your version has it, or burn captions into the clip in your video editor before uploading. Decide before you post, because burned-in text cannot be added afterwards.

Can I upload captions in more than one language for the same video?

Yes. Upload one correctly named file per language, for example promo.en_US.srt and promo.es_ES.srt, and Facebook stores them as separate tracks. Viewers see the track matching their language preference, and Meta's API exposes a default_locale parameter that controls which track is used by default.

Why can viewers not see the captions on my video?

Captions existing and captions displaying are different things. On a computer the viewer controls an "Always Show Captions" toggle in their video settings, and on iOS it follows the device's "Closed Captions + SDH" accessibility setting. Meta also states that not all videos on Facebook have captions available. You cannot force captions on for everyone, so if the text must be seen, burn it into the video.

Was this article helpful?

Let us know what you think!

#SocialMedia#ContentStrategy#DigitalMarketing

📚 Continue Learning

More articles to boost your social media expertise

Facebook⭐ Popular

Can't Add Admin to Facebook Business Page? 2026 Fix

Trying to add an admin to your Facebook Business Page and it won't work? Here is the current 2026 Page access path, plus the real reasons Facebook blocks you: the 7 day cooling-off, the last-admin lock, pending invites and business portfolios.

Matt
Matt
1/12/2025
Read