Configuring Docker instance of ichapod

Downloading my favourite podcast... automatically

One of my favourite ’listening experiences’ is the radio show Higher Ground on CUIT 89.5. It’s hosted by Jason Palma and I’ve been listening for 20+ years.

tldr; I’ve been downloading the show for many years
When I first discovered this show circa. 2000, the station allowed streaming of that week’s show with RealAudio. I discovered that the stream file could be opened, giving me the URL for the underlying .ra file. I faithfully downloaded the file weekly, and listened to the shows while working on my college labs. Later on, the station quit that, and the show would post the MP3s on a third party site. I downloaded all of those too, which were shows from 2008-2010.
Sometime in/around September 2014, I managed to infect my laptop with CryptoWall (1.0). In the process of recovering/reformatting my laptop, I erased all of my historical archives of Higher Ground shows. The only ones I had left were encrypted copies of the 2008-2010 shows. Of course, by 2014 the site hosting the originals had quit offering that service, so there was no way to re-download them. The station at that point was only hosting the .mp3 for the current show - each week a new file was posted for streaming.
By then I was into Powershell and scripting, so I set up a scheduled task that ran my script to download the .mp3 file each week. This ran faithfully for a few years, until the station changed things again. Higher Ground was by this time posting the files to Podbean.com.

I use OMV to host a SMB share plus a small Jellyfin instance. I figured that with its embedded support for Docker, this would be a great opportunity to have OMV handle the downloading for me. I found a great docker container (ichapod) that will parse a podcast playlist and download all the files, including prefixing the filename with the posted date so that I can listen in order. If there’s nothing to download, ichapod will terminate.

OMV > Services > Compose > Files > Add

I used this configuration file:

version: '3'
services:
  ichapod:
    image: shikasta/ichapod
    build: .
    volumes:
      - "./podcasts.yml:/var/lib/ichapod/podcasts.yml"
      - "/srv/dev-disk-by-uuid-964d6de1-d26d-4f07-b743-30799f1c511d/backup/archive:/podcasts" ##saves to Higher Ground Radio folder
    command:
      - "/var/lib/ichapod/podcasts.yml"
      - "/podcasts"
    user: "1000:10000"
    restart: 'always'

The volumes entries tell the Docker instance to present the podcasts.yml file as /var/lib/ichapod/podcasts.yml, which is where ichapod expects to find the list of podcasts. I also present my /backup/archive directory as /podcasts, which is where ichapod will create a directory named after the podcast series, and save the playlist files.

I created a podcasts.yml file with the following content:

---
- series: Higher Ground Radio
  url: https://feed.podbean.com/ciuthigherground/feed.xml

References

Some articles I referenced when figuring this out were:

https://hub.docker.com/r/shikasta/ichapod
https://github.com/shikasta-net/Ichapod
Higher Ground Radio
Higher Ground Radio Facebook Group

Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy