The short answer
Open the video in your Vimeo library, open Languages, and upload an SRT or WebVTT file. Then turn the file on. Vimeo shows it in the CC menu of the player.
Vimeo can also make captions for you. It writes them when you upload a video, in the languages listed below, and it can translate them with Vimeo AI. For one video in one supported language, those automatic captions can be enough. Read them once, fix the names and terms, and you are done. You do not need another tool for that.
You need a subtitle file of your own when the language is not on Vimeo's list, when a translator or client must approve the text, or when you want the same files for other platforms.
Upload a subtitle file in the Vimeo dashboard
Menu path, checked 2026.10.13: Library › your video › Languages › +
- Save the subtitles as an SRT or WebVTT file in UTF-8. Vimeo recommends WebVTT.
- Open your
Libraryand select the video. - Click the
Languagesbutton in the toolbar to the left of the player. - Click the
+button at the top of the Languages window. - Choose the file on your computer.
- Set the language. Set the type to
SubtitleorCaption. - Click
Upload. - Turn the new file on with its toggle.
Some older guides send you to Advanced › Distribution. Vimeo's current help article uses Languages.
Subtitle or caption
Choose Subtitle for the spoken words. Choose Caption when the file also describes sounds and action. Vimeo's API guide uses the same two definitions. Vimeo does not use the term SDH on the pages we read. A file with sound descriptions belongs under Caption. For the rules of SDH, read the SDH guidelines.
Fix an upload error
- Unexpected Text Track Upload Type. The file is not SRT or WebVTT. Export it again in one of those formats.
- Invalid Caption File. The file has a format error. Check that each time range is on one line, that no end time comes before its start time, and that no subtitle starts at or before the previous one ends. A WebVTT file must start with
WEBVTT. The SRT validator finds these errors. - Please activate only one text track of a language and type. Turn off the other file for that language first. Vimeo does not let your own file and its automatic captions run together.
- Same file name. Each file name on a video must be unique. Rename the file, or replace the old one.
For the differences between the two formats, read Subtitle formats explained. To change SRT to WebVTT, use the SRT to VTT converter.
Vimeo automatic captions
Vimeo writes captions for videos that you upload. Vimeo's help center says that Free and paid accounts get automatic captions. Vimeo gives no separate price for it. Checked 2026.10.13.
- Vimeo lists 99 languages, from Afrikaans to Zulu, in its FAQ on automatic captions. For any other language, upload a file.
- The video must be 8 hours long or less. Videos that you uploaded before 2022.05.25 need a new upload.
- The captions are on by default. In the player they carry the label "Autogenerated".
- Captions can fail when the first 30 seconds are silent, when music or noise is louder than the voice, or when the language is not supported.
Turn automatic captions off
For new uploads, go to Upload defaults in your account settings. Clear the box Allow viewers to enable automatically generated captions and click Save. For one video, open Languages and use the toggle under the language.
Edit automatic captions
Menu path: Languages › ⋮ › Edit. Click the line you want to change and type the new text. To change a time, click the start or end time of a subtitle and enter the new value. You change one subtitle at a time. Vimeo has no bulk edit for times.
Translate with Vimeo AI
- Open the video in your
Libraryand go to its settings. - Click the
Vimeo AIicon in the left toolbar. - Click
Translate Video. ChooseSubtitles Onlyand clickContinue. - Select the languages. Vimeo shows the cost.
- Click
Finish and Save.
Vimeo AI translates subtitles from and into 99 languages. The cost is 10 credits per minute of video, for each language. A 5-minute video in 2 languages costs 100 credits. Vimeo advises you to review the result. The translated tracks appear in the Languages list, and you can edit them there.
The help articles do not agree on the plan for translation. One says that free and paid creators can use it. Another says that paid account owners, and some Enterprise teams, can use it after the team owner turns it on. Check the translate button in your own account.
Upload subtitles with the Vimeo API
The API takes WebVTT only. Convert SRT files first. You need an access token with the upload and edit scopes. Send the header Accept: application/vnd.vimeo.*+json;version=3.4 with every request. Source: Working with Text Track Uploads, checked 2026.10.13.
- Send
GET /videos/{video_id}. Read the track address inmetadata.connections.texttracks.uri. - Send
POSTto that address with a JSON body that holdstype(subtitlesorcaptions) andlanguage. Thenamefield is optional. To get the valid language codes, sendGET /languages?filter=texttracks. The answer is201 Createdand alinkfield. - Send
PUTto thatlink. Put the WebVTT text in the body. The answer is200. - Send
PATCHto the track address with the body{"active": true}. The player shows the track only when it is active.
A 400 Invalid Caption File means that the API does not know the file format. A 403 means that the upload link is wrong or has expired. Create the track again to get a new link. You cannot add chapters through the API.
Many languages and the player menu
One video can have many tracks, for example English, Spanish, and Korean. Upload one file for each language. Each track has its own toggle in Languages.
- Only one track can be active for each language and type. A second English subtitle track stays off until you turn the first one off.
- Viewers click the
CCbutton in the player and choose a track from the menu. A language that is not in the menu has no track on that video. - To start the video with one language on, add
texttrack=frto the player address in your embed code. Use the lowercase language code. For Vimeo's automatic English captions, usetexttrack=en-x-autogen. This works in embeds only. It does not work on the vimeo.com page.
Where Vimeo's own ways stop
These are the limits that matter when the work is more than one file. Each one comes from Vimeo's pages, checked 2026.10.13.
| You need | What Vimeo offers | The limit |
|---|---|---|
| Many languages that people have checked | Vimeo AI translation, or Rev through the Languages tab | The help pages describe no way to give a language to a translator, to ask for changes, or or to record who signed off. A track stays off until you turn its toggle on. Vimeo advises you to review AI translations. |
| A change in the source after you translated | Edit each language | Edits to the source do not reach the translations. A new edit of the video needs a new translation, and that costs credits again. |
| Timing fixes | The transcript editor in Languages | You change one subtitle at a time, and only on video on demand, not live events. |
| A language Vimeo cannot caption | Upload a file | You must make the file somewhere else. |
| API upload | WebVTT | No SRT, and no other format. |
The pages we read name no limit for file size and no limit for the number of tracks. The pages we read name no plan for text tracks in the API. Vimeo's Upload access article says that paid plans get API upload access and that free accounts must ask for it. It does not say whether that covers text tracks. If a limit matters for your project, ask Vimeo support.
Add Vimeo subtitles with CaptionsHero
CaptionsHero does not connect to Vimeo. You make the subtitles in CaptionsHero, download the files, and upload them to Vimeo yourself. This route fits when you ship many languages, when translators and reviewers work on the text, or when a client signs off before you publish.
- Upload the video to CaptionsHero.
- Make the subtitles. Let the AI write a first draft, import an SRT or VTT file, or type them yourself. Add other languages with AI translation (82 languages), or import files from your translators.
- Fix the text and the timing in the editor. Its checks are Netflix-style. Read the subtitle QC guide for what they test.
- On the Team and Studio plans, assign an editor and a reviewer for each language. Reviewers comment on exact lines and can request changes.
- On Team and Studio, approve each language when the review is done.
- Download each language as WebVTT. Use the approved version if you have one. Download SRT if you want it for other places.
- Upload each file to Vimeo with the steps in the dashboard section, or with the API.
When you change the subtitles later, download the file again and replace the old file in the ⋮ menu of the track.
The same guide for other platforms: Wistia, Mux, Bunny Stream. For Cloudflare Stream, CaptionsHero has an integration.
Details: plans, limits, and formats
| What you do | Plan | Format |
|---|---|---|
| AI draft, AI translation, import, or write by hand | All plans, including Solo (free) | Import SRT and VTT |
| Export the working copy or the approved version | All plans | SRT and VTT |
| Assign an editor and a reviewer, review comments, approve | Team ($149 a month) and Studio ($399 a month) | SRT and VTT |
Solo is free, and Solo Pro is $29 a month. The price is flat for each organization. There is no sales call. CaptionsHero reads and writes SRT and VTT only.
Before you upload, run the file through the SRT validator. To change formats, use the SRT to VTT converter. Both run in your browser and do not upload the file.