Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Cover Art Server 1.4.2

by Jacob Weber

With code contributions from:

  • Tiny HTTP Proxy (Suzuki Hisao)
  • Simple Templates for Python (Armin Ronacher)
  • Boto project
  • Simon Long
  • Norman Gyhra
  • Mike Gill


Cover Art is no longer supported. In recent versions of iTunes, Apple started encrypting data in a way that I haven't been able to intercept.

What's New

If you're upgrading from a previous version, please read these notes carefully, then follow the instructions under "Initial Setup".

Version 1.4.2:

  • Fixed Amazon compatibility (added associate tag). You can optionally add a third line to amazonLicense.txt, containing your associate tag.

Version 1.4.1:

  • Updated instructions for Snow Leopard. Minor bug fixes.

Version 1.4:

  • Updated to use Amazon's new request authentication. You must update your Amazon license file to include the Secret Access Key (see below).
  • Fixed requests for music purchased from the iTunes Music Store.

Version 1.3:

  • Cover Art now runs a proxy server to intercept requests from iTunes. It is no longer necessary to turn off "Web Sharing". You should also remove any changes you made to your hosts file.


Cover Art allows you to load album covers into iTunes, without attaching them to individual song files. Instead, they are loaded into iTunes' database, so they're only stored once for each album.

Cover Art Server acts as an HTTP proxy. You can leave it running in the background, and it will pass on all of your normal HTTP calls to the right places. But it will intercept the requests that iTunes makes for album art, and handle them differently.

In addition, Cover Art provides a web interface for you to select artwork, and to search Amazon for album covers.


Works with iTunes 8.x or greater, on Mac OS 10.5 or Windows XP. Also compatible with other operating systems, with some changes.

You must have Python installed to run this script, and version 2.5.1 or greater is recommended. For Mac OS 10.5, the built-in Python will work. Mac OS 10.6 users should install Python 2.6.4 (see below). For other operating systems, you can download it from here.

Initial Setup

If you're using Mac OS 10.6 (Snow Leopard), the built-in Python has some bugs that prevent Cover Art from working. You should download version 2.6.4 or later from here. Then change the first line of coverArtServer.py to:


Users of other operating systems may also need to change the first line of coverArtServer.py, to point to their Python binary.

If you want the ability to search for covers on Amazon, you'll need a free Amazon Product Advertising API account:

  • Go to this page and sign up.
  • Once you're logged in, go to "Manage Your Account", then "Access Identifiers".
  • Copy your Access Key ID and your Secret Access Key.
  • In a text editor, open the file "amazonLicense.txt", in the same directory as these scripts.
  • Paste the Access Key ID into the file, followed by a return, then the Secret Access Key.
  • If you have an associate tag, add another return, followed by the associate tag.

The first time you use this program, you'll need to set up your system to use Cover Art's HTTP proxy, at http://localhost:9988:

On Mac OS X, duplicate your current location in the Network preferences pane, and call the new one "Cover Art". Select the new location's Ethernet tab. Under Advanced > Proxies, turn on Web Proxy, and set it to "localhost", port "9988". Apply the new settings.

On Windows XP, go to Control Panels > Internet Options > Connections > LAN Settings, and check "Use a proxy server". Then click Advanced, and set the HTTP proxy to "localhost", port "9988".


Make sure you're using the Cover Art HTTP proxy. On Mac OS X, you can use the Apple menu's "Location" submenu to switch to the "Cover Art" location.

At the command-line, cd into the directory with these scripts. Type python coverArtServer.py to start the servers.

If you have already run Cover Art, and you want to start from scratch, you can run python coverArtServer.py clear instead.

In iTunes, select any albums that have incorrect artwork, control-click them, and choose "Clear Downloaded Artwork". Then control-click again and choose "Get Album Artwork". Or, to get artwork for all albums that don't have it, choose "Get Album Artwork" from the Advanced menu.

The first time you do this, it won't actually get any artwork; it will just tell our program which albums need it. Go to http://localhost:9999 in your browser, to see a list of the albums needing artwork. When you click an album on the left side, we search Amazon for covers. If you don't find one, you can enter your own search terms and try again. Or if you know the URL of an image from another source, you can enter it. When you're done, go back to iTunes, select the same tracks, and choose "Get Album Artwork" again. This time, the images will be loaded into the iTunes database.

When you're done, press control-C to stop the servers. You can then stop using the Cover Art HTTP proxy.