Transcripts and captions
This page is for producers who make their episodes accessible to people who cannot hear them, and findable by search. For audio, the accessible alternative is a transcript; for video with speech, captions. The public sector section has the background on the accessibility rules (Captions and media).
Contents
- Transcripts for audio
- Where the transcript goes
- Captions for video
- Caption files
- The feed and transcripts
- Checklist
Transcripts for audio
A transcript is the full text of what is said, with speaker names, and a description of important sounds. Make it from your edited audio, not the raw recording, and correct it by listening; automatic transcripts get names and technical terms wrong.
Format it for reading:
Host: Welcome to episode 42. Today with us is <guest>.
Guest: Thank you for having me.
[Music fades out]
Host: Let's start with ...Where the transcript goes
| Place | How | Good for |
|---|---|---|
| On the episode page, below the player | a rich text field Transcript in the episode class | most shows: one page, searchable by the site search |
| A page of its own, linked from the episode | an article related to the episode | very long transcripts |
| A downloadable file | a file field (ezbinaryfile), for example a PDF or a text file | an extra, not instead of the page |
A rich text field marked searchable makes the episode findable by what was said in it (Searching). Add the field as described on Building an episode class.
Captions for video
The media field's view template writes a <video> element with no <track> element
(design/standard/templates/content/datatype/view/ezmedia.tpl), so a caption file cannot be attached through the
media field as shipped. Three ways around it:
- Open captions: burn the captions into the video before upload. They work everywhere and cannot be switched off.
- A caption track in your design: a developer overrides the media template for your design and adds
<track kind="captions" srclang="en" src="...">, pointing to a WebVTT file in a second file field of your video class (Template overrides). This is design work, not a built-in feature. - A video service with captions, embedded on the page (Embedding a video or a stream).
For a live stream, captions come from the streaming service, if it offers them.
Caption files
WebVTT (.vtt) and SubRip (.srt) are not listed in the shipped settings/mime.ini. Uploaded as they are, they get
the type application/octet-stream, and browsers do not accept such a file as a <track>. If your design uses a
caption track, the administrator adds the type first:
# settings/override/mime.ini.append.php
[vtt]
Types[]=text/vttSee Working with your administrator.
The feed and transcripts
The podcast feed writes no transcript element (What is not built in). Podcast apps therefore cannot fetch your transcript from the feed. Link the transcript in the show notes ("Transcript: <address>"), so it is one tap away in apps that show the description.
Checklist
- To do: Every audio episode has a transcript on the page or one click away.
- To do: Every video with speech has captions.
- To do: Speakers are named in the transcript.
- To do: Important sounds and visual information are described.
- To do: The transcript is linked from the show notes.
- To do: The player has controls and does not start by itself (Accessible players and pages).
Related pages
- Captions and accessible video
- Captions and media
- Accessible players and pages
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.