Blog Post

How-To: Create Your Own iTunes LP

iTunes LP Logo

The iTunes LP is the new format Apple has been pushing in iTunes. It’s more like a DVD than anything else. You have menus, music, photos, liner notes and videos. Since this is such a fresh format, not many albums are available in it yet. The good news is, you can make your own.

I’ll take you through the process of creating your own iTunes LP that you can distribute yourself.

Getting Started

Apple offers a template to help you out, which can be found here (ZIP). After it is unzipped, you should see an iTunes-LP-Example.itlp file. Right click on the file and select “Show Package Contents.”

If you open up the index.html file in Safari, you’ll see the LP.

First, we want to edit the iTunesMetadata.plist file in TextEdit and enter some info about the LP we are creating. I decided to do the Neutral Milk Hotel album, In the Aeroplane Over the Sea. Filling out this information helps iTunes import the LP correctly. Make sure the artist and album name are correct at a minimum.

Now we can get into the good stuff. We want to create the background image and the bleed image. The bleed image is what the user see’s if they are viewing the album at a resolution larger than 1280×720. Open up the images/interface/bleed.png file in your image editor of choice. For now, you might just want to make the image a solid color, otherwise it may look cluttered.

The buttons are simply images that can be replaced easily. The LP format is really just HTML with some nice JavaScript and CSS. Because of this, you can make your LP’s as complicated as you see fit. The CSS folder contains all the CSS files that reference the positioning of the buttons. Editing the home.css file, I can change the position of my title on the home page.

The one thing your LP will need, no mater how simple, is music. The music doesn’t live inside the LP itself. The LP file just references songs in your iTunes library. There is an audio folder, where the intro music that plays on the LP lives. Apple suggests keeping this short, so I opened up one of the songs off the album in iTunes. I then edited the Start and Stop times.

After I made sure it played back properly, I created an AAC version of it by right clicking and selecting “Create AAC Version.” This created a new m4a file that was the specific length I wanted. I renamed the file to intro.m4a and replaced the original intro.m4a file in the audio folder.

Next, lets add some photos. I used Google to grab a handful of images related to the band. Then I replaced the photos in the images/photos folder and used the same naming convention of photo01.jpg.

The photos will get resized and cropped automatically to 600×400 when they are displayed, so size doesn’t seem to be too important.

Now I want to add some liner notes, so I used the band’s bio information from Amazon. Just edit the views/linernotes.html file and add your own text.

I decided that I didn’t want the credit or video sections so I deleted them out of views/home.html.

Then I had to edit the css/home.css file to move the liner notes button up.

Things are really starting to come together.

Adding Songs & Lyrics

Adding songs is probably the hardest part of the whole iTunes LP creation process. The LP references songs by their XID. The XID is a serial number of sorts that Apple assigns to every song available for purchase in the iTunes store. This means the LP can play any song that it knows the XID for, regardless if the user renamed the file in anyway. If it’s a song you didn’t purchase from iTunes, you have to create your own XID.

We’ll look at how to find the XID for songs you’ve purchased from iTunes. First, you need to enable author mode for iTunes. Make sure iTunes is closed and then run this command in Terminal:

defaults write WebKitDeveloperExtras -bool true

Now open iTunes back up, right-click on a purchased song and choose Get Info. Under the Info tab you will see an XID field. That is how to tell your LP what song to play.

But what if this isn’t a song you purchased through iTunes? Then the XID field will be blank. We need to generate our own. Go to Terminal and enter the following command:


You will now get back a random UUID string that can be used for a song. You have to do this for every song so they each have a unique XID. Find your song in iTunes and get to the XID field. Apple wants us to prefix this UUID with TEST:uuid: to create the complete XID string. Now our song has a unique XID that can be referenced in our LP.

There are two places these XID’s need to be entered. The manifest.xml file and the controllers/data.js file. First we edit the manifest.xml file and replace the default XID with the one from our track.

Then we edit the data.js file and do the same.

Now open up your LP in iTunes, play the first song and admire your work. These same steps need to be done for every song on the LP.

Let’s add some lyrics to our song next. The lyrics are just an image file located in the images/songs/ folder. They are named simply lyrics01.jpg and so on. You can either just create a simple image with text in it or get creative. What about scanning lyrics from the original vinyl/CD art? You could go even further and scribble the lyrics down on paper then scan it in.

Replicate these steps for each song and remember to be creative. The LP will only be as cool as you want it to be. I like to think of it as digital scrap-booking. If you love the music, you will be inspired to go all out.

If you create an LP and use XID’s from songs purchased through iTunes, you could give the LP to someone else. As long as they also purchased the songs in iTunes, it will work for them. You could also find a small local band that you dig and create one for them. That should get you some backstage passes.

64 Responses to “How-To: Create Your Own iTunes LP”

  1. Hi,
    I created my first iTunes LP, but I have a problem:
    My album has more than the 9 template tracks, in fact 16. I already managed to add them to the iTunesLP, but it won’t work on the “Song List” site. I added buttons and all, but if I click them, they won’t go to the lyric window.

    In the file songs.js it looks like this:

    var songActions = [];
    for (var i = 0; i < appData.songs.length; i++) {
    var padded_index = (i < 9) ? '0' + (i+1) : (i+1);

    I already tried editing the 9 to a 16, but it won't work.

    Can someone please help?

  2. After a half hour of picking apart a purchased LP, I concluded that it relied on some metadata—that I now know as XID—but didn’t yet have access to. Kinda sucks that it can’t just point to the file, but at least now I’ll spend a few hours less on my album production, thanks to you!

  3. i like this article so much, its very clear, better that the apple guide!
    but i have a problem, im on windows 7
    working with ituines 10

    now when i reach the point where i have to link the songs, i didnt find the XID field on the songs info, instead i found something called “Grouping” is it the same but with different name?????

    i hope that u explain this step in more detailes, for windows user :)

    Thanks so much


    I completed everything except the lyrics and I am stuck how you put the iTunes LP into iTunes because we don’t have a itlp file How do you open it?

  5. Alejandro G

    command in Terminal:
    defaults write WebKitDeveloperExtras -bool true

    in windows 7 how do this please i can’t do it? pleaseee

  6. Hello,
    Okay, clearly getting more than 9 tracks on my first LP was a fluke, because I’ve gone back over this a few times and cannot fix this issue in the second one. But maybe someone can work it out from this.
    The second album would play all the songs from the 17 lyric pages, but could not access the lyric page from song 10 to 17.
    So I copied the song.html of the first LP into the views folder of the second. I could now access the lyric pages of tracks 1 to 13 (the first LP has 13 songs in two columns), but when I added a third column to the second LP this brought the original problem back – tracks 10 to 17 could not access their lyrics page.
    I then tried copying the song.html from the original example. I then had 3 columns of nine songs, but when I added more songs – same problem again!!!
    Please help!!!

    • Ok, today I finally figured out the video. Well I should say someone else figured it out who is also creating an LP. In the data.js file in the video section the code should look like this

      videos : [
      { XID : “TEST:uuid:1EDEA187-694E-4FFF-BE1D-0037E24297B4” , duration: ’03:24′ },

      obviously with your XID in place of the one above and the manifest should also have the XID in the video spot. I have the video on the playlist for the album. Mine seems to work ok now. Hope that helps!

    • I have a track list of 14 on my LP and they all seem to show up fine. Maybe there’s just a simple piece of the code missing by mistake? Not sure why it won’t work. Sorry.

  7. Chad,
    I’m still stuck on this myself. I’ve also tried creating an iTunes extra, but I could only attach the movie and no extras. I think the two issues are relared.
    Plus, my second LP won’t correctly access the lyrics page for any of the “extra” songs (i.e. track 10 onwards) unless I go to the lyrics of track 9 and arrow left. Yet there are no problems with the first LP doing this.

  8. Hi,
    I followed your instructions and have successfully created my first iTunes LP – kind of… I can play all the songs via the LP but I can’t get the music video to work. :P
    Is there any chance you could post another example of how to add music videos?
    Thanks the tutorial. Been eager to give it a try for ages.

    • i can’t get the video to work either. I’ve even went and looked over Apple’s instructions. I don’t know html or whatnot but I’ve been able to create everything but the video working. I’ve looked all over the net and can’t find anything. I may go insane!

  9. What if I have more than 9 songs? I have 13 songs in my album. I already added the buttons I needed in the songs list screen, but when I click on them, nothing happen. The buttons I added doesn’t bring me to the lyrics screen.

  10. Is it possible to set the gap time between individual songs?
    e.g.: 2 seconds between tracks 1 and 2, 0.6 seconds between 2 and 3, gapless/seamless playback of tracks 3 and 4, etc…


  11. @Daniel A. Shockley
    “defaults write booklet-authoring-mode 1” (without quotes obviously) in Terminal worked for me in 10.6.2 and same iTunes version

  12. Daniel A. Shockley

    I tried the enable WebKitDeveloperExtras and it appears to not be working. I made sure that iTunes was not running before I ran the Terminal ‘defaults’ command. I also confirmed that the command had worked by running:
    defaults read WebKitDeveloperExtras
    which returned a value of 1. Despite this, when I right-click and choose Get Info, instead of the XID field, I see the Grouping field that has always been between Album and Composer. Perhaps there is something else that needs to be done? I have iTunes 9.0.2 (25) on Mac OS X 10.6.2.

  13. subsonic

    Ummm….so where can one get this Neutral Milk Hotel LP (for one of the greatest albums of all time….that’s right, I said it)? It’d be a shame for all that work to go to waste….