Last week, I published a weekend project for downloading media files from an RSS feed. I decided to Dockerize that code to quickly run it on a schedule in my local environment.

Check out the links to the source code and Docker image in the resources section if you want to use the tool yourself.

Table of Contents

Usage

Create a docker-compose.yaml file (You can use docker-compose-template.yaml in the GitHub repo)

It should look like this:

version: "3.9"

services:
  podcast-downloader:
    image: devpowercouk/podcast-downloader
    restart: always
    environment:
      AppSettings__CheckIntervalInDays: 5
      AppSettings__PodcastInfoList__0__PodcastName: "{podcast name}"
      AppSettings__PodcastInfoList__0__RssUrl: "{rss feed}"
      AppSettings__PodcastInfoList__0__LocalDirectory: "/Downloads/{podcast name}"
      AppSettings__PodcastInfoList__1__PodcastName: "{podcast name}"
      AppSettings__PodcastInfoList__1__RssUrl: "{rss feed}"
      AppSettings__PodcastInfoList__1__LocalDirectory: "/Downloads/{podcast name}"
    volumes:
      - { path to download root folder on host }:/Downloads


Update the missing parts, such as the podcasts you’d like to download and where to download them.

Set the interval duration. I’d choose somewhere between 5 – 10 days to avoid downloading the RSS feed too often.

After you’ve updated the settings, open a terminal and run the following command:

docker-compose up -d

You can then open your local download directory and watch the audio/video files pour in 💪.

Conclusion

It’s nice to use a proper podcatcher app to listen to the new episodes of my favourite podcasts, but I also like to keep a local copy so that I can pick a random episode at random times. It may also come in handy if the RSS feed is pulled or stops working. At the very least, it’s a fun project that allowed me to play with Docker more.

Have fun, and let me know what you think about the project in the comments below.

Resources

Categories: tools

Volkan Paksoy

Volkan Paksoy is a software developer with more than 15 years of experience, focusing mostly on C# and AWS. He’s a home lab and self-hosting fan who loves to spend his personal time developing hobby projects with Raspberry Pi, Arduino, LEGO and everything in-between.