Skip to main content

A Podcast downloader

Project description

# 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](https://pypi.org/project/feedparser/) to parse RSS feeds, a sqlite3 database to store subscription info,
and [mutagen](https://mutagen.readthedocs.io/en/latest/) for rudimentary tagging functionality, plus it sends you an email letting you know which episodes were downloaded, along with a summary of each episode.

## Installation
Clone this repo, run `pip3 install -r requirements.txt` to install dependencies.

Next, take a look at `config.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](https://support.google.com/accounts/answer/185833?hl=en).

By default, `database` setting places the sqlite database in the same directory as `config.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 `python3 podd.py` followed by one of the following switches:
* `-a URL` will attempt to add URL to the database.
* `-A feeds.txt` will attempt to add podcast RSS URLs located in feeds.txt Text files should be a single URL per line.
* `-b /directory/to/store/podcast/downloads` Sets the download directory for newly added podcasts. The default option is `$HOME/Podcasts`. Note: changing this will have no effect on current subscriptions, only affecting newly added podcasts.
* `-o` Prints out the currently set options.
* `-r` Displays the deletion menu
* `-c all` or `-c new` Sets option for newly added podcasts to download only new episodes, or the entire available back catalog. The default behavior is to only download the newest episode. Note: this, too, will have no effect on podcasts to which you're currently subscribed.
* `-d` Refresh all podcasts, download new episodes and send an email notification.
* `-e` Runs the email notification setup function, storing sender email address and password and recipient address in database
* `-n on` or `-n off` to toggle email notifications on or off

## Todo List
* At the moment, nothing, I'm pretty happy with where the project is.

##### License
GPL v2.0, see LICENSE.txt


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
Podd-0.1.11-py3-none-any.whl (24.5 kB) Copy SHA256 hash SHA256 Wheel py3
Podd-0.1.11.tar.gz (17.7 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page