Skip to main content

A simple command line tool to download all podcasts from a given RSS feed

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

allcasts-0.2.0.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

allcasts-0.2.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file allcasts-0.2.0.tar.gz.

File metadata

  • Download URL: allcasts-0.2.0.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for allcasts-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d37e7e73010ef91a06345e4baf929ed0406c23d234bbb2355084cff6346805ba
MD5 5dbd439032f3d3f64ec1f2742d38d6c9
BLAKE2b-256 dcb2c6c37e7e91091180f19a2944695bc0aaea529e4027bd0f7ab32864369760

See more details on using hashes here.

File details

Details for the file allcasts-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: allcasts-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for allcasts-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 83303ec2a5de989ed66f770e15b6240f35fccc7b706a29705badecf78248db9e
MD5 350d0fcbaf39078ae0a21477fe141e77
BLAKE2b-256 4097850cc74898b59eb0679e91163f46a585c515949f635d68f85cc61774b8f1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page