Podcast Episode Download
List a public RSS feed, then download each enclosure with yt-dlp on its own worker. The report copies the media and writes downloads.jsonl.
List a public RSS feed, then download each enclosure with yt-dlp on its own worker. The report copies the media and writes downloads.jsonl.
A public RSS feed already lists enclosure URLs. Pulling those files one at a time does not scale once the show has more than a handful of episodes, and a parent job that says it succeeded can still hide an empty shard. You need the media files themselves, with a report that says which URLs produced a file and which did not.
This workflow lists the feed with yt-dlp, caps the URL file at 50 lines, then runs one download worker per enclosure. The report copies the audio into media/ and writes downloads.jsonl plus 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.
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.episodes strips yt-dlp smuggle fragments, keeps HTTP URLs, and writes at most 50 lines to urls.txt.download) runs one worker per line and writes the media file into that shard.report copies media files, joins them to the listed URLs, and writes downloads.jsonl plus report.md.list node. The default is NASA Small Steps, Giant Leaps on Megaphone.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.%(id)s.%(ext)s on download so filenames stay short.media/.From a completed run on the Managed fleet against the seeded NASA RSS feed with playlist-items set to 1:2. Both download shards wrote an MP3. The report copied both files.
# Podcast episode download
- listed: 2
- rows: 2
- with_media: 2| ok | ext | title | files |
|---|---|---|---|
| true | mp3 | NATIONALAERONAUTICSANDSPACEADMINISTRATION6370129648 | media/NATIONALAERONAUTICSANDSPACEADMINISTRATION6370129648.mp3 |
| true | mp3 | NATIONALAERONAUTICSANDSPACEADMINISTRATION1980847908 | media/NATIONALAERONAUTICSANDSPACEADMINISTRATION1980847908.mp3 |
No. Read downloads.jsonl and the download shard files. A parent node can report success while one worker wrote nothing.
The graph is built for RSS enclosure URLs. Cloud fleet IPs are often blocked on YouTube. Use a feed whose enclosures are ordinary HTTP files.
episodes writes at most 50 URLs. The seeded playlist-items value is 1:2 so a first copy-run stays small.
No. yt-dlp downloads files the feed already serves. A challenge page or empty shard is a failed fetch.
Get a personalized demo
A 30-minute walkthrough. We map the platform to your stack and answer pricing and deployment questions for your environment.