Podd: a CLI podcatcher
If you're anything like me, you listen to a lot of podcasts. I like to archive all of my favorites on my home server, where I serve them to all my various devices via Plex. I looked around for a podcatcher that would manage my podcasts and could be run as a cron job, but I didn't find anything that really met my needs. So I decided to write my own.
Podd uses feedparser to parse RSS feeds, a sqlite3 database to store subscription info, and mutagen for basic tagging functionality, plus it sends you an email letting you know which episodes were downloaded, along with a summary of each episode.
Installation
PYPI
pip install podd
Git
git clone https://github.com/jakkso/Podd.gitcd Poddpip3 install -r requirements.txtto install dependencies.- Configure
settings.py- I use a spare Gmail account to send the notification email messages, if you plan on doing the same, the
hostandportvalues are fine. Using app-specific passwords like I'm doing here is a bit of a security risk, which is why I recommend not using your main Gmail account. If you want to go this route, you'll need to enable app-specific passwords. Note: the password is stored in the OS keyring. - By default,
databasesetting places the sqlite database in the same directory assettings.py. If you want to put it someplace else, just change that line to where you want it to be.
- I use a spare Gmail account to send the notification email messages, if you plan on doing the same, the
Requirements
- Python 3.6+ (F-strings are the bomb!)
- Some *nix flavor. It runs on the latest version of MacOS and Ubuntu with no problems, but I lack a working windows installation to test. If you want to port it, go nuts.
Usage
In your terminal of choice, enter podd followed by one of the following switches:
| Argument | Description |
|---|---|
--help |
Print help menu |
v |
Prints version number |
dl |
Run download routine |
email |
Run email credential storage routine. Password is stored in OS keyring. |
ls |
Print list of subscriptions |
add [--all] [--file] $FEED |
Subscribe to podcast with an rss feed url. |
--all |
If set, then all available episodes will be downloaded when download command is run. |
--file |
If set, $FEED will be treated as a file with a single RSS feed URL per line and podd will attempt to add each line as a separate RSS feed URL. |
rm |
Display the deletion menu |
dir $DIR |
Set download directory. The default download directory is $HOME/Podcasts |
opt |
Prints currently set options |
Adding Protected Feeds
When adding a new feed protected by http basic authentication, podd will ask for your username
and password, and store the credentials in your OS keyring.
License
GPL v2.0, see LICENSE.txt
Release files for Podd 0.1.19
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| Podd-0.1.19.tar.gz | 20.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| Podd-0.1.19-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.8 kB
Release files / Podd-0.1.19.tar.gz
| Download URL | Podd-0.1.19.tar.gz |
|---|---|
| Size | 20.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cfc9ca1113f3a93b9948acf9e6417dbd9d8d7732b1d7a2b18e57baa15ea02b43
|
|
BLAKE2b-256 checksum How to use checksums |
a19cdb360a0c3af3998fab09ccf709df7621d9074b8e2c659e0d3711e6810863
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.4
|
Release files / Podd-0.1.19-py3-none-any.whl
| Download URL | Podd-0.1.19-py3-none-any.whl |
|---|---|
| Size | 32.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e27ca3d4284d7b8fdb27ed962534c500b2afe637103f320c290e22c20717b9f
|
|
BLAKE2b-256 checksum How to use checksums |
f0f9c07a7297256a522e8c9fbb0b56eca4bc9fc27375fcc92dc2bc036ea970ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.4
|