Skip to main content

Automate the archiving of podcast feeds, including show notes and images.

Project description

podqueue

Automate the archiving of podcast feeds, including show notes and images.

This Python project aims for a simple user interface - you just need to modify src/config.ini with your inputs and outputs, and then schedule the program to run periodically.

What does my config file look like?

The default config.ini looks like the below. You have two choices to run this app:

  1. Edit this config file with your inputs and outputs, or
  2. Overwrite these values with the CLI flags below.
[podqueue]
opml = example.opml
dest = podqueue-output/
# Please note, '%' in time_format must be escaped with '%%'
time_format = %%Y-%%m-%%dT%%H-%%M-%%S
verbose = False

CLI arguments

As mentioned, if any of these CLI arguments are specified, they will overwrite any values in the config file.

  • -o, --opml - Pass an OPML file that contains a podcast subscription list.
  • -d, --dest - The destination folder for downloads. Will be created if required, including sub-directories for each separate podcast.
  • -t, --time_format - Specify a time format string for JSON files. Defaults to '%Y-%m-%d' (2022-06-31) if not specified.
  • -v, --verbose - Prints additional debug information. If excluded, only errors are printed (for automation).

Where do I get my OPML?

This will depend on your podcast app, but most will be able to export your list of subscriptions into a common XML format.

If you use a different app that has a similar functionality, please let me know and I'll add it to this list.

Podcast App OPML Export Options
Pocket Casts OPML export
Overcast Option available in the app's Settings page, or here on the web.
Castro Export Subscriptions
Downcast Exporting Podcast Subscriptions
Apple Podcasts Not available in iOS app or macOS since Catalina. However, if you sync your podcasts to your Mac, there is an open-source workaround.
Google Podcasts Officially unavailable. There is a Gist by @telmen (I tested, seems to work) that can be run in your browser's Devtools if you're feeling lucky.
Spotify Not available, since Spotify doesn't use open Podcast standards. Community suggestion is 'now reaching the internal teams at Spotify', as of six months ago.
Stitcher Unsupported.
Podcast Addict How can I backup and restore my subscription & data?
Castbox OPML Export

Your file should look something like this, with one line per podcast:

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<opml version="1.0">
  <head>
    <title>Pocket Casts Feeds</title>
  </head>
  <body>
    <outline text="feeds">
      <outline type="rss" text="Accidental Tech Podcast" xmlUrl="https://atp.fm/episodes?format=rss" />
      <outline type="rss" text="The Unmade Podcast" xmlUrl="https://www.unmade.fm/episodes?format=rss" />
      <outline type="rss" text="You Look Nice Today" xmlUrl="https://feeds.fireside.fm/youlooknicetoday/rss" />
      <outline type="rss" text="The Pen Addict" xmlUrl="https://www.relay.fm/penaddict/feed" />

      ... etc ...

    </outline>
  </body>
</opml>

How to install

Installation is done through Python's pip:

pip install podqueue
or
python3 -m pip install --upgrade podqueue

How to run

Execute the below to download each podcast into their own subdirectory, with episode metadata (shownotes, date, title, link) and show metadata (episode count, description, image) in each subdirectory. Episodes will be downloaded in default feed order - usually newest first, but it could depend on the podcast.

$ py -m podqueue -v --opml <<FILE.xml>> --dest output/

Example output:

output/
├─ Accidental_Tech_Podcast/
├── episodes/
│  ├── 2021-12-30_463__No_Indication_of_Progress.json
│  ├── 2021-12-30_463__No_Indication_of_Progress.mp3
│  ├── 2022-01-06_464__Monks_at_Drafting_Tables.json
│  ├── 2022-01-06_464__Monks_at_Drafting_Tables.mp3
│  ├── ...
├── Accidental_Tech_Podcast.png
├── Accidental_Tech_Podcast.json
├─ The_Pen_Addict/
├── episodes/
│  ├── 2021-12-29_494__The_Centre_is_Twisty.json
│  ├── 2021-12-29_494__The_Centre_is_Twisty.mp3
│  ├── 2022-01-05_495__Parter_Jocker.json
│  ├── 2022-01-05_495__Parter_Jocker.mp3
│  ├── ...
├── The_Pen_Addict.png
├── The_Pen_Addict.json

Project details


Download files

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

Source Distribution

podqueue-0.0.3.tar.gz (4.8 kB view hashes)

Uploaded Source

Built Distribution

podqueue-0.0.3-py3-none-any.whl (4.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page