The Open Approach
At RadioPublic, we are dedicated to the principles of the open web, chief among them the idea that nobody needs to ask permission to participate as a producer or consumer. As a result, we knew we couldn’t set up a proprietary system which restricted participation to the small number of programs we could collect metadata for ourselves. Building yet another publishing platform for producers to share their data with us directly is fraught with technical, social, and ideological challenges. Plus, our founding partner PRX is already well established as an open publishing platform. So, we decided, any additional data should live in the open RSS feed, along with the rest of the data for the show.
Remember that the RSS spec is frozen, meaning that no improvements can be made to it, full stop. That said, RSS documents are written in XML, and XML has a feature called namespaces which can be leveraged to include data from multiple specifications in a single document. This allows one to create new specifications that could be used, not instead of, but in concert with RSS. iTunes did this when they initially added support for podcasts back in 2005, but little movement has happened in the intervening decade.
Indeed, there are some interesting initiatives to pick up where Apple left off, but they face a chicken-and-egg problem. Producers aren’t incentivized to add this extra metadata to their feeds until apps take advantage of them, and apps have no reason to add features that take advantage of data which doesn’t exist. Not only that, but figuring out which features users want depends on being able to test features, which depends on the supporting data existing in the first place.
One approach that answers all of these problems is to bootstrap the process by doing all of the parts as one organization — data, apps, & user testing. But once you’re collecting the data yourself, it’s usually easier to just stuff it in a database somewhere, rather than asking producers to include the data openly in their feeds. To the extent that apps are already exploring features enabled by additional data, this data is being stored in silos adjacent to the feeds, and producers still don’t have an easy way to participate.
We solved this problem with code.
Draper is a RadioPublic application that takes RSS in and puts RSS out. The RSS is transformed in the interim by a series of rules, defined in data, which can be automatically applied to feeds based on their URL. Those changes happen without impacting the important data that is already in the feed — meaning things like stats and post-publish changes to audio are not affected. Our apps consume this transformed RSS, instead of the original RSS. Most of the time these changes are small, like removing iTunes-specific tags that RadioPublic doesn’t use, but sometimes we add extra data to the feed.
The first trick I taught Draper was to add a unique identifier to every feed that will follow it even if the URL changes, or if the same feed lives in multiple places. It looks like this:
This makes it easier to figure out if you’re already subscribed to a feed, but with a different capitalization, or maybe an older version of the URL. But if it’s done right, the user will never know it’s there.
What about a way to specify the best episode to start with?
We’ve reached out to dozens of producers asking them which episodes belong in their greatest hits, and which work best for new listeners, so users finding them through RadioPublic discover episodes producers want front and center first.
But what if we don’t have your email? What if you’re a member of the long tail of 250,000+ podcasts? That’s where our approach aligns with the decentralized web. Supporting these features is as simple as adding a custom tag to your feed, something the most commonly used podcast publishing systems already support. And if you’re not comfortable copying and pasting XML, we will be collaborating with top publishing platforms in the space to support these features without the need to manipulate your feed directly, as open standards.
I am particularly excited about the fact that producers are left in full control of their feeds, and they don’t need to reach out to us at all to make use of RadioPublic’s new features. If at any time a producer chooses to add a tag to her feed which supersedes the data in Draper, Draper’s data will be overwritten. Our apps don’t know or care which data came from the producer and which came from us.