Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
README.rst

Python iTunes

A simple python wrapper to access iTunes Store API http://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html

Installation

Pypi package available at http://pypi.python.org/pypi/python-itunes/1.0

$ easy_install python-itunes

Or download the code from https://github.com/ocelma/python-itunes/archives/master and then

$ python setup.py install

Note

If you're using python version <= 2.5 you'll need to install simplejson. E.g:

$ easy_install simplejson

Examples

Search

import itunes

# Search band U2
artist = itunes.search_artist('u2')[0]
for album in artist.get_albums():
    for track in album.get_tracks():
        print album.get_name(), album.get_url(), track.get_name(), track.get_duration(), track.get_preview_url()

# Search U2 videos
videos = itunes.search(query='u2', media='musicVideo')
for video in videos:
    print video.get_name(), video.get_preview_url(), video.get_artwork()

# Search Volta album by Björk
album = itunes.search_album('Volta Björk')[0]

# Global Search 'Beatles'
items = itunes.search(query='beatles')
for item in items:
    print '[' + item.type + ']', item.get_artist(), item.get_name(), item.get_url(), item.get_release_date()

# Search 'Angry Birds' game
item = itunes.search(query='angry birds', media='software')[0]
item.get_version()
item.get_price()
item.get_url()
item.get_seller_url()
item.get_screenshots()
item.get_languages()
item.get_avg_rating()
item.get_num_ratings()

Lookup

import itunes

# Lookup Achtung Baby album by U2
U2_ACHTUNGBABY_ID = 475390461
album = itunes.lookup(U2_ACHTUNGBABY_ID)

print album.get_url()
print album.get_artwork()

artist = album.get_artist()
tracks = album.get_tracks()

# Lookup song One from Achtung Baby album by U2
U2_ONE_ID = 475391315
track = itunes.lookup(U2_ONE_ID)

artist = track.get_artist()
album = track.get_album()

Caching JSON results

import itunes

if not itunes.is_caching_enabled():
    itunes.enable_caching('/tmp/itunes_cache') #If no param given it creates a folder in /tmp

#From now on all JSON results are cached here:
print itunes.__cache_dir

Tests

$ nosetests tests
Something went wrong with that request. Please try again.