Generate Podcast RSS Feed from Individual MP3s

Make it easy to take it easy: How can I turn audio files into a podcast as simply as possible, without additional costs for podcast platforms?

A year ago I’d installed Octopod on Jekyll, but even that solution seemed too complicated. Sure, Jekyll is also a static site generator, but I had to create and generate files in various places. Eventually I stopped uploading audio files to the system entirely.

So today I spent a full lockdown day finding a solution that actually works for me. My requirements:

  • Audio files stay on my Uberspace server
  • I want the files in my GIT repository and deploy to server with one command
  • This needs to be as simple as possible. Ideally I push already-tagged MP3 files into a directory on the server and it automatically creates an RSS feed for iTunes, Spotify and co.

Took a while, but I finally found a workable solution with Dir2Cast. Here’s how it works:

  1. Download Dir2Cast to your hard drive and edit the Dir2Cast.ini file.

  2. The .ini file is well commented. In my use case, the MP3s sit in a separate /mp3 folder. I renamed Dir2Cast.php to index.php without ceremony.

  3. I deploy updates and new MP3 episodes via rsync to my server. So I push new MP3 episodes into the MP3 directory and then update with a ./deploy script. Mine looks like this (I use Uberspace):

    #!/bin/sh

    USER=(Your uberspace username)

    HOST=yourspace.uberspace.de

    DIR=html/audio/ # Where your files get deployed

    rsync -avz –delete –ignore-existing podcast/ ${USER}@${HOST}:~/${DIR}

    exit 0

    Copy this into a text file called “deploy”, copy it into the “audio” directory. I copied the Dir2Cast directory into the “podcast” directory.

    Then make “deploy” executable:

    chmod +x deploy

    Now you can sync files with ./deploy.

    The directories look like this:

    audio - only contains the deploy file

    audio/podcast - the Dir2Cast directory with Dir2Cast.ini file

    audio/podcast/mp3 - the audio files go here

  4. Made my podcast accessible at audio.reinergaertner.de:

    uberspace web domain add audio.reinergaertner.de

    Then enter the A and AAAA values in your web host’s DNS list.

    … then link it up. On my Uberspace it sits in the /html/audio directory

    ln -s /var/www/virtual/USER/html/audio//var/www/virtual/USER/audio.reinergaertner.de

  5. The podcast feed is then accessible at audio.reinergaertner.de. Give it a try. You should see an RSS feed that you can pull into any podcast app.

  6. Next step is preparing the feed for iTunes, Spotify and co. That’s coming next. The heavy lifting is done.

This might all read a bit cryptic. If you have questions, let me know. I’ll keep working on it over the next few days. I just wanted to drop this note here so I don’t forget what I’ve been doing for the last few hours.


Originally auf Deutsch at reinergaertner.de, running since 1997. The translation had AI help. The typos are all mine.