Simple podcast downloader (podcatcher)
The simplest podcast downloader with no configuration, no tagging, no nothing.
It simply downloads missing episodes from supported podcasts to a directory.
That's it.
You don't even have to know the URL of the RSS, you can give it a website URL,
a domain name, or simply the podcast name, it will find out which podcast you want to download.
It doesn't have a complicated UI or fancy features, it's just a command line application.
The download folder and the number of threads can be customized.
I use it in a Jenkins job to synchronize all the episodes to Nextcloud,
so it will be synced to my phone and I can listen the episodes without internet connection.
Supported podcasts
- Talk Python To Me (https://talkpython.fm/)
- Python Bytes (https://pythonbytes.fm/)
- The Changelog (https://changelog.com/podcast)
- Podcast.__init__ (https://www.podcastinit.com/)
- Indie Hackers (https://www.indiehackers.com/podcast)
- Real Python (https://realpython.com/podcasts/rpp/)
- Kubernetes Podcast (https://kubernetespodcast.com/)
Installation
You need at least Python 3.6, then you can simply run:
$ pip3 install simple-podcast-dl
Getting started
It is as simple as running the command:
$ podcast-dl talkpython.fm
And the podcast will be downloaded to the "talkpython.fm" directory.
You can change the download directory by specifying the --directory
(or -d) option:
$ podcast-dl talkpython.fm -d talkpython-podcast
You can list the supported podcast sites with the --list-podcasts
(or -l) option:
$ podcast-dl --list-podcasts
You can specify which episodes to download with the --episodes
(or -e) option:
$ podcast-dl --episodes 1,2,3 talkpython
You can use the "last" or "last:n" keyword to select the last or last n number of episodes to download:
$ podcast-dl --episodes last:3 talkpython
You can list the podcast episodes sorted by episode number with
--show-episodes or (-s):
$ podcast-dl --show-episodes talkpython
Or you can even combine it with selecting episodes:
$ podcast-dl --show-episodes -e 1-5 talkpython
It can show a progress bar with the --progress or (-p) option:
$ podcast-dl -p talkpython
Found a total of 182 missing episodes.
[##########--------------------------] 28% 00:03:16
Usage
Usage: podcast-dl [OPTIONS] PODCAST
Download podcast episodes to the given directory
URL or domain or short name for the PODCAST argument can be specified,
e.g. pythonbytes.fm or talkpython or https://talkpython.fm
Options:
-d, --download-dir PATH Where to save downloaded episodes. Can be
specified by the DOWNLOAD_DIR environment
variable. [default: name of PODCAST]
-e, --episodes EPISODELIST Episodes to download.
-s, --show-episodes Show the list of episodes for PODCAST.
-l, --list-podcasts List of supported podcasts, ordered by name.
-p, --progress Show progress bar instead of detailed
messages during download.
-t, --max-threads INTEGER RANGE
The maximum number of simultaneous
downloads. Can be specified with the
MAX_THREADS environment variable. [default:
10]
-v, --verbose Show detailed informations during download.
-V, --version Show the version and exit.
-h, --help Show this message and exit.
Development
The project has a pyproject.toml, so you can simply install everything needed for development with a single command:
$ pip install pipenv
$ poetry install
You should format your code with black (it's included in the development requirements):
$ poetry run black .
You can run the tests with:
$ poetry run pytest
Release files for simple-podcast-dl 1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| simple_podcast_dl-1.7.tar.gz | 10.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| simple_podcast_dl-1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.8 kB
Release files / simple_podcast_dl-1.7.tar.gz
| Download URL | simple_podcast_dl-1.7.tar.gz |
|---|---|
| Size | 10.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9796b83054553b809dcf858d4ff3d82f4913d2ccdacc2b014f21f8b68c948c83
|
|
BLAKE2b-256 checksum How to use checksums |
938fb3fd46e30ae991bb4c4f51461cb6276134120edfdaf5c6e2723285c590e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.3.0 CPython/3.10.9 Linux/5.15.79.1-microsoft-standard-WSL2
|
Release files / simple_podcast_dl-1.7-py3-none-any.whl
| Download URL | simple_podcast_dl-1.7-py3-none-any.whl |
|---|---|
| Size | 11.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0d5a388de8c223db74480b4e7481c7db692e5e7de241a725f85a062f7481bdd3
|
|
BLAKE2b-256 checksum How to use checksums |
4b281f91e9703cddb0405d6f9fb2dd5d32015e3d57bae097f25add85576800db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.3.0 CPython/3.10.9 Linux/5.15.79.1-microsoft-standard-WSL2
|