How to add subtitles to Wistia videos

Upload an SRT file on the media page, make free automatic captions, or send a file with the Captions API. Use more than one file for more than one language.

Facts checked on 2026.10.13. Sources

Upload a caption file in the Wistia dashboard

Wistia calls subtitles captions. You add them from the transcript section of the media page. The steps below are from Wistia's help center on 2026.10.13.

  1. Open the video in Wistia. This is the media page.
  2. Find the transcript section below the player and open its ellipsis menu.
  3. Select Upload.
  4. Drag your file into the window, or click Select files.
  5. Wait for Wistia to check the file. It finds the language by itself and shows any format errors.
  6. Click Save.

Menu path on 2026.10.13: Media page › Transcript › ellipsis menu › Upload › Save. If a name differs, look in the same transcript menu.

  • Wistia accepts .srt and .vtt files. It converts a VTT file to SRT when you upload it, so VTT styles and positions are lost. Upload SRT to keep control of what the file holds. See subtitle formats.
  • You can upload as many caption files as you want, one for each language.
  • After the upload, check the language that Wistia found. Wistia sets it by itself.

Automatic captions and translation in Wistia

Every current Wistia plan includes free computer-generated captions. Click Generate transcript on the media page and choose the language. Wistia says the accuracy is 95 percent and that the captions arrive in a few minutes. Wistia's help page does not list the languages that automatic captions support.

You can also turn on automatic ordering in Account Settings. It works for videos you upload later, not for videos that are already there.

TypePriceAccuracyTime
AutomatedFree95%A few minutes
Professional (human)$2.50 per minute99%4 business days
Professional rush$4.00 per minute99%1 business day

Wistia lists these prices on 2026.10.13.

Translate the transcript

  1. Make a transcript in the original language first. Wistia needs it as the source.
  2. Open the language dropdown in the transcript section and choose Manage localizations.
  3. Choose Text translation only.
  4. Pick a language.
  5. Click Create text translation.

The help page does not name the languages or the plans for text translation. Wistia's localization page says it supports more than 50 languages. It charges $2 per minute per language after 15 free minutes, and that page speaks about dubbing and transcription. The page does not say if the same price applies to text translation only. In the API, a request can return 403 when the account has no access to the feature, and 422 when Credits are too low. Ask Wistia what text translation costs on your plan before you plan a large job.

Upload captions with the Wistia API

The Captions API adds a caption file to a media. Send a POST request with the media's hashed ID. The hashed ID is the code after /medias/ in the media's URL.

upload-captions.sh
curl -X POST "https://api.wistia.com/modern/medias/HASHED_ID/captions" \  -H "Authorization: Bearer YOUR_API_TOKEN" \  -H "X-Wistia-API-Version: 2026-09" \  -F "language=spa" \  -F "caption_file=@spanish.srt"
  • caption_file is required. It must be an SRT file. Send it as a file in a multipart request, or as the file text in a JSON request. The API does not list VTT for this call.
  • language is optional. Use a three-letter ISO 639-2 code. Without it, Wistia finds the language.
  • The call returns 400 when the media already has captions. To replace the captions of one language, send a PUT request to /medias/HASHED_ID/captions/LANGUAGE_CODE.
  • Use an API token with the Read, update & delete anything permission. The account owner makes tokens in the API tab of Account Settings.
  • The API can also list, download, delete, and edit captions, and ask for a translation with POST /medias/HASHED_ID/translate.

We did not find which Wistia plans include API access. Check your plan in Wistia.

More than one language on one video

One Wistia video can have many caption files. Upload one file for each language, or make translations with Manage localizations.

  • Viewers choose a language from the captions icon on the play bar.
  • Wistia first picks the language of the viewer's browser. If the video has no caption in that language, it shows English.
  • When a viewer chooses a language, Wistia remembers it for that domain. It does not carry over to other browsers or devices.
  • The player's own controls, such as Chapters and Wistia Forms, follow the caption language when Wistia has a translation. If it does not, they stay in English.

Download the files

Open the ellipsis menu next to Embed, go to the Transcript tab, and pick a language and a format: SRT, VTT, or TXT. Wistia downloads one language at a time.

Edit captions and set the default

  • Fix text. Click Edit in the transcript section, change the text, and click Save. The captions change with the transcript. Captions already burned into a video file do not change.
  • Fix timing. Open the ellipsis menu and choose Correct captions timing. If the video has more than one language, pick one first.
  • Replace a file. Upload a new file in the dashboard, or use the PUT request. The help page does not say what the dashboard does when a file for that language exists, so look at the language list after the upload.
  • Show captions by default. Click Customize, open the Controls tab, and choose the default. When captions are off by default, viewers turn them on with the CC button.

Wistia's help page names only captions. We found no setting for SDH or for a separate subtitles label. If you need SDH, write the sound cues in the file.

When Wistia's own captions are enough

For one language, the free automatic captions are often enough. Generate them, read the transcript once, fix the errors, and publish. You do not need another tool. If the audio is clear and a small error is not a problem, stop here.

Wistia's tools stop being enough in these cases:

  • A person must check the text. Wistia's help page describes a transcript editor. It lists no way to assign a language to a translator, to comment on a line, or to approve a file before it goes live.
  • You need many languages. Machine translation is fast, but a translator must check names, jokes, and terms. Wistia does not list the languages or the price for text translation.
  • You must follow a style guide. Wistia's help page lists no check for reading speed or line length. The subtitle QC guide lists the checks you can run.
  • You work outside Wistia. The same files are useful on other platforms. Keep the SRT files in your own storage.

We found no limit on caption file size or on the number of caption files in Wistia's help center or API reference. Ask Wistia if your files are very large.

Make the subtitles in CaptionsHero, then upload to Wistia

CaptionsHero has no Wistia integration. You make and approve the files in CaptionsHero, then upload them to Wistia yourself with the steps above.

  1. Create a project and upload the video.
  2. Make the subtitles. Let the AI write a draft, import an SRT or VTT file, or write them by hand. Add each language with AI translation or import a translator's file.
  3. Assign an editor and a reviewer for each language (Team and Studio plans). The reviewer leaves comments on exact lines and asks for changes.
  4. Fix the QC warnings in the editor, then approve the track.
  5. Download the approved version of each language as SRT. Use SRT, not VTT, because Wistia converts VTT to SRT and the Captions API takes SRT.
  6. Upload each file to Wistia: Transcript › ellipsis menu › Upload, or the Captions API.

Run the file through the free SRT validator before you upload. It works in your browser and does not upload the file.

Details

PlanPriceWhat it adds for this job
SoloFreeUpload video, AI transcription and translation (82 languages), import, write, export SRT and VTT.
Solo Pro$29 per monthFor one person. See pricing for limits.
Team$149 per month, 8 seatsEditor and reviewer for each language, line comments, change requests, approval, email notifications.
Studio$399 per month, 20 seatsEverything in Team, plus the REST API and the Cloudflare Stream and YouTube integrations.

The price is flat for each organization. CaptionsHero reads and writes SRT and VTT only. For Cloudflare Stream, see the Cloudflare Stream integration. Other platforms: Vimeo, Mux, and Bunny Stream.

Common questions

Does Wistia add captions automatically?

Only when you ask. Click Generate transcript on the media page, or turn on automatic ordering in Account Settings so new uploads get captions. All current plans can do this at no cost.

What file format does Wistia use for captions?

SRT. The dashboard also takes VTT but turns it into SRT, and the Captions API reads SRT only. Save the file as plain text before you upload it.

Can I add subtitles in more than one language to a Wistia video?

Yes. Upload one file per language or create text translations. Viewers pick a language from the captions icon, and Wistia starts with the language of their browser.

Do Wistia captions cost money?

Automatic captions are free. Human-made captions cost $2.50 per minute, or $4.00 per minute for the rush order. Uploading your own file has no listed charge. Wistia does not state a price for text translation on its help page.

Why does my Wistia caption file show an error?

Wistia checks the file when you upload it and shows what is wrong. Wistia does not name an encoding. As general advice, run the file through an SRT validator, save it as UTF-8 text, and upload it again.

Can I turn captions on for all viewers of a Wistia video?

Yes. Set captions to on by default in the Controls tab of Customize. Then they show for all viewers when the video loads.

Subtitles for Wistia in every language

Draft with AI, review with your translators, approve, and download SRT files for Wistia.

Free forever plan. No card required. No sales call.

  • Every language gets a translator and a reviewer
  • Feedback on the exact line, not in an email thread
  • Only the approved version ships
  • See who's holding up which language
  • AI drafts in 82 languages, or bring your SRT
  • Private, in the browser, nothing to install

Sources