As John Gruber predicted yesterday, iTunes 9 certainly uses WebKit much more than the last version. I used wireshark to do a packet trace when I clicked on the Rock Music section. Sure enough, if you gunzip the response, it is effectively standard HTML (though they do declare a custom XML namespace for everything). It looks like this new HTML based format is triggered by the request header:
X-Apple-Store-Front: 143441-1,5
For example, the following simple curl command will retrieve this Rock page:
curl -H "X-Apple-Store-Front: 143441-1,5" \
http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewGrouping?id=24
To further verify that iTunes was doing little more than rendering the result with WebKit, I went through the response HTML, fixed a couple of URLs, and got this result — exactly what you see in iTunes 9. Of course, the “Quick View” for each album doesn’t work, but you can see how it is all pieced together.
13 Comments
Protip: is much faster than making all of the URLs absolute.
Adding <base href=”http://ax.itunes.apple.com”> inside <head> is a quick one-shot way to deal with relative URLs while working with a local copy of the file.
well, there were only three relative URLs, so it wasn’t that big of a deal. Good point though.
Could this be used to create a way to find and download full-size video art? I’d love to get some for my own DVD rips.
Agree with Jason Painter… hoping this unlocks some way to retrieve TV and Movie art again.
Yeah still a crummy old carbon app & talk about bloat.. the installed iTunes 9 app on Snow Leopard is 151Mb. After ‘slimming’ with Xslimmer it is now 32.8Mb
Thats 118Mb of HDD space sucking garbage removed with ONE app alone..
I noticed that, on my 10.5, non-iPhone-developing machine, the iTunes 9 installer required that I quit Xcode. I don’t recall that happening before.
Always good to see the web crawling outside of it’s box.
Great Post. ;-) Regards from VolksPhone
this whole webkit rendering makes my itunes really slow - on my 2009 imac. feels like playing a high end video game on a low end pc.
apple should improve the performance :(
regards, jrk fluxforge.com
If you use GlimmerBlocker, and add the following rule, you can browse the iTunes store in Safari:
Copy the xml, and paste it into the rules table in your own filter.
Was wondering if you would be able to post more details on how to go about retrieving the HTML? I have never tried anything like this and want to copy the content from an Album page as proof of concept for my honours project.
Also, any thoughts if it is possible to:
Nice find. I’ve taken the idea and setup a proxy to make the necessary adaption on the fly. Most iTunes 9 pages work this way.
Browse iTunes Store via proxy
9 Trackbacks
[…] Store, que pode ser manipulada via HTML se você for um webmaster profissional, conforme mostra um teste feito pelo programador Will […]
[…] A navegação da iTunes Store ainda pode ser manipulada via HTML se você for um webmaster profissional, conforme mostram testes feitos pelo programador Will Norris. […]
[…] iTunes 9, now with more WebKit | Will Norris ?iTunes 9 ????? WebKit ?? […]
[…] on iTunes 9 using WebKit to render the UI. Will Norris managed to retrieve the Rock page and reconstruct and host them after some fix. The “Quick View” for each album however does not […]
[…] iTunes 9, now with more WebKit — Will Norris Evidence that iTunes 9 content is plain ol’ gzipped HTML. I wonder what sort of XSS protection is in the iTunes Store… (tags: itunes) […]
[…] iTunes 9 Now with more bloat and cumbersome, non-portable, versions of the extra features that people who illegally download albums already get in more useful formats. Still a 32-bit Carbon app. Gruber was right about WebKit. […]
[…] iTunes 9 ????????????? iTunes 9 ???????????Will Norris ? iTunes Store ?????iTunes Store ???????????????? HTML […]
[…] a potential problem is the switch (or at least greater use of) from Cocoa to Webkit which has been reported by some […]
[…] Will Norris has discovered that iTunes 9’s interactions with the Store are more web-happy. I’ve been asking where the iTunes Store API was for some time, now I think I’ve got what I need to build one. Others also read: Related:Do We Need A WordPress Common Invite or Challenge-Response API?stand alone AppleTV?EMI and Apple/iTunes To Offer DRM-Free Music DownloadsiTunes Music Store API?Do Facebook Ads Work? […]