Skip to main content

Transcription Overview

The Transcription Service add-on transcribes your episodes through your own OpenAI Whisper, AssemblyAI, Deepgram or Rev.ai account. You bring the API key and pay your provider directly at their published rates. Benecaster adds no markup and sets no monthly limit. A finished transcript goes into each eligible listener’s podcast feed, onto the episode’s page with timestamps that jump the player, and into your site’s search.

Already have transcripts from another service? Import them from an episode’s Transcript tab: SRT, WebVTT, plain text or OpenAI Whisper JSON, by upload, by paste or from your old host’s RSS feed. Importing is free, and imported transcripts follow the same visibility.

Transcription Service works on every Benecaster plan, Launch included. Buy it from its shop page, install it like any other add-on (see Installing Add-ons), and switch it on for the shows you want under Benecaster → Settings → Add-ons → the Transcription Service card → Active on.

Before You Start

Connect your provider first: Benecaster → Settings → Transcription, choose a provider, paste its API key and click Test connection. One provider and key serve all your shows. Until a key is accepted, the dashboard’s Needs attention list shows Connect your transcription provider. The settings, and which provider suits which show, are on Setting Up Transcription.

Transcription Service needs WordPress 6.9 or newer, the same as Benecaster itself. See PHP and WordPress Requirements.

Transcribing an Episode

You can request a transcript from either of two places: the episode’s editor (Transcript tab → Request transcription), or Benecaster → Episodes. Both ask the same question and charge the same. On a show with Transcription switched on, each episode in the list has a line under its title, Transcription: followed by its state, and the Transcript tab shows the same state:

State What it means
Not configured No provider has accepted a key yet. It links to Settings → Transcription.
Ready to transcribe Click it to request a transcript.
Queued Waiting for a free slot, or for a retry.
Processing With your provider.
Complete The transcript is finished and in use. In the list, it links to the episode’s Transcript tab.
Failed In the list, hover over it to see your provider’s reason; the Transcript tab shows the reason as text. Try again requests it again.

Each request costs you money at your provider, so Benecaster asks first. Clicking Ready to transcribe, Request transcription or Try again shows Transcribe with {provider}? This is charged to your account. with Transcribe and Cancel. Nothing is sent until you click Transcribe. When the episode’s audio is on another site, it adds If your host uses dynamic ad insertion, the transcribed audio may include ads. A CDN in front of your media library counts as another site.

To transcribe many episodes at once, with the cost shown first, see Transcribing Many Episodes.

A queued or processing state updates by itself every 15 seconds, so you can leave the page open. Shows where Transcription is switched off show no line.

How Episodes Wait Their Turn

Episodes transcribe in the background, never more at once than Max concurrent transcription jobs on the settings page allows. A change to that setting applies to the next episode sent.

  • Your provider says too many requests are arriving. The episode waits and tries again, 30 seconds at first and doubling up to 10 minutes between tries, for about an hour before it fails. Benecaster never lowers your setting for you.
  • Your provider can’t be reached or times out. The episode is tried again three more times over about seven minutes.
  • A refused API key, audio too large, or a job your provider itself failed is not retried, because a retry would be charged and fail the same way. OpenAI refuses audio over 25 MB, which most episodes over about 25 minutes are; see Setting Up Transcription.
  • Transcription switched off for the show before the episode was sent. Nothing is sent, and the episode fails. An episode your provider had already accepted is still collected and stored, because you have paid for it.

When a Transcription Fails

Failures show in the notifications bell as Transcription errors. The notice names up to five failed episodes, newest first, each with your provider’s reason, and Open the latest episode opens the newest one. When a failure was too many requests at once, it suggests lowering Max concurrent transcription jobs and says what it is set to now. You can dismiss it. It comes back when another episode fails.

A Transcript for Each Tier’s Audio

If an episode has files under Tier Audio Variants, its Transcript tab is grouped by audio: Base audio, then a {Tier} variant section for each tier with its own file. Each section has its own Request transcription, Import transcript, text, Edit transcript, Export and Format transcript, and each transcription is charged separately. A tier with no file of its own has no section, and an episode with base audio only looks as it always did.

Each subscriber’s feed carries the transcript of the audio they hear. A {Tier} variant section with no finished transcript says Until this audio has its own transcript, listeners who hear it get the base audio’s transcript, if there is one. Its timestamps may not line up with this audio. The fallback is always the base audio, never a lower tier’s transcript.

The episode page always plays and shows the base audio’s. See Transcript Visibility.

If you remove a tier’s file, its transcript is kept with a note, but it can’t be transcribed again.

What a Finished Transcript Does

When a transcription finishes, the episode’s Transcript URL in the episode editor’s Podcasting 2.0 fields is filled in with the transcript’s WebVTT file, and its type is set to WebVTT. Podcast apps that show transcripts find it through the episode’s <podcast:transcript> tag, in the feeds of the listeners your transcript visibility lets have it.

The episode’s transcript Language is filled in too (episode editor, More → Podcasting 2.0), and the <podcast:transcript> tag carries it: the language chosen on Settings → Transcription, else the one your provider detected. If your provider’s answer is unknown or names two languages, the field stays as it was.

A transcript link you set yourself is kept, along with its language. If the episode already had a transcript URL that you typed, picked from the media library or imported, Benecaster keeps it, and the new transcript is stored but not linked in its place. If you change the URL by hand in the episode editor, it becomes your own link from then on. See Creating Episodes.

Reading and Correcting a Transcript

The finished transcript is readable in the episode’s Transcript tab, with its timestamps and speakers, whatever its visibility. Edit transcript lets you correct it word by word without transcribing it again; times and speakers stay as they are. See Creating Episodes. To have your provider name who is speaking, turn on speaker labels for the show.

Exporting and Formatting

Export a transcript as SRT, VTT, plain text or PDF (the PDF for Latin, Greek and Cyrillic letters only) from the Transcript tab. Listeners who may read it can download it too, under the on-page transcript. Format transcript has OpenAI lay it out in paragraphs with speaker names in bold, for a small charge on your own OpenAI account; timestamps stay clickable on the page, and podcast apps that read HTML transcripts get the formatted version through the feed. See Exporting and Formatting Transcripts.

Transcripts on Your Site

On the Episode Page

Below the show notes, each episode page shows a Transcript section: the transcript in a box that scrolls on its own, with a timestamp on every line. Click a timestamp to jump the page’s player there. As the episode plays, the line being spoken is highlighted and the box scrolls along with it, until the reader scrolls the box themselves.

Who sees the section is decided by transcript visibility, not by who can play the episode. Under All visitors, the transcript shows even on an episode only a tier can play; the page then has no player, and the timestamps are plain links.

Benecaster’s own Read the transcript link does not appear beside the section, so a reader is not offered the same transcript twice.

Anywhere Else, With a Shortcode

Put a transcript on any page or post with [benecaster_transcript episode_id="123"]. It shows timestamped lines with the speaker named when it changes. When the episode’s player is on the same page, clicking a timestamp jumps it there and the spoken line is highlighted as it plays. On an episode’s own page you can leave out episode_id.

Attribute What it does
mode="full" Every line. The default.
mode="preview" The first five lines, then a Read the full transcript link to the episode page. Add lines="3" for three, up to 50.
mode="scrollable" Every line, in a box that scrolls along with the player until the reader scrolls it.

If your show notes already contain [benecaster_transcript], the episode page shows that one instead of adding its own Transcript section.

The shortcode follows transcript visibility too. A visitor it excludes sees nothing where the transcript would be, unless you turn on a notice or first lines for the show.

What You See That Listeners Don’t

You, and anyone who can edit an episode, see its transcript under every visibility setting, Hidden included. So a note stands above the transcript for you, saying who else can read it: everyone, subscribers to the show, the tiers you chose by name, holders of the buy-ups you chose, or under Hidden, no listener. It says whether the episode follows the show’s setting or has its own, and Change opens the episode’s Transcript tab. Listeners never see the note.

Benecaster’s Preview as Tier does not change what you see of a transcript. To check what a listener gets, sign in as one, or open the page in a private window to see what a signed-out visitor gets.

Your site’s episode search ([benecaster_search]) finds an episode whose transcript contains the searched words, even when its title and description don’t mention them. That result shows the part of the transcript around the words, highlighted. A transcript is searched only for people its visibility lets read it, and a Hidden transcript never. Search still shows only episodes the person can open. See Standard Search.

Search matches the words as typed, ignoring capitals, including inside longer words (cook finds cookbook). It searches the transcript of the episode’s main audio.

Search Engines

The transcript is part of the page’s own HTML, on the episode page and wherever you use the shortcode, so search engines read it with your show notes, even inside the scrolling box. On the episode page it is also labelled, in the structured data Benecaster gives the episode, as that episode’s transcript, and every timestamp carries its moment in a form software can read.

A search engine visits signed out, so it reads a transcript only when its visibility is All visitors.

Chapter Suggestions

With a transcript in place, Auto-suggest chapters in the episode editor fills in chapters from it for free, with nothing sent anywhere. See Chapter Markers.

When Transcription Is Switched Off or Your License Lapses

Your transcripts stay up. If Transcription is switched off for a show, or your license lapses, that show’s existing transcripts keep being served under the same visibility rules: in feeds, on episode pages, through the shortcode and in site search. What stops is new transcription, and the show’s Transcription settings tab and the episodes’ Transcript tab disappear until you switch it back on or renew.

Deactivating or deleting the add-on is different: the transcript links it wrote are left out of your feeds, episode pages and Benecaster’s REST API, and the transcripts are no longer shown on the site. Activate it again and they come back. A transcript link you entered yourself is not affected.

The Tour

Transcription Service Tour is listed under Tours in the Benecaster admin while Transcription is on for at least one show. It starts on Settings → Transcription, then moves to the Transcript tab of the current show’s most recent episode with a finished transcript. With no finished transcript on that show, the tour is just the first step.

For Developers

Code examples are in the recipe library.

See Also

Need this built rather than just documented? See our services →

Last updated