Captionwright Pro

Captions, transcripts & translations for WordPress · version 1.0.2

1. Install

  1. In WordPress, go to Plugins → Add New → Upload Plugin and upload captionwright-pro-1.0.2.zip.
  2. Click Activate. If the free Captionwright plugin is installed, Pro replaces it automatically and keeps all your captions.
  3. Open Media → Captions.

Requirements: WordPress 6.5 or later, PHP 7.4 or later. To create captions in the browser you need a current Chrome, Edge or Firefox (Safari 17+ should work but is not yet tested by us). Visitors can watch the captions in any browser.

2. Licence key and updates

Bought on WPBay or another marketplace: no key needed

If you bought Captionwright Pro on WPBay, or on Pluggable, PlugNest, CodeGrape, itch.io or Payhip, you have the marketplace build. It needs no licence key: there is nothing to enter, and every Pro feature is active as soon as you activate the plugin. This build never contacts a licence server.

Updates: the marketplace build does not check for updates by itself. When we release a new version, the marketplace makes the new zip available in your account:

To install the update, go to Plugins → Add New → Upload Plugin, choose the new zip and click Replace current with uploaded. Your captions, transcripts and settings are kept, because updating does not run the uninstall clean-up described in section 13.

Bought on Gumroad: enter your licence key

Open Media → Captions → Pro settings, paste the licence key from your Gumroad receipt (it is also in your Gumroad Library) and click Activate. A 1-site licence can be activated twice, so you can move to a new site or reinstall without asking us. The 10-site licence works the same way for ten sites. New versions are added to your Gumroad Library; install them the same way as above.

For Gumroad licences: your captions, transcripts and the free features keep working if a licence ends. The queue, cloud transcription, translations and video-link transcripts need an active licence. Marketplace copies have no expiry.

3. Your first captions

  1. On Media → Captions, open Settings and tick Allow model download, then save. The speech model is downloaded once from Hugging Face into your browser's cache.
  2. Click Generate next to a video or audio file.
  3. Choose the spoken language, the output (captions in that language, or an English translation) and the model. Base is a good start; Small is more accurate; Large v3 Turbo is the most accurate and needs a graphics card.
  4. Click Start and keep the tab open. With a graphics card, a 90-second video took about 8 seconds in our tests once the model was downloaded.
The Captions screen with the file list and the queue
Media → Captions: every video and audio file with its caption languages.

4. Check and edit

When listening is done, the captions open next to a preview of your video with the captions on. Fix names and terms directly in the text; keep the time lines (00:00:01.000 --> 00:00:04.000) as they are. Choose the language and the name viewers see in the player, then click Save captions. Download .vtt gives you the standard WebVTT file.

Caption editor with live preview
Edit next to a live preview before saving.

No automatic captions are perfect. For accessibility compliance captions must be accurate – always read them through.

5. Show captions and transcripts

Video with captions and interactive transcript
Captions in the video and the interactive transcript below it.

6. Caption the whole library

In Queue: caption many files, choose the engine, language and model, then click Caption every file without captions – or tick files in the list and click Caption selected files. Files that already have captions in that language are skipped. Captions are saved automatically; you can review them later with Edit. Stop after this file pauses the queue, and Resume continues it, even after reloading the page.

If a file fails (for example, the browser cannot read its sound, or the cloud service is unreachable), the queue moves on to the next file and keeps the failed one in a list below the progress bar, with the reason. The file is also marked Queue failed in the media list. The list survives a page reload. Click Retry failed files to process only those files again; files that were captioned successfully are never processed again, and a failed file that has since got captions in that language is skipped.

7. Cloud transcription (your API key)

Cloud mode sends the audio from your server to a speech service and is much faster than the browser, on any computer. You pay the service directly.

ServiceWhat to enterTypical cost
Groq (recommended)Create a key at console.groq.com/keys. Model: whisper-large-v3-turbo.About $0.04 per hour of audio
OpenAIKey from platform.openai.com/api-keys. Model: whisper-1 (the newer gpt-4o transcribe models do not return timestamps).See OpenAI pricing
OtherAny OpenAI-compatible service that returns verbose_json segments: enter its base URL ending in /v1.–

Long files are split at quiet moments into parts small enough for your server's upload limit. The key is stored on your server and never sent to the browser. Choose Default engine to decide what Generate and the queue use first.

Pro settings
Pro settings: licence, cloud transcription and translation.

8. Translate captions

Click Translate next to a caption language, tick the languages you want and click Translate. Each language becomes its own caption track that viewers can choose in the player; timings stay identical.

Translation uses the AI service set up in Settings → Connectors (WordPress 7.0+). Without it, add an API key in Pro settings, click Load models and choose a chat model for translation.

Translate dialog
Translate into any of 30 languages.

9. YouTube and Vimeo

Captionwright does not download video from YouTube or Vimeo. Instead you import the caption file you own:

  1. YouTube Studio → Subtitles → ⋮ → Download (.srt or .vtt). Vimeo → video settings → Distribution → Subtitles.
  2. On Media → Captions, under YouTube and Vimeo transcripts, paste the video link, choose the file and the language, and click Add transcript.
  3. Embed the same video in a post. With Add a transcript below every captioned video block on, the transcript appears below it; or use the Transcript block. Clicking a line jumps the video there.
Transcript under a YouTube video
An interactive transcript under a YouTube video.

10. Settings reference

SettingWhat it does
Allow model downloadRequired once for in-browser speech recognition (downloads the model from Hugging Face).
Default modelTiny, Base, Small or Large v3 Turbo. Larger is more accurate and slower.
Use the processor onlySkip the graphics card. Captionwright already switches automatically if the graphics card fails.
Default languagePre-selected spoken language.
Show captions by defaultTurns captions on when the video starts.
Add a transcript below every captioned video blockAdds the transcript automatically, also under YouTube/Vimeo embeds with transcripts.

11. Troubleshooting

Message or problemSolution
"This browser could not read the sound in this file"Use Chrome, Edge or Firefox, or upload an MP4 (H.264/AAC), WebM or MP3 version. Cloud mode has the same requirement because the audio is prepared in the browser.
"The file could not be downloaded from the Media Library"Your media is on another domain (CDN or cloud storage). Allow cross-origin requests (CORS) from your site on that storage.
Slow on the processorUse Chrome or Edge on a computer with a graphics card, choose a smaller model, or use cloud mode.
"The service rejected the API key"Check the key in Pro settings. Paste a new key; leaving the field empty keeps the saved one.
"did not return timestamps"Use a Whisper model: whisper-large-v3-turbo on Groq or whisper-1 on OpenAI.
Captions do not show in the videoThe video must use the core Video block or the [video] shortcode with a file from the Media Library. Clear page caches after saving captions.
"This key has already been activated the allowed number of times"Contact us through the store where you bought Pro and we will reset it.

12. Privacy and external services

13. Deactivating, deleting and your caption files

Want to keep your captions before deleting the plugin? Click Download .vtt in the caption editor for each file, or copy the folder wp-content/uploads/captionwright/ from your server (one .vtt file per media file and language). They are standard WebVTT files that any player or caption tool can use.

Upgrading from Pro 1.0.0 or 1.0.1? Those versions saved caption files in wp-content/uploads/captionwright-pro/ instead. Version 1.0.2 moves them automatically to wp-content/uploads/captionwright/ the first time the site loads after the update, so the free plugin and Pro use the same files. If a file cannot be moved (for example, because of folder permissions), the old folder is kept and the move is tried again on the next page load. Deleting the plugin removes both folders.

Support

Contact us through the store where you bought Captionwright Pro: on WPBay, open a ticket from your account (WPBay's support system); on Pluggable, PlugNest, CodeGrape or itch.io, message us there; for Gumroad and Payhip, reply to your receipt.

Captionwright is made by Karelia Labs. Licensed under the GPL v2 or later.