Vimeo logo Vimeo automation · runs weekly

Add captions to Vimeo videos in bulk

You finished a batch of training videos and the caption files are ready. Vimeo takes them one video at a time, so someone opens each video, picks a language and a type, and uploads.

Cotlet does it in your own Vimeo account with search_videos, get_video and upload_captions, called by your AI agent, an n8n workflow or a script.

Hosted · nothing to install or maintain

Can Vimeo do this on its own?

Vimeo has no bulk caption upload in the app. The API can upload a text track, but it takes three calls per track (create the track, upload the file, set it active) and a token with the upload and edit scopes (checked 17 Oct 2026). Paid plans also get automatic captions for videos uploaded after 25 May 2022, which are machine transcripts, not your own files.

How you do it in Vimeo today

  1. Open Library and click the video.
  2. Click the Languages button in the toolbar to the left of the player.
  3. Click the + button at the top of the languages window.
  4. Upload the file from your computer.
  5. Use the dropdown menus next to the file name to choose the Language and the Type, Subtitle or Caption.
  6. Click Upload. Then repeat for the next video and the next language.

How to add captions to Vimeo videos in bulk

Prompt

Find videos in my Vimeo library that have no captions. For each one, upload the WebVTT file with the same name from my captions folder as English captions. List the videos with no matching file.
  1. 01

    Find videos without captions

    search_videos pages through the library, and get_video shows whether each video already has a text track in your language. A video that has one is skipped, so a rerun never doubles a track.

  2. 02

    Match files to videos

    The agent pairs each video with the caption file that carries its title or ID. A video with no matching file is reported at the end, not guessed.

  3. 03

    Check the file

    Before upload the agent checks the format. A WebVTT file must start with WEBVTT, an SRT file must start with the first cue number, and both must be UTF-8. A file that fails is reported with the reason.

  4. 04

    Upload with language and type

    upload_captions sets the Language and the Type for each file, Caption or Subtitle, the same two choices as the dropdowns in the Languages window. Every call asks for your OK until you switch confirmation off for upload_captions.

  5. 05

    Report the rest

    The agent lists what it uploaded, what it skipped because a track existed, and what had no file.

What you get back

Example data

Videos checked: 12
Captions uploaded (English): 9
- Onboarding 01 to Onboarding 07
- Pricing walkthrough
- Security overview
Skipped, track already there: 1 (Welcome video)
No file found: 2
- Admin training part 1
- Admin training part 2

Other ways to ask

  • Upload the Spanish subtitles for the same videos, type Subtitle, and change nothing else.
  • Every Friday, list videos uploaded this week that still have no captions and tell me.
  • Check my caption files for format errors and upload nothing.

What Vimeo allows, and what to know first

  • Vimeo accepts SRT and WebVTT caption files and recommends WebVTT.
  • Caption files must be UTF-8 for special characters to display correctly.
  • A WebVTT file must start with WEBVTT and use timecodes like 00:00:00.000. An SRT file uses a comma in the timecode, 00:00:00,000.
  • The "Unexpected Text Track Upload Type" error means the file is not SRT or WebVTT.
  • Every Vimeo plan has captions, but some options depend on the plan. Vimeo also sells captions through Rev from the same Languages tab.

upload_captions asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.

Sources: Vimeo Help: How to add captions or subtitles to my video · Vimeo Help: Troubleshooting caption file types · Vimeo developers: Working with Text Track Uploads

Call upload_captions from a script

curl

curl -X POST https://cotlet.dev/api/v1/vimeo/videos/912345601/captions \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"language":"en","type":"caption","content":"WEBVTT\n\n00:00:00.000 --> 00:00:03.500\nWelcome to the onboarding series.\n"}'

Example response

{
  "video_id": "912345601",
  "language": "en",
  "type": "caption",
  "format": "webvtt",
  "active": true
}

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is vimeo_write → upload_captions. Example data.

Schedule it in n8n, Make, Zapier or cron

Vimeo tools this automation uses

Cotlet Vimeo tools used to add captions to Vimeo videos in bulk
Tool Parameters
search_videos query, tag, folder_id, cursor
get_video video_id
upload_captions video_id, language, type, content
All 13 Vimeo tools with descriptions

Frequently asked questions

Is it safe to connect Vimeo to Cotlet?

Yes. You sign in to Vimeo yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Vimeo once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

Give your agent access to Vimeo.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Vimeo.