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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Podd-0.1.10.tar.gz
(17.6 kB
view hashes)
Built Distribution
Podd-0.1.10-py3-none-any.whl
(24.4 kB
view hashes)