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
- 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
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
Built Distribution
Hashes for simple_podcast_dl-1.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d5a388de8c223db74480b4e7481c7db692e5e7de241a725f85a062f7481bdd3 |
|
MD5 | 102a4557b5ff9092bf986536f3b4f6b5 |
|
BLAKE2b-256 | 4b281f91e9703cddb0405d6f9fb2dd5d32015e3d57bae097f25add85576800db |