Mixcloud to RSS with Enclosures

Some time ago I created an “Unofficial.fm Feed Parser” so that I could get one of my favorite podcasts, The Waiting Room, as a true podcast (that my podcatcher would know how to download).  Since then, they’ve moved on from Official.fm and can be found (at least for now) over at Mixcloud.

Unfortunately, just like Official.fm, Mixcloud doesn’t provide a “true” RSS feed with enclosures. So I had to hack together another script to feed my podcatcher with the full quality downloads.

When I first started searching, I found a few hopeful options:

  • Meloncholy’s Mixcloud RSS Converter – which you can see in action at http://bits.meloncholy.com/mixcloud-rss. Unfortunately what this does is use the Oembed functionality  to create a real RSS feed but one where each episode is embedded, rather than in the RSS feed as an enclosure. Good for streaming, not for playing when you’re offline.
  • Georgi Pavlov’s Mixcloud RSS feed generator – this one does work well, and allows you to choose between m4a and mp3, as well as how many episodes back to grab. This worked pretty effectively, but I didn’t like that I was consuming someone else’s resources and wanted one I could run on my own server. (One thing his does which mine does not yet is pull each episode’s description).
  • Many pointers to offliberty.com and numerous similar sites, which can translate and provide download links for individual episodes – but again I didn’t want to be dependent on them. (See also Mixcloud Downloader,  MixCloud Downloader, and Mixcloud Downloader – the last one a chrome extension).
  • A couple of sites which pointed out how to find the url of the m4a file – using Chrome inspector, net-internals, or similar mechanisms.

Ultimately I ended up making my own: Mixcloud RSS download

It’s fairly simple to configure. I use a cronjob to refresh it every 24 hrs, then point my podcatcher at the saved output. (You can see the results here or put http://johneckman.com/mc/feed.xml in your podcatcher to test).

Note downloads are limited on the mixcloud side – so a 2 hr podcast (like The Waiting Room) will actually take 2 hrs to download. I suppose a future version might do the downloads server-to-server and then cache locally the most recent X episodes.

Let me know if you try it with other podcasts and how it works (or doesn’t, of course) using the github issues queue.