Do you use an “iTunes compatible” device like an Iomega ix4 or Drobo FS or Roku SoundBridge? Have you noticed that it no longer works since you updated to iTunes 10? That’s because Apple made a simple change to their Digital Audio Access Protocol (DAAP) that causes third-party devices to fail to connect correctly. Although software patches are already appearing, there is no guarantee that older devices like that Roku will ever be updated.
DAAP, Firefly, and iTunes Clients
Apple introduced “music sharing” over a network in version 4.0 of iTunes way back in 2003, and third-party devices have been trying to play along ever since. Digital Audio Access Protocol (DAAP) was based on http and xml and leverages zeroconf/Bonjour to discover and stream audio across a network. iTunes can act as both a server or client.
Although Apple only licensed the protocol to a select few client applications, DAAP was successfully reverse-engineered shortly after its debut and integrated into a number of third-party clients and servers. Apple has continually modified DAAP for almost a decade, adding MD5-based and proprietary authentication in versions 4.2 and 4.5, but this has not stopped third-party servers like the open-source Firefly/mt-daapd from serving as an iTunes server.
Apple was successful in preventing third-party clients from accessing music through iTunes, adding a client validation challenge to version 7.0 that has not yet been broken. This allowed them to limit client access to only those few third parties who paid for a license, including the Roku SoundBridge that I own.
No More Servers?
Since it was open source and capable of supporting iTunes, the Firefly Media Server (formerly called mt-daapd) has seen widespread use in “home media servers” like the Iomega ix4 and Drobo FS. Just about every home NAS that supports iTunes uses this software or a related fork, and just about every one stopped working with the release of iTunes 10.
As of version 10, when iTunes requests a list of songs, it requires the server to respond with a correct “mediakind” response. Previous versions apparently assumed type 1 (music) whenever this was missing, but iTunes 10 simply refuses to play, reporting odd error messages like “untitled playlist.” So Apple has broken iTunes compatibility. Again.
A patch is ready for some versions of mt-daapd, but a more important question is raised: Should commercial products rely on reverse-engineered protocols like DAAP? Much of the Apple ecosystem is reliant on reverse engineering, from iPod chargers to AFP to Time Machine. Many of the resulting “tricks” are commercialized in a wide variety of products from manufacturers small and large. Even IT titans like HP and EMC advertise Apple support based on reverse-engineered protocols!
Stephen’s Stance
In my review of the Drobo FS, I questioned the wisdom of relying on “buggy and limited software” and discussed my use of “a real iTunes instance on my always-running iMac.” My experience with a Linksys NSLU2 running Firefly was never positive. Even my two Roku SoundBridge clients don’t work very well, and they’re licensed! I’m much happier with the performance of my AirPort Express, even though it would be nice if Apple would update the Remote app for the iPhone!
Many people complain about Apple’s “walled garden” approach, and I think they have a point when it comes to protocols like DAAP. By not allowing third parties to develop compatible hardware and software, they’ve forced everyone underground. Now that they’ve changed their implementation, all of these devices are “broken” in the eyes of users. Some, like the Roku, are out of date and might never be updated.
This is typical Apple. Out with the old and in with the new. They did the same with their own Apple TV hardware this month, stranding the few buyers it found without an update. Some may suggest that this minor change to iTunes is a conspiracy to push AirPlay, but I imagine it’s a simple case of upgrade-itis. Who cares about all that old junk when all this pretty new hardware and software is available?
We really can’t blame Apple for this. They never allowed the DAAP protocol to be used, and never promised that these reverse-engineered servers would work. In fact, I wonder why they even allowed “iTunes compatibility” to be promised without licensing. Perhaps some of the larger companies have Apple licenses, but I doubt it. At the end of the day, it is these vendors who are responsible for promising compatibility that they could not hope to deliver.
Note: The Roku SoundBridge still works fine as a client with iTunes 10. To clarify, I was saying that Apple could break this functionality in the future and Roku would be unlikely to fix it since they seem to have abandoned this product line.
the man with the golden gun says
Ah, the paradox of being a ‘green’, ‘responsible’ company that promotes green credentials, while breaking backwards compatibility, bringing end of life to multiple products in the name of selling a few more new units. Contrast with Microsoft holding backward compatibility sacred, causing huge inertia throughout product lines… Which is really the better model?
MikeyP says
iTunes 10 did indeed partially break support for the Roku Soundbridge. Any song/artist/album that has a colon (:) character in the name fails.
http://forums.roku.com/viewtopic.php?f=3&t=31705
gpad says
So, did 10.0.1 fix this?
Stewart Greenhill says
This was broken for me under iTunes 10 with mt-daapd on my DNS-323 NAS. After the 10.0.1 update its all working again.
MikeyP says
This is still broken in iTunes 10.1. Tested iTunes on OS/X 10.5.8 and Windows 7 64-bit, with Roku m1000 and m500, firmware 3.0.44. Roku fails to list and play the Rodrigo y Gabriela album 11:11, purchased from Amazon mp3.