iTunes Music Store API?

I can’t explain why, at least not yet, but I’m looking for a way to search the iTunes Music Store catalog outside of iTunes. Rumors of an iTunes-Google partnership have been flying lately, but what I really want is a webservice/API I can use. Yes, Apple offers an affiliate program that supports direct links, but again, they don’t offer an Amazon-style API to search their catalog.

All of this has me thinking about reverse-engineering the iTMS to build the webservice I’m looking for. DVD Jon made news not so long ago with PyMusique, now rewritten as SharpMusique, but even before that, Jason Rohrer released iTMS-4-all.

Rohrer’s work is more in line with what I’m trying to do, so I’m exploring that concept a little. iTMS-4-all is a simple web browsing interface to the store. Jean-Yves Stervinou explains:

iTunes 4 is a beautiful example of a “specialized browser”. It uses html to render pages with texts and pictures, but it also uses macosX standard GUI elements when appropriate. When you browse the albums/artists, iTunes in fact gets the contents of these lists from a Web server out there at Apple (phobos is its nickname). The format for these lists is XML [...]. iTunes reads this XML list then uses a standard list browser to show you the content.

Stervinou describes the entire iTunes store as a REST webservice, but one which Apple has chosen to keep private. Rohrer describes the problems of interacting with the ITMS encrypted content. He (and contributors) were successful, but Apple changed the encryption after iTunes 4.7 was released. It didn’t take long for DVD Jon to get around the change, but it (or something else, I haven’t looked yet) has disabled iTMS-4-all. Too bad, too, because there’s a lot we might be able to do with such a webservice. DownhillBattle.org contemplates some of these uses in their iTMS-4-all announcement (Jason Rohrer is somehow involved with Downhill Battle).

More reading: Free Software Magazine did some poking at iTunes, The g4tv Screensavers crew looks into iTunes Hackery, Apple does offer a very limited iTunes RSS feed generator, XMLHead looks at the structure of iTunes affiliate links, and (update) here’s some talk about the iTMS XML interface before they started encrypting it.

tags: , , , , , , , , , ,

10 Comments

  1. Comment by Joe Clark on August 31, 2005 11:40 am

    cpan for itms_client

  2. Comment by Joseph Kumph on October 28, 2005 9:28 pm

    As a stop-gap measure until Apple gets back to its senses, you can do what I did: Write a script that connects to the the itunes link maker (http://phobos.apple.com/WebObjects/MZSearch.woa/wa/itmsLinkMaker)
    and supplies the appropriate arguments. The link structure is very simple.

    Not exactly an API, but it does the job. I actually glued it together with Anazon Web Services, allowing people to select favorite albums for their member pages on my site. It works very well, with about 95% of the amazon selected albums matching up with an iTunes playlist. Pretty sweet!

  3. Comment by HI on December 17, 2005 6:07 am

    Could you please tell me how can i refresh the song list in iTunes’s libarary whenever i change the content of the folder that storing the songs (mp3 for example) in the list …
    Thanks

  4. Comment by lakjswkdekde on October 9, 2006 4:32 am

    Hi How Do You Buy Itunes Songs?

  5. Comment by Mike on July 2, 2007 11:30 pm

    You can close itunes and re-open it. Same ting happens to me if I disconnect my external harddrive that has all my music on it.

    I just close itunes, make sure the external is connected and open iTunes again.

  6. Comment by Lee Hamilton on September 11, 2007 9:20 am

    My daughter bought some tunes from your company back in june using my credit card, we cancelled the account but yet you have charged my card
    $1.99 for some reason and now I have a charge for $39.47 when we hven’t used this account since then. Email me how I can see the account, It will be under the name K’Lee Hamilton

  7. Pingback by Jenny & Adam’s Blog » New iPods, Apple takes a step backwards on September 16, 2007 1:22 pm

    [...] http://maisonbisson.com/blog/post/10758/itunes-music-store-api [...]

  8. Comment by Stephen on November 25, 2007 8:04 pm

    Joseph>

    Do you have the code anywhere to parse the search results? I’m actually looking to have individual songs linked to the appropriate iTunes song for download. Want to automate the Affiliate Program process.

    I still can’t believe there isn’t an API for this.

    Apple, get your head out of your asses! This would be a GREAT addition for you guys!

  9. Comment by Petro on August 15, 2008 7:42 am

    I developed a script that accesses the iTunes Music Store and pulls album information through a web browser. Putting it together with some AJAX, I developed cloudTunes (http://www.petrosalema.com/cloudtunes). Check it out; I think it is the sort of thing you’re talking about.

    cloudTunes simply requests the same information as iTunes software but parses it and displays it as HTML.

    Apple should definitely develop an open API or webservice for the iTMS, I can’t see how it wouldn’t be to their advantage.

  10. Comment by shikha on August 29, 2008 1:09 am

    i m getting exception on this …..
    SearchDesktopClass msnDS = new SearchDesktopClass();

    exception:
    Retrieving the COM class factory for component with CLSID {1AD68C99-00FB-416D-804B-C38DEE75D55E} failed due to the following error: 80040154.

    Plz help me out

    Thanks

Comments RSS TrackBack Identifier URI

Leave a comment

 

User contributed tags for this post:

itunes api (4083) - itunes store api (600) - itunes webservice (199) - ipod api (198) - itunes 9808 (189) - itms api (175) - music api (172) - itunes card generator (172) - itune api (165) - itunes refresh library (162) - napster api (150) - itunes music store api (146) - itunes affiliate api (144) - iTunes refresh (144) - itunes search api (128) - itunes web service (128) - iTunes Store XML (124) - itunes code generator (123) - amazon music api (100) - api itunes (98) - refresh itunes (96) - itunes web api (95) - hack itunes store (94) - itunes link generator (90) - sharpmusique itunes 6 (86) - itunes store hack (86) - itune com (85) - phobos itunes (84) - itunes store browser (77) - apple itunes api (76) - iTunes Link Maker API (75) - hacking itunes store (74) - itunes web services (72) - music store api (69) - 9808 iTunes (61) - refresh itunes list (60) - itunes javascript (59) - itunes store web service (55) - javascript itunes (54) - api music (53) - refresh itunes library (52) - amazon mp3 api (52) - music webservice (50) - itunes java api (48) - itunes affiliate script (47) - itunes refresh list (45) - search itunes store (44) - itunes com api (43) - itms-4-all (40) - apple store api (40) - itms xml (38) - browse itunes store (38) - itunes store search (36) - itunes api java (35) - itunes gift card code generator (35) - itunes link API (34) - itunes store in browser (34) - itune store (33) - itunes 6 encryption (31) - hack itunes music store (30) - iTunes card code generator (30) - how to refresh itunes (28) - iTunes Music API (28) - hacking itunes music store (27) - itunes 6 hack (27) - affiliate api (27) - refresh itunes song list (27) - itunes refresh tags (27) - itune store api (27) - google music api (26) - java itunes api (26) - itunes fehler 9808 (26) - itunes api affiliate (24) - itunes web service api (24) - how to hack itunes store (24) - itunes library api (24) - iTunes Store 9808 (24) - itunes phobos (23) - itune affiliate (23) - itunes 7 refresh library (23) - itunes refresh folder (23) - itunes refresh music list (23) - apple music store api (22) - itunes api web (22) - itune com api (22) - itunes api example (22) - itunes refresh song list (22) - itunes affiliate (22) - itunes apis (22) - itunes gift card generator (22) - amazon api music (21) - ipod java api (21) - search API itunes music store (21) - apple phobos (21) - refresh itunes music list (21) - itunes error 9808 (21) - amazon music store api (21) - itunes store api phobos (20) - itunes (20) - PyMusique itunes 6 (20) - itunes affiliate links (19) - itune javascript (19) - amazon mp3 store API (19) - refreshing iTunes (18) - iTunes Affiliate Links Search (18) - iTunes API javascript (18) - itunes music store web interface (18) - javascript itune (18) - itunes webservices (18) - APPLE iTUNE COM (18) - webservice itunes (17) - msn music api (17) - itunes affiliate program api (17) - itune java (17) - refresh itunes store (17) - sharpmusique video (16) - google music search api (16) - itunes music store browser (16) - itune 9808 (16) - itunes api php (16) - itms hack (15) - itunes link maker podcast (15) - hacking itunes 6 (15) - itunes affiliate links script (15) - itunes affiliate search api (15) - itunes 6 browser hack (15) - sharpmusique itunes 7 (15) - itunes api store (15) - itunes music store (14) - ITune Java API (14) - itunes affiliate link search (14) - itunes store browse web (14) - API Itunes Store (14) - sharpmusique (13) - itunes affiliates api (13) - itunes link maker hack (13) - itunes search link affiliate (13) - itunes link maker (13) - itunes api use (13) - itunes affiliate images (13) - itunes affiliate links xml (13) - itunes store web service search api (13) - itunes store web interface (13) - itunes store refresh (12) - itunes 6 videos hackers (12) - ipod api java (12) - webservice music (12) - refresh library itunes (12) - iTunes link maker service (12) - itunes store search api (12) -