I've been thinking a bit about how we can make it easier for users to subscribe to podcast feeds. At the minute, users have to (somehow) grab the RSS feed URL from their browser, and put it into their podcast client. Some clients make it easier by drag-and-drop, but it's still inelegant.
So, how could it be better? Well, with a bit of smarts on the client end, we can make it so the user just clicks a link in the browser, and the feed is automatically added to the podcast clients list of subscribed channels.
There are 2 ways we could do this:
1. By having a "podcast:" protocol for feed URLs, such as podcast://www.franklins.net/DotNetRocks_AAC.ashx. This doesn't seem to me to be in the spirit of the protocol section, since we're not really doing anything special to grab the feed URL. We're still using standard HTTP on port 80 (or whatever port is specified in the URL).
2. We could define a new file type (".podcast") and MIME type ("application/x-podcast") and put the podcast details in that feed. When the browser downloads that file, it launches the appropriate application handler. This is the mechanism that allows Word to open .doc files, for instance. If podcast clients standardised on this mechanism, the users podcast client of choice could then intercept this file and use the details to automatically subscribe theuser to the feed.
I really like this idea, and I think it would make things much easier for folks using the clients.
So, if we were to do this, what would need to be in the file? Really the only substantial bit of information needed would be the URL of the RSS feed, since that's the main bit that we can't get through the RSS feed itself. The title of the feed would also be useful (whether the client overrides this with the RSS feed title is up to it).
One possible example XML file format could then be:
<podcast title=".NET Rocks!" url="http://www.franklins.net/DotNetRocks_AAC.ashx" />
Alternatively, we could just re-use OPML as the format of the file, so you'd have:
<outline text=".NET Rocks!" type="link" url="http://www.franklins.net/DotNetRocks_AAC.ashx" />
So, what do folks think? It would be trivial to build either file dynamically from the allpodcasts.com directory, and if there's general agreement that it's a Good Thing I'll put the code in to do that for each podcast series we index.
One final question I'd like feedback on: Both file internals allow for multiple feed URLs, so this mechanism could be used to allow users to subscribe to multiple feeds in one go. I'm not sure this is a good idea, but I want to see what everyone else thinks. The first example above could easily be changed to only allow one feed (just remove the <podcasts> tags). It's less easy with OPML, since that has a definition outside of this use.