The techie way of liberating the podcast URL from iTunes

Jon Udell is not happy about having to transcribe podcast URLs that iTunes displays, but does not allow to copy. While the general point about lock-in is good, here is a quick techie workaround in a meanwhile.

However much iTunes may want to hide the URLs, at some point it has to actually retrieve something from it, and do it using standard network protocol.

Enter Ethereal, open-source multi-platform network protocol analyser. Using it to get the URL is a serious overkill, but the tool itself comes useful over and over again in many situations.

The steps to snag the URL are:

  1. With iTunes already open, start Ethereal up and run capture in non-promiscuous mode with ‘tcp’ as the filter.
  2. Go to iTunes and do ‘Update podcast’ on the podcast you want.
  3. Let the update happen and stop the Ethereal capture. You should now have a lot of packets in the Ethereal’s view.
  4. In the filter section (this is different filter from before) enter: http.request.uri contains “xml” .
  5. This should show only the packets that are http requests for files with xml in their name. If nothing shows up, try http.request.method as filter. If there is still problem, try http and see if you have any traffic on the chosen interface at all.
  6. Assuming you finally have the right request, you now do right-click-menu/Follow TCP Stream and copy the URI and host from there.
  7. You are done. It sounds a bit long, but takes about 30 seconds after installation is done and correct interfaces are figured out.

For more advanced HTTP work, it is also worth going to the preferences for Ethereal and make sure that packet reassembly is enabled for all levels of the network stack (HTTP, TCP, IP).

BlogicBlogger Over and Out

5 thoughts on “The techie way of liberating the podcast URL from iTunes”

  1. I don’t understand why you just don’t get them from individual podcast files themselves – and avoid having to use iTunes altogether.

    In mp3 podcasts this info is in these id3 tags (v2.2), the feed is on WFD; the episode is typically on TID:
    === TID (): http://www.pbs.org/pov/pov2004/wattstax
    === WFD (): http://www.pbs.org/pov/rss/podcast.xml

    for m4a files, you can use AtomicParsley to get at the atoms that carry the metadata:

    Atom “purl” contains: http://www.washingtonpost.com/wp-srv/mmedia/vipod.xml
    Atom “egid” contains: http://media.washingtonpost.com/media/podcast/120805-8v.m4v

  2. I have a nice hammer (Ethereal), which I knew how to use. I did not know about AtomiParsley, nor thought of id3 tags. Obviously, neither did Jon, or he would not have written the original entry.

    Another approach is offered at Dekstop.de, where Martin Dittus suggests using iTunes OPML export. Unfortunately, I was not able to get it to work, as OPML export did not exist in iTunes 6.0 and iTunes 6.2 crashes every time I try to use that function. But it might work for someone else.

    In summary, it is good to see that with my article, I triggered more than one explanation of how to make Jon’s problem go away.

    Alex/BlogicBlogger

  3. Wow, this is a lot of effort for getting the URL. I have an easier solution:

    http://itunes.so-nik.com

    A simple script i created a few months ago that can either search the iTunes store directly, or you can paste an iTunes podcast link. Either way, it will return the DIRECT url for the podcast feed.

    I created the script to work from either a mobile phone or a desktop web browser, so have at it.

    Note: for the user that mentioned its in the mp3 files, its also in the page that itunes retrieves in a tag called ‘feed-url’ which is what i retrieve.

  4. Hi Lasavior,

    Nice link, but it did come 5 (FIVE!) years after the original solution. I am not surprised it got a bit easier since.

  5. Well 5 years or not, the way the script works has always been possible. iTunes is essentially a giant web browser so all you need to do is spoof the UserAgent to ‘iTunes’ and voilà, you can see the feed url in plain text. No sniffing, no sifting, just plain old copy & paste.

    And i did realize it was quite an old post, but in my googling for an answer (before i came up with one) i came across many pages, like yours, that im now going back and commenting on (because theres little to no solutions out there) in case someone else comes across it same as i did.

Comments are closed.