Note: To all of you that have found this post while searching for a way to copy songs FROM a Shared iTunes Library, read this. If you want to copy TO another iTunes library, then continue.
In my search for a solution to this problem, I have found that many other people find themselves in similar situations. Here’s a basic statement of the problem:
- I have a laptop that I use at home but often take with me
- I have a desktop at home with much more storage space than my laptop
- I want to maintain all of my music on my desktop, but keep a subset on my laptop for playing when I’m not on my home wi-fi network.
Add to that my additional needs that…
- I don’t even have a monitor, mouse or keyboard connected to my desktop machine
- And therefore, I want to control adding music to my library completely from my laptop
The best solution that I was able to find from searching the internet is this dude that has his laptop using an iTunes library on a shared network drive on his server. Then, when he leaves the home network, he has a script to switch to a local library. The worst thing about that setup is that it could be complicated to add songs from your network server to your local library before disconnecting.
My solution is to add new songs to my local library, and then when I tire of them or need to free up some disk space, I send them to my shared library on the server. This way, I always have my newest music on my laptop, but if I want to listen to some older songs while I’m at home, I can connect to the shared network library inside iTunes. The trick to my solution is how I send the songs to the shared library, hence the title of this post.
I have written an applescript that will…
- Take the tracks I have selected in iTunes
- If any album art has been downloaded from the iTunes Store, and is therefore not embedded in the song file, embed album art into the song file
- Copy the files to a staging directory on the network server
- ssh to the network server and run an Automator script that…
- Takes all the files in the staging directory
- Adds them to the iTunes Library, which copies the files
- Deletes the files from the staging directory
If you put the script in your “~/Library/iTunes/Scripts” directory, it will be available from the menu bar when you are in iTunes.
Note that, for the ssh to work without prompting you for a password, you must set up ssh key pairs. There are plenty of pages around telling you how. This is not one of them.
The Automator Workflow
This the Automator workflow that runs on the server. You have to export it from Automator to be an application.
Fitting it all together
Obviously, you’ll have to edit the applescript to point to the correct staging directory, server, and location of the AddFilesToITunes.app. Then you just select the songs you want to copy in iTunes on your laptop, choose “Copy Songs To Archive Server” from the script menu, and watch them appear in the shared library. You can then delete them from your laptop if you want, and still listen to them over the network. I wouldn’t do more than 50 or 100 at a time, though. I’ve had “This script has stopped responding” timeout errors when I try more.
Questions and Comments
If you’re too lazy or paranoid to sign up and leave a comment here, you can email me at erikwordpressplugins -at- gmail. Happy song archiving!