Skip to main content

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

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)

Source distribution for simple-podcast-dl 1.7
File Size Uploaded
simple_podcast_dl-1.7.tar.gz 10.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simple-podcast-dl 1.7
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.7 This release

2 release files

1.5

2 release files

1.4

2 release files

1.3

2 release files

1.2

1 release file

1.1

1 release file

1.0

1 release file

0.3

1 release file

0.2

1 release file

0.1

1 release file

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