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