Built-in playlists in the Zune ecosystem, such as “Recent Tracks” and "Favorites Tracks", can be consumed as Atom feeds at URLs such as:
(See this post’s comments to learn more about the URL’s structure.)
Unfortunately there a couple usability problems with the feed as is:
- According to feedvalidator.org, an Atom namespace qualifier used on the <feed> element will cause interoperability problems. It’s perfectly valid XML and Atom 1.0 but some consumption code, including some I saw written at work the other day, is looking for <feed>, not <a:feed>. I suspect this is what throws off FriendFeed‘s Atom importer, as well as others.
- <entry><link> has an empty href attribute. Hey Zune team, remember that social I mentioned earlier? If you don’t link to it, customers ain’t joinin’ it.
- <entry><updated> is the feed-generated date/time, not the date/time the track was added to the list.
- Most things support Atom, but not everything.
So I fixed it up with Yahoo Pipes:
- I put an end to interoperability problems by sourcing the Atom feed in Pipes as raw XML, then spitting certain elements back out as RSS.
- I use the Zune Social XML namespace track information to link to track info on http://social.zune.net.
- There’s nothing much to be done about the date problem that I could see… that’s for the Zune folks to fix.
- Pipes exports as RSS. Easy.
The result is at http://pipes.yahoo.com/waded/zunefavorites.
Then, the improved RSS equivalent, with parameters you can change in bold, is: