Skip to main content

allcasts 📻 🗃

PyPI version

A Python package for downloading all available episodes from a podcast RSS feed. Useful for making private archives of your favourite podcasts.

Demonstration GIF

Installation

pip install allcasts

Usage

Command Line: Interactive Mode

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
[...........                                                                                 ]

Command Line: Arguments

Allcasts supports a variety of command line arguments. To display help message below use allcasts -h

usage: allcasts.py [-h] [-d <DIRECTORY>] -f <URL> [-s <NUMBER>] [-e <NUMBER>] [-a] [-n <NUMBER>]

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
  -d <DIRECTORY>, --directory <DIRECTORY>
                        the directory to save the podcast episodes
  -f <URL>, --feed <URL>
                        the url of the podcast feed
  -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

Example Commands:

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

As a Python module

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')

Limitations

  • Private Patreon RSS feeds are not currently supported due to their strange DRM measures.

Todo

  • 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.

Metadata

Release files for allcasts 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for allcasts 0.2.0
File Size Uploaded
allcasts-0.2.0.tar.gz 7.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for allcasts 0.2.0
File Interpreter ABI Platform
allcasts-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.6 kB

Release files / allcasts-0.2.0.tar.gz

Download URL allcasts-0.2.0.tar.gz
Size 7.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d37e7e73010ef91a06345e4baf929ed0406c23d234bbb2355084cff6346805ba
BLAKE2b-256 checksum
How to use checksums
dcb2c6c37e7e91091180f19a2944695bc0aaea529e4027bd0f7ab32864369760
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6

Release files / allcasts-0.2.0-py3-none-any.whl

Download URL allcasts-0.2.0-py3-none-any.whl
Size 7.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
83303ec2a5de989ed66f770e15b6240f35fccc7b706a29705badecf78248db9e
BLAKE2b-256 checksum
How to use checksums
4097850cc74898b59eb0679e91163f46a585c515949f635d68f85cc61774b8f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.6

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page