A Python package for downloading all available episodes from a podcast RSS feed. Useful for making private archives of your favourite podcasts.
pip install allcasts
From your terminal run allcasts
which will kindly ask you for the an RSS feed's URL and download all available episodes for that podcast.
$ allcasts
==========================================================
========= Welcome to the AllCasts App! ========
==========================================================
Please enter the URL of the podcast feed you want to download: https://atp.fm/rss
Please enter the directory you want to download the podcast to [leave blank for current dir]:
Downloading all podcasts from https://atp.fm/rss to /Users/lewis/Documents/Python-Projects/allcasts
Downloading https://traffic.libsyn.com/atpfm/atp464.mp3
[............................................................................................]
🎧 Downloaded 464: Monks at Drafting Tables
Downloading https://traffic.libsyn.com/atpfm/atp463.mp3
[............................................................................................]
🎧 Downloaded 463: No Indication of Progress
Downloading https://traffic.libsyn.com/atpfm/atp462.mp3
[............................................................................................]
🎧 Downloaded 462: Xcode X
Downloading https://traffic.libsyn.com/atpfm/atp461.mp3
[........... ]
Allcasts supports a variety of command line arguments. To display help message below use allcasts -h
usage: allcasts.py [-h] (-f <URL> | -i <FILE>) [-d <DIRECTORY>] [-t] [-s <NUMBER>] [-e <NUMBER>] [-a] [-n <NUMBER>] [-l] [-v]
A friendly command line podcast downloader - supports downloading entire feeds, individual episodes, and a range of episodes
optional arguments:
-h, --help show this help message and exit
-f <URL>, --feed <URL>
the url of the podcast feed
-i <FILE>, --input <FILE>
the input file containing a list of podcast feeds
-d <DIRECTORY>, --directory <DIRECTORY>
the directory to save the podcast episodes
-t, --transcribe transcribe the podcast episodes to text
-s <NUMBER>, --start <NUMBER>
the number of the first episode to download
-e <NUMBER>, --end <NUMBER>
the number of the last episode to download
-a, --all download all episodes
-n <NUMBER>, --number <NUMBER>
download a specific episode
-l, --latest download the latest episode
-v, --version display the version number
- Download episodes 100 to 120
allcasts -f "https://atp.fm/rss" -s 100 -e 120
- Download all episodes of a podcast
allcasts -f "https://atp.fm/rss" -a
- Download episode 200
allcasts -f "https://atp.fm/rss" -n 100
- Download a list of RSS feeds
allcasts -i "podcast_feeds.txt"
- Transcribe downloaded episodes to a txt file for keyword searching
allcasts -f "https://atp.fm/rss" -t
allcasts is a Python module that can be imported and used in your own Python code too!
from allcasts import AllCasts
AllCasts.download_all('https://atp.fm/rss', '/Users/lewis/Documents/Python-Projects/allcasts')
- Private Patreon RSS feeds are not currently supported due to their strange DRM measures.
- Add audio transcription using speech_recognition module
- Add support for private Patreon RSS feeds
- Add support for downloading multiple podcasts at once.
- Add support for command line arguments.
- Add itunes API support to search for podcasts and select the correct feed.