Skip to main content

Podd: a CLI podcatcher

Code style: black

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

  1. git clone https://github.com/jakkso/Podd.git
  2. cd Podd
  3. pip3 install -r requirements.txt to install dependencies.
  4. Configure settings.py
    • I use a spare Gmail account to send the notification email messages, if you plan on doing the same, the host and port values 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, database setting places the sqlite database in the same directory as settings.py. If you want to put it someplace else, just change that line to where you want it to be.

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)

Source distribution for Podd 0.1.19
File Size Uploaded
Podd-0.1.19.tar.gz 20.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Podd 0.1.19
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.19 This release

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

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