iTunes4 sharing is HTTP |
I found this article by pudge, Slashdot editor, MacPerl maintainer, and all-round Mac+Perl guy to be interesting. Basically he found that the service iTunes4's sharing creates uses HTTP on port 3689. This does not open up your whole Music folder for browsing but he did find a way to download a track instead of stream it.
Also, iTunes4 adds at least two protocol types (which are really just http assigned to specific apps) to your system, itms: (iTunes Music Store?) and daap: (Digital Audio Access Protocol?). itsm URLs point to specific pages within iTunes Music Store and daap: URLs point to servers providing iTunes sharing. So if my Mac is mac.goofus.com and I turn on sharing in iTunes4, someone can enter daap://mac.goofus.com:3689 in their browser and their iTunes4 will launch and connect to my shared playlists.
It looks like the downloading vs. streaming may be only applicable under rather specific circumstances. For one thing, the URL includes a "session-id" which is probably only generated when the iTunes4 client requests the track. It would be interesting to see if that URL could be used to stream the track using a different player on a different computer. The different player part shouldn't matter since pudge is using "curl" as a client to download the file but I wonder if iTunes4 on the server side ties the IP address of the client to the session-id. Probably not.
About the daap: protocol, it's not clear how you might construct a URL to point to a specific playlist or track or if it's even possible. A program called ServerStore has been made as a way to access a list of available iTunes sharing servers and quickly connect to them.
Someone else is working on a more detailed (and inscrutable!) examination of the sharing protocl.
Oh, and in case it wasn't obvious, iTunes4 only shares music when it's actually running. If the server quits iTunes4, clients can't listen.
Posted to Mac by extra88 at April 30, 2003 07:26 PM | TrackBack