creating a simple podcast feed reader

podcasts are fun

I've started listening to a few podcasts in the past year or so. Originally I was just browsing to the podcast source on the web and listening in the browser, and sometimes downloading the artifact or copying the link to stream it via Audacious, my current favorite audio player (I have a custom steppenwolf winamp skin I use with it, the nostalgia is wonderful).

podcast clients

Lately, though I have wanted something a bit more unified. audacious doesn't have the capabilities to parse an RSS feed and build a podcast playlist out of it. So I went looking for command line podcast clients. Castero is a cool TUI client but I couldn't get the UI to look decent with the limited options provided in the config file and it's written in python, so I wanted something a little different.

I also tried Greg and Podget, neither of which really did it for me, needing too much configuration and still not getting me what I wanted in the end, which was the ability to simply parse the RSS feed into a playlist that a smart audio player could just stream the episodes over HTTP with.

Like every hacker before, contemporaneous with, and after me the thought occurred:

Just build it!


So I made podlist - a POSIX shell script in less than 10 lines that does the following:

  1. reads a list of feed URLs from a text file and downloads each one
  2. uses xmllint to find the episodes in the feed and isolates them with sed
  3. dumps the address of each episode's audio file into a playlist file, streamable by audacious or mpv

I'm really stoked with how simple and elegant it turned out. You can give it a spin by cloning the zenUtils repo and just running the script. It does use the environment variable PODLIST_DATA_DIR to figure out where your .feed file is and where the m3u files should be placed; if you don't set it, it uses your home directory.