How to get iTunes Library to stay pointed to the NAS

itunesnas

I recently moved my iTunes library to my Netgear ReadyNAS NV+ (all relevant file operations on the NAS are using AFP protocol). The library had previously been on my Mac Pro, in my ~/Music directory. In iTunes Preferences > Advanced, I changed the path of the iTunes Media Folder to the Media volume on the NAS, so that it now has the path /Volumes/media/Music/iTunes Media. In iTunes, I chose File > Library > Organize Library, then chose Consolidate Files from the Organize Library dialog. This made iTunes copy all of the files from the Mac Pro's iTunes Media Folder to the iTunes Media Folder on the NAS. After that, I deleted the 60 GB of files in the Mac Pro's local iTunes Media Folder (the boot drive is an SSD, so I needed the space).

Two questions:

  1. On the Mac Pro, the setting for the location of the iTunes Media Folder has changed back from the NAS to the local folder twice now; I've had to reset it back to the NAS. Some apps have been updated, and I discovered that the updates had been downloaded to the local iTunes Media Folder. After I reset that location to the NAS and re-ran Consolidate Files, the apps were copied to the NAS. Any idea what's causing iTunes to "forget" the NAS location and revert to the local folder, and how to solve that problem?

  2. After I moved the library on the Mac Pro to the NAS, I also pointed the copy of iTunes running on my MacBook to the NAS, so that it could share the files (I can still share the files using Home Sharing from the Mac Pro, of course). It appears that the MacBook doesn't seem to simply read the state of the library from the NAS; it erroneously shows that 84 mobile apps need updating, and some TV shows that I downloaded on the Mac Pro don't appear on the MacBook. I'm OK with simply using Home Sharing on the MacBook if necessary, but I was hoping the two machines could share the same library on the NAS and would stay in sync. Can you explain the MacBook behavior? Is there a fix that would keep the iTunes libraries on the two machines in sync?

Best Answer

I can answer the second part of your question. Since you just updated the MacBook's iTunes settings to point to the NAS, it's iTunes library file still resides on the MacBook. This is a .itl file in your ~/Music/iTunes folder.

iTunes relies on this database to tell it what's in the media folder. If you add stuff to the media folder without adding it through iTunes (i.e. just dropping files in Finder, or using another copy of iTunes on another machine) then that .itl database does not get updated.

So when you add files through iTunes on your Mac Pro, it updates the .itl database on your Mac Pro, but not your MacBook, so the MB can't see those files. If you add anything through iTunes on the MB, the Mac Pro database won't have it, since the copy of iTunes that connects to that database did not process the files.

I have a similar setup to what you're doing: iTunes media on an external drive connected to my iMac, and a MacBook which I use ONLY Home Sharing on.

You might get the idea to move one .itl file to the NAS and open it in iTunes on both machines, and this will work, but you can/should never have it open in both at the same time. That .itl file is really just an SQLite database, and they don't allow simultaneous access, so I've never even attempted this.

With respect to your first question, check ~/Music/iTunes and see if there are any old library (.itl) files. It's most likely that iTunes is opening an old copy or a backup of the database. If you duplicated the database or started a new one before moving your media, this might be the cause.

Start iTunes and make sure the media folder is set correctly or make some other change in iTunes. Now go to ~/Music/iTunes and look for the .itl file that has most recently been modified. Move all the others out of the folder.

Quit iTunes and restart it while holding the Option/Alt key. This will bring up a dialog that lets you select which database to use. Select the .itl file you left alone and it will continue using that as the default library.