Simplify Media to share music
So, the previous blog post started a huge discussion of what's the best way to synchronize your data, especially music, between your work laptop, home laptop and home media center. For me they're MacBook at work, ThinkPad X40 for home laptop and Mac mini for the media center.
I knew there's a solution like VPN using Hamachi but i guessed there's a better technology for it since it's 2008, and viola, SImplify Media allows you to share your music at home from remotely, as well as sharing music upto 30 friends. No router config is necessary and it's free, works on both Mac and PC. I installed the software both on my work MacBook and home Mac mini. Just does what I want. Well done.
Copying iTunes Library from PC to Mac
So the only problem remaining is that I still own the other library (relatively new songs) on ThinkPad X40 drive. I usually listen to these songs using iTunes + Airport at home, and also syncing these to my iPod nano (which is pretty much short of the disk space), but it'd be much better if I can just copy those files to Mac mini.
Copying iTunes library on one computer to another, seems to be a hard problem to solve and it's a shame for Apple. Of course the obvious solution for that is just copy the folder containing mp3s, m4as and m4p (iTunes DRMed files) to the new machine and import these files. But that way song metadata like rating will be lost.
The apparently-easiest solution is to use iTunes's built-in "Export Library" menu, but again shame Apple, this doesn't do anything more than just dumping file information to a giant XML file. Files are still located in "My Music" folder and there's no way to copy those files while keeping associations to them. LAME.
So quick googling shows that there's a software to solve this problem: iTunes Library Mover. This does what I want: munge Library.xml to change the <Location> property to new portable drive and actually copy over the files. The video on the site is very easy to understand if my explanation doesn't make any sense to you. I tested it, but unfortunately, the software doesn't handle Unicode filenames very well. Alas Windows.
So ... I ended up writing my own tiny perl script itunes-mover.pl to do the same thing, but with special care on Japanese filename mp3s. It needs some tweaks and only runs on Windows with ActivePerl, but it's not that difficult to change it to run on Mac, if you want to copy iTunes library from Mac to PC or Mac to Mac.
iTunes slowness and Unicode woes
That way I could dump all music files on my PC iTunes and imported all of them to my Mac mini iTunes, while keeping the album artwork and ratings. Apparently there's a playcount metadata in library.xml but it was not preserved. But anyway, now I can listen to my entire music library from work. Great thing, but still two other issues.
The default iTunes has a problem with non-ASCII (Japanese Shift_JIS especially) MP3 ID tags and i've got lots of corrupted tags like you can see. So if you have non-English artists or songs in your library, better patch your iTunes with Tune-up iTunes before importing the entire library. I should've done that.
The other thing is now that the iTunes has 5000 songs, 25GB on extra hard drive via USB 2.0 (HFS formatted), I'm finding the app constantly being slow, with that spinner thing in the center of the screen. I guess it's just USB connection is the source of the problem, but Library.xml should have all the data necessary to list the songs view and it's on its primary disk. Hmm.
Software hate still goes on... but anyway, it's getting a little better. Next thing: Free my music from iTunes store DRM protection. I did that using QTFairUse before dumping files on X40, but my Mac has 1000+ of those files already. I could copy these files back to Windows and run QTFU to decrypt and then sync back, but there seems to be Mac version of it: ffh. Might wanna write a frontend perl script to automate that process again...