Skip to main content

Simple podcast downloader (podcatcher)

Project description

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

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

simple_podcast_dl-1.7.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

simple_podcast_dl-1.7-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file simple_podcast_dl-1.7.tar.gz.

File metadata

  • Download URL: simple_podcast_dl-1.7.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.0 CPython/3.10.9 Linux/5.15.79.1-microsoft-standard-WSL2

File hashes

Hashes for simple_podcast_dl-1.7.tar.gz
Algorithm Hash digest
SHA256 9796b83054553b809dcf858d4ff3d82f4913d2ccdacc2b014f21f8b68c948c83
MD5 74aff44ddde348e766c11a7c7576867b
BLAKE2b-256 938fb3fd46e30ae991bb4c4f51461cb6276134120edfdaf5c6e2723285c590e7

See more details on using hashes here.

File details

Details for the file simple_podcast_dl-1.7-py3-none-any.whl.

File metadata

  • Download URL: simple_podcast_dl-1.7-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.0 CPython/3.10.9 Linux/5.15.79.1-microsoft-standard-WSL2

File hashes

Hashes for simple_podcast_dl-1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 0d5a388de8c223db74480b4e7481c7db692e5e7de241a725f85a062f7481bdd3
MD5 102a4557b5ff9092bf986536f3b4f6b5
BLAKE2b-256 4b281f91e9703cddb0405d6f9fb2dd5d32015e3d57bae097f25add85576800db

See more details on using hashes here.

Supported by

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