Content

Podcast Episode Transcripts

List a public RSS feed, download each enclosure with yt-dlp, then transcribe the audio with Whisper. The report writes one text file per episode.

AuthorTrickest
100%

Overview

YouTube caption APIs fail from cloud fleet IPs, and a parent job that says it succeeded can still hide an empty shard. When the show publishes an RSS enclosure, the reliable path is to download that audio and run speech-to-text. You need the spoken words as text, with a report that says which episodes produced a transcript.

This workflow lists the feed with yt-dlp, downloads each enclosure on its own worker, flattens the audio, then runs whisper on the folder. The report writes transcripts/*.txt, transcripts.jsonl, and report.md. Use it on shows you have the right to copy. You can inspect the same node handoffs in visual workflows before you raise the cap.

Pipeline

  1. List the feed. list (yt-dlp) reads the RSS URL with --flat-playlist --skip-download --print-to-file url urls.txt and --playlist-items set to 1:2 on the seeded run.
  2. Cap the URL file. episodes strips yt-dlp smuggle fragments and writes at most 50 HTTP URLs to urls.txt.
  3. Download each enclosure. yt-dlp (audio) runs one worker per line and writes the media file into that shard.
  4. Flatten the shards. flatten copies the audio files into one folder so Whisper can see them.
  5. Transcribe the folder. whisper (transcribe) uses model base and language en, then writes txt, vtt, srt, tsv, and json per file.
  6. Merge the texts. report copies the transcripts, joins them to the listed URLs, and writes transcripts.jsonl plus report.md.

Inputs

  • Feed URL. A public RSS URL on the list node. The default is NASA Small Steps, Giant Leaps on Megaphone.
  • Playlist items. 1:2 on list for a cheap first run. Raise it toward 1:50 when you want more of the feed. The hard cap is 50 URLs in episodes.
  • Whisper model. base on transcribe. tiny is faster. Larger models cost more CPU time per minute of audio.

Outputs

  • transcripts/*.txt. One plain-text transcript per episode.
  • transcripts.jsonl. One row per episode with ok, backend, character count, and the text path.
  • report.md. The same rows as a short markdown packet.

Integrations

  • yt-dlp lists the RSS feed and downloads each enclosure.
  • whisper transcribes the flattened audio folder.

Sample output

From a completed run on the Managed fleet against the seeded NASA RSS feed with playlist-items set to 1:2. Both MP3s transcribed. The report listed 2 URLs and wrote 2 text files (16,920 and 16,183 characters).

# Podcast episode transcripts
- listed: 2
- rows: 2
- with_captions: 2
okbackendchar_countvideo_idtranscript
truewhisper16920NATIONALAERONAUTICSANDSPACEADMINISTRATION1980847908transcripts/NATIONALAERONAUTICSANDSPACEADMINISTRATION1980847908.txt
truewhisper16183NATIONALAERONAUTICSANDSPACEADMINISTRATION6370129648transcripts/NATIONALAERONAUTICSANDSPACEADMINISTRATION6370129648.txt

Opening lines from the first transcript:

When I learned that it was okay to not know everything, that it's okay to ask questions and ask for understanding, allow myself to be mentored, that's when opportunities presented themselves, and that's when I gained the best experiences. Welcome to Small Steps Giant Leaps, the podcast for NASA's Academy of Program, Project and Engineering Leadership, or Apple.

FAQ

Why not fetch YouTube captions instead?

Cloud fleet IPs are often blocked on YouTube caption APIs. This graph downloads the RSS enclosure and runs whisper so the text comes from the audio you already have the right to copy.

How long does Whisper take?

Two ~25 minute episodes on the base model took about 40 minutes on one Managed worker after the downloads finished. Larger models and longer shows take more time.

Does a green parent run mean every episode transcribed?

No. Read transcripts.jsonl and the Whisper output files. A parent node can report success while one file is missing.

How many episodes can one run take?

episodes writes at most 50 URLs. The seeded playlist-items value is 1:2 so a first copy-run stays small.

Can I change the Whisper model?

Yes. Set model on transcribe to tiny, small, or larger. Keep base until you know the extra time is worth it.

Get a personalized demo

See Trickest in Action

A 30-minute walkthrough. We map the platform to your stack and answer pricing and deployment questions for your environment.