Skip to main content

podpuller

A simple python app to sync your podcasts with RSS feeds and transfer to an external MP3 player

PyPI version License: MIT

Quick Start

  1. pip install podpuller
  2. Copy feeds.example.conf to ~/.config/podpuller/feeds.conf
  3. Put in URLs of RSS feeds, using a unique section name for each feed. No need to put in title.
  4. You can now use the command podpuller

podpuller screenshot

Motivation

After giving up my smartphone and buying a cheapo MP3 player I wanted a way to keep my feeds synced.

There are many great programs for this out there, like Greg, but it didn't really fit my workflow, which was having a certain number of the newest episodes of each podcast, and manually marking the ones I have already listened to.

This is that app. It was heavily inspired (and liberally copied) from the excellent upodder which is no longer maintained.

Workflow

Config: ~/.config/podpuller/feeds.conf

  1. Choose your RSS feeds
  2. Specify how many episodes you want (can be 'all')
  3. Choose serial (oldest first) or regular + optional start date

Run: podpuller [opt:single_feed]

  1. Mark the ones you listened to (or skip with "quick mode")
  2. Wait for sync (only syncs single feed if specified)
  3. Optionally, transfer to external drive

Config

The config file is read from ~/.config/podpuller/feeds.conf and you have an example here. It is pretty straightforward:

Global Configs
  • data directory: Where to store the SQL database of downloaded and listened episodes.
  • download directory: Where to download the podcasts to.
  • mp3 player directory: Where to sync the download directory to.
Feed Configs
  • Every feed goes into a directory named by its config file section (e.g., tal in the sample conf file).
  • The serial config gets episodes from oldest to newest.
  • start date ignores everything before that date (useful for serial podcasts).
  • There's no need to provide a name for the feed, just a URL, the name will be auto-filled from the RSS feed.

Notes

  • Sync both transfers and deletes files. It basically does an exact copy.
  • All defaults, including rsync flags, are for MacOS but can probably be easily changed for UN*X systems.

Rant

RSS is a long-standing open standard for updated feeds. Your podcast success is built on the shoulders of many open-source and open-format developers who poured their heart into it. Please stop making your podcast available only through proprietary channels like Spotify, iTunes, etc. Give back by also publishing your RSS feed. Thanks!

Roadmap

  • Tag MP3 files with info from feed
  • Put project on PyPI
  • UI improvements
  • Handle "oldest-first" workflow for serial podcasts

Metadata

Release files for podpuller 1.4.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for podpuller 1.4.6
File Size Uploaded
podpuller-1.4.6.tar.gz 10.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for podpuller 1.4.6
File Interpreter ABI Platform
podpuller-1.4.6-py3-none-any.whl Python 3 none any Details

Total release size: 21.3 kB

Release files / podpuller-1.4.6.tar.gz

Download URL podpuller-1.4.6.tar.gz
Size 10.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d70ccd8e37010c37792d12c186fbb61c1c71cef93c9a9a5c306ff75a2bfed71b
BLAKE2b-256 checksum
How to use checksums
35b1f7ec57e16d4164d7d6825648825438edd08c0ad7cf955624d084ecf32753
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release files / podpuller-1.4.6-py3-none-any.whl

Download URL podpuller-1.4.6-py3-none-any.whl
Size 10.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5748c6e1f2de32c18277e71984f0a3dd7f12cff40b3c42c9b0ba92eafca63ddc
BLAKE2b-256 checksum
How to use checksums
97728028551475466ffe78c20812b93ef14120021c178fc6dfda0da509f5bcae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release history Release notifications | RSS feed

This release

1.4.6 This release

2 release files

1.4.5

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

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