Mac – GitHub-Style Collaborative iTunes Backup

backupdata synchronizationitunesmusictime-machine

Alright, here's a funny question. I'm a DJ, and I use iTunes locally on my MacBook Air for my music. I also have my backup hard drive, to which I have copied my iTunes library to as the master storage. This backup of the iTunes folder is separate from the Time Machine Backups on the same disk.

I'd like to have just a select number of songs available on my machine (with it's wonderful, adorable 256GB SSD and all) and the entirety of my library on the external drive. When I get new music, I want to be able to add it to the iTunes library on the master disk so that everything is up to date. The reason for this is so that my fellow DJ can access that hard-drive with her own MacBook Pro to pull from the pool of music, and add to it with her own purchases.

Now, I realize that iTunes allows me to download songs I have previously purchased to my machine. This means I can pull purchases my assistant has made onto my local machine (and vice versa), and then also save them onto the master storage.

My real question is this: is there a way to succinctly sync the iTunes folder Time-Machine-style outside of the typical Time Machine backup location? I suppose it would work a bit like GitHub: there would be a central "repo" which all of the master changes are synced, and my assistant and I can pull what we need from it and add new songs to it, keeping the master storage up to date with every song we own.

The cumbersome way to do this would be to manually drag all of the new purchases into the iTunes Media folder when we buy them. There must be an easier way to do this! We want one big master library that we can easily sync to and pull from. Any cool way to do this?

(P.S. I am a programmer, so any sort of geeky or programmatic way to do this is heartily invited!)

Best Answer

Sounds like you want to do the following:

  • Have your itunes music stored to an external hard drive on download
  • Have a subset of the music locally on your laptop
  • Have a centralized repo, where your fellow DJ(s) can access the music

There are a few problems with a simple rsync between your external drive and their drives:

  • m4a rights managed files won't play on your friend's laptop without you granting their laptop access
  • as files are played, some meta data on the files are updated to reflect plays, likes, etc.

Having said that, you can work around the issues if you are willing to forego some of the meta information and if you are ok with authenticating your friends' laptop to use your music.

  • Dedicated Mac Mini or Mac Laptop or Windows machine running iTunes, with the full library downloaded and shared via the normal Apple Airplay/Network share
  • Your laptop and your DJ friends' laptops can then view/browse/stream the music from the central box. Meta information preserved as well as no need to move a hard drive around, all music available from one central place.
  • You may need to authenticate your friends itunes to be able to play your rights managed music.

The external hard drive route is basically the same, except that you basically rsync from your mac mini/archive box to an external drive. Requirement to auth a DJ friend's laptop still applies.

For your laptop which has a subset, you would just choose the songs you want from your library and import them locally into your instance of iTunes.

Re: Github style, probably not the best, since leveraging git would result in massive storage magnification anytime the play counter is updated/etc. Since the files are binary, diffs can't be stored.