Describewright Pro

AI audio description for WordPress video · version 1.0.11

1. Install

  1. In WordPress, go to Plugins → Add New → Upload Plugin and upload the plugin zip as it is (do not unpack it): describewright-pro-1.0.11-marketplace.zip from WPBay, Pluggable, PlugNest or CodeGrape, or describewright-pro-1.0.11.zip from Gumroad. From itch.io or Payhip you get describewright-pro-1.0.11-package.zip: unpack that one first, and upload the describewright-pro-1.0.11.zip inside it.
  2. Click Activate. If the free Describewright plugin is installed, Pro takes over automatically and keeps all your descriptions and settings.
  3. Open Media → Audio description.

Requirements: WordPress 6.5 or later and PHP 7.4 or later. To create descriptions you need a current Chrome, Edge or Firefox, because the video is read in your browser. Visitors can use the Audio description button in any browser.

2. Licence key and updates

Bought on a marketplace: no key needed

If you bought Describewright Pro on WPBay, Pluggable, PlugNest, CodeGrape, itch.io or Payhip, you have the marketplace build. It needs no licence key: every Pro feature is active as soon as you activate the plugin, and it 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 (on WPBay under My Account → My Downloads; on Payhip through the link in your receipt). To install it, go to Plugins → Add New → Upload Plugin, choose the new zip and click Replace current with uploaded. Your descriptions and settings are kept.

Bought on Gumroad: enter your licence key

Open Media → Audio description, scroll to Describewright Pro licence, paste the 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 a 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.

For Gumroad licences: if a licence ends, your saved descriptions, the Audio description button, the transcripts and the free features keep working. The queue, extended description and translation need an active licence. Marketplace copies have no expiry.

3. Choose an AI service

Describewright needs an AI model that can look at images. You pay that service directly for what you use; there is no per-minute fee from us. Open Settings at the bottom of Media → Audio description:

ServiceWhat to do
WordPress AIOn WordPress 7.0 or later, set up a provider under Settings → Connectors and choose WordPress AI here. No key is needed in Describewright.
Google GeminiCreate a key in Google AI Studio, paste it, save. Gemini 3.5 Flash-Lite is filled in for you.
OpenAICreate a key at platform.openai.com, paste it, save. GPT-6 Luna, OpenAI's model for high-volume work, is filled in for you.
Anthropic ClaudeCreate a key at console.anthropic.com, paste it, save. Claude Haiku 5.5 is filled in for you.
OpenRouterCreate a key at openrouter.ai, paste it, save. GPT-6 Luna is filled in; click Load models to pick another model that accepts images.
Custom or localAny other OpenAI-compatible service (for example Groq or Mistral), or a vision model in LM Studio or Ollama on your own computer: enter its address ending in /v1 and the model name.

Click Test the connection. It sends one small test image and tells you whether the model can see it.

The settings with the AI service, API key, model and connection test
Settings: the AI service, its key and model, and what is sent.

What it costs: a video is sent as still frames (JPEG, at most 512 pixels wide, a few per pause), never as a video file, so a low-cost vision model is enough. Our estimate from the published prices in October 2026 is a few cents for a 10-minute video with GPT-6 Luna or Gemini 3.5 Flash-Lite. Your provider's bill is what counts, and most providers show your usage per day.

4. Your first audio description

  1. Click Describe next to a video.
  2. Optional: write Notes for the AI: the names of the people, the organisation, what the slides are about. For example "Riverside city council. The speaker is not on screen; read the slide text." The notes are saved with the video.
  3. Choose the language of the descriptions and the style: Concise gives only what matters most, Detailed adds more when the pause allows it.
  4. Click Create audio description and keep the tab open. Describewright listens for the pauses in the speech, finds the scene changes, picks still frames and asks the AI for one description per pause.

If Captionwright has captions for the video, Describewright uses them instead of listening: the pauses are more precise and the AI also knows what is said, so it does not repeat it.

5. Check and edit

Every description appears as a card with the frame it describes, its start and end time and a word budget: how many words the voice can read between the description's start and end at the Speaking rate you set under Settings: about 2.6 words per second × the rate, minus a 0.4-second margin, and at least 2 words. A faster rate fits more words, a slower one fewer. The budget never counts past the start of the next description, because the reading would run into it. For descriptions just generated in the editor it also stops where the speech starts again; that point is not stored in the saved file, so after the descriptions are saved and opened again, the description's own end time is its limit. The budget turns red when a description is too long to fit; hover over it to see which limit applies.

The editor with the video on the left and description cards with frames, times and word budgets on the right
The editor: each description with its frame, times and word budget, next to the video.

No automatic description is perfect. For accessibility compliance the descriptions must convey the important visual information correctly, so read every one next to the video before you save.

6. What your viewers get

A video with the Audio description button turned on, the current description shown as text, and the described transcript below
The button, the description shown while it is read, and the described transcript.

7. Describe the whole library

In Queue: describe many videos, choose the language and click Describe every video without audio description. Videos that already have descriptions in that language are skipped. Descriptions are saved automatically so they work right away; review them later with Edit.

Stop after this video pauses the queue, and Resume continues it, even after reloading the page. If a video fails (for example, the browser cannot read its sound, or the AI service is unreachable), the queue moves on and keeps the failed video in a list with the reason. Click Retry failed videos to process only those; videos that were described are never processed again.

The queue panel after describing two videos
The queue describes every video without audio description.

8. Extended audio description

Some videos have no pauses long enough: a talk that never stops, or slides that change while someone speaks. Tick Extended description in the settings. Then:

An extended description in the editor, marked Extended
An extended description for a video without pauses.

9. Translate descriptions

In the editor, open Translate into other languages, tick the languages and click Translate the saved descriptions. Each language becomes its own description track with the same timing, and viewers choose it next to the Audio description button. Translation uses the same AI service as the descriptions. Check the translations in the editor like any other descriptions.

The translate panel with Spanish, French, Italian, Dutch and Polish ticked
Translate into any of 30 languages.

10. Writing good descriptions

The AI follows these rules, and they are worth keeping when you edit:

Weak
"A slide is shown on the screen with some text about the library."
Better
"Slide: open Sundays, 10 AM to 4 PM."

11. Settings reference

SettingWhat it does
Service, API key, modelThe AI that writes the descriptions. Leave the key field empty to keep the saved key; tick Remove the saved key to delete it.
Default languageTwo-letter code for new descriptions, for example en, sv, de.
StyleConcise or Detailed.
Shortest pauseSeconds of silence before a description fits (0.8–5). Lower it for fast speakers.
ReadingRead aloud with the browser's voice (and announce to screen readers), or only announce to screen readers.
Speaking rate0.7–1.6. How fast the browser's voice reads the descriptions in the player. The word budgets in the editor and the word limits given to the AI follow it: about 2.6 words per second × the rate, minus a 0.4-second margin, at least 2 words. Reload the editor after changing it.
Turn audio description on by defaultThe button starts on for viewers who have not chosen yet.
Show each description as text under the videoThe text line under the player while a description is read (on by default).
Add a described transcript below every described video blockAdds the transcript automatically.
Extended description (Pro)Adds descriptions where there is no pause, and lets the player wait while they are read.

12. Troubleshooting

Message or problemSolution
"The sound of this video could not be analysed"The browser could not decode the sound track, so the pauses in the speech are unknown. Add captions with Captionwright, try another browser, or click Describe without speech timing if the video has no speech. Nothing is generated or saved until you choose.
"There are no pauses in the speech long enough for a description"Lower Shortest pause, or turn on extended description (Pro).
"This browser could not open the video"Use Chrome, Edge or Firefox, or upload an MP4 (H.264/AAC) or WebM version.
"The video stopped loading: no data arrived for 30 seconds"The server or CDN stopped sending the video file. Check that the video plays in the Media Library and try again. In the queue the video is listed as failed and the queue goes on with the next one; Retry runs the failed ones again. While the tab is in the background the time limit waits, because browsers do not load video in a hidden tab.
"The browser cannot jump within this video because the server does not allow range requests for it"The server sends the video only from the start (some private-media or download plugins do this), so the frames at the pauses cannot be read. Ask your host to allow HTTP range requests for media files, or serve the uploads directly.
"The video did not show its first picture within 3 minutes"The video arrives too slowly. Try again on a faster connection, or upload a smaller MP4 (H.264) version.
"The thumbnails could not be made: …"The frames for the cards could not be read; the descriptions themselves are fine. Reopen the editor to try again.
Frames are black, or the video cannot be readYour media is on another domain (CDN or cloud storage). Allow cross-origin requests (CORS) from your site on that storage.
"The AI service rejected the API key"Paste a new key; leaving the field empty keeps the saved one.
The test says the model cannot see imagesChoose a model that accepts images (vision). Load models lists what your key can use.
No button under the videoThe video must use the core Video block or the [video] shortcode with a file from the Media Library, and have saved descriptions. Clear page caches after saving.
No voice, only screen-reader announcementsThe viewer's browser or system has no voice for that language, or Reading is set to screen readers only.
"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.

13. Privacy and external services

14. Deactivating, deleting and your description files

Want to keep your descriptions? Click Download .vtt in the editor for each video, or copy the folder wp-content/uploads/describewright/ (one .vtt file per video and language) before deleting the plugin. They are standard WebVTT files that other players and tools can use.

Support

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

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