views:

302

answers:

2

Hi out there,

i'm trying to get the latest podcast informations out of "itunes store" to work with this data in several applications (iphone app and web app).

Is there a way to get this informations? RSS, JSON or something?

i want to work with this informations in objective-c and on a website with php or js.

Is my question clear? :(

//edit: anything unclear? leave a comment, if yes

A: 

If there is an RSS feed for the data you're looking for, you can use this RSS/Atom Parser for iPhone I've just released.

Hope it can be of some use!

Michael Waterfall
so my problem is to GET the feed, not to handle it.
choise
+2  A: 

Based on your question, I just tried to find a way to do this.

  1. So you'll need the podcast ID (should be obvious from the URL if you have it; for instance http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=82884735 has the ID "82884735", and http://itunes.apple.com/us/podcast/this-week-in-tech-mp3-edition/id73329404 has the ID "73329404").

  2. ???

  3. Plug the ID into the URL https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/com.apple.jingle.app.finance.DirectAction/subscribePodcast?id={ID}&wasWarnedAboutPodcasts=true and get the data, where {ID} is your podcast ID. It's important here to change your user agent string to iTunes. For this experiment, I used "iTunes/7.4.1". If you don't change it, you'll get something very different.

  4. You'll end up with XML data; an XML plist enclosed in Document and Protocol tags. It will look like

    <Document> <Protocol> <plist version="1.0"> ... </plist> </Protocol> </Document>

You can pull the plist data from this and use a library to manipulate it if your language of choice has one. Essentially there'll be a "root" dictionary and a dictionary inside it called "subscribe-podcast". This "subscribe-podcast" dictionary will have a key called "feedURL" – nab the value, and you'll have your RSS feed. I'd recommend trying these steps and following along.

An easier to follow representation of the plist is the NeXTSTEP format, which actually looks a bit like JSON. An excerpt of a dummy podcast plist transformed into this format is as follows (remember that you'll really be getting back an XML-like file):

{
    "subscribe-podcast" = {
        …
        feedURL = "http://feeds.feedburner.com/yaddayaddayadda"; 
        …
        podcastName = "Lorem Ipsum"; 
        …
    }; 
}

Now you'll notice in the steps I described that step 2 is missing. This is because I looked at the data that Apple was giving me back manually to get to the URL in step 3. Chances are that you'll want to parse the data yourself in case Apple decides to change the URL, but maybe it's probable for the intermediate HTML to change and break your program anyway. I might go back and look at documenting the steps that should be taken to get at our magic URL in step 3.

I tried out this strategy with a few podcasts, and it seems to work well in giving me the RSS feed. Since I don't know any of the languages that you asked for, I can't make any recommendations code-wise. Hope it can get you on your way, though.

Volt
Oh, the user agent! Very nice trick!
J. Pablo Fernández
wow, worked like a charm :) thanks !
choise