So for the past couple weeks, I have been working on a podcasting platform app in Go (one of the programming languages by Google) that can automatically generate a podcast RSS feed based on a flat-file directory structure.
Basically how it works is by using specially formatted episode names to parse out info for the episode, and pull info for the description from the _SHOWNOTES.md file corresponding to it. It’s very basic but I wanted to avoid more “complex” deployment requirements like an RDBMS or the like. Using a format like this means human-readable file names for downloads, which are very likely to occur for a podcast listener. For the time being, shownotes are plain Markdown files, unparsed (for now), however while writing this I am contemplating moving them to JSON or HTML (whichever is easier to embed in an RSS feed item).
The RSS generated does work fine, and I tested it using the Podcast Addict Android app (I usually use Pocket Casts however PA is much easier to test with). The W3 Feed Validation Service does complain a bit (mostly about URLs not matching), but it does work.
Now the more difficult part - implementing the special iTunes tags to make podcasts more discoverable on platforms. I am opting for iTunes tags over Google Play tags for the simple fact of I’m not sure if iTunes likes <googleplay:*> tags, but I do know for a fact Google is fine with parsing Apple’s tags.
This implementation is taking the form of a fork of the gorilla/feeds. This library is mostly aimed for traditional blog-based RSS feeds, without the fancy iTunes tags (or even working tags as I discovered). Since I have completed the core functionality of the actual feed generation, that has become my primary focus.
That said, I am planning on deploying the base application to the server soon so that you guys can see a working version of the app, and also so I can start playing around with actual audio podcasts!
Of course the entire development of the app is open source, and you can follow along and try it out yourself here: gmemstr/whiterabbit. You’ll need to go get a couple requirements, otherwise it’s fairly straightforward.
README is a short informative post aimed to inform readers about changes and progress behind the scenes.Written on July 5th, 2017 by Gabriel Simmer (@gmem_)