Wednesday, June 10, 2009

Obsessing Over My Music Library

Update: See below for edits regarding iWatchSyncer.

Most of my music listening occurs on my laptop at work, but most of my music library is on my desktop computer at home. A friend introduced me to Dropbox, which has allowed me to mostly easily transfer music between home and work, but I still had a problem. Often, I'd randomly think of a song that I hadn't heard in a while, and, inevitably, it wouldn't be one of the ones I had transferred to my laptop. Sometimes I'd remember to remedy that when I got home, but I knew I could do better. Finally, as of this past weekend, I can.

I'm still working out some kinks, but I can now:
  • Access any song in my library from anywhere (as long as I have internet access, which I do as long as I have my phone and/or a laptop).
  • Access my library through an easy-to-remember URL.
  • Download any track in my library to whatever computer I'm on (this one doesn't seem to work on my phone yet, unfortunately).
  • Play any track from my library, as long as I have the Flash player.
  • Add newly acquired music to my library from any computer.
How did I accomplish this wonder of modern technology? Read on. Note: These are instructions for Windows. If you want to do this on Linux, you can probably do it much more easily. If you want to do this on Mac, there's probably a way to do it, but I don't know what that is.

1. Install iTunes.

I would have preferred to do this in a player-neutral manner (particularly because iTunes sucks for the "add to my library" step), but the share-the-library-online program uses your iTunes library, so c'est la vie. The more organized you can get your library in iTunes, the better. Mine is currently terrible, but Lifehacker has at least one post every week about a new tool that will make tagging and organizing your iTunes library easy. So far they haven't, but I keep hoping.

2. Install pulpTunes.

This is the meat of the process, the thing that will share your library. Two things: If you have a router, you'll have to open up port 15000 for it (specifically, you'll have to direct traffic on that port to the machine that's running it). Instructions for how to do that are included, and vary by router. You should also set up a password for it (both an admin and a normal user, if you want to give access to anyone else); that isn't enabled by default. On Vista, it may also be necessary to run this as admin (I'm not sure).

3. Set up Dynamic DNS.

This step isn't strictly necessary (especially if you have a static IP address or don't reboot your router very often), but I wanted to make this easy and stable, so I set it up. Be sure to use the auto-updater app from DynaDNS, so your alias will update if, for example, there's a power outage wherever you're hosting your library.

4. Get Dropbox.

Again, this isn't strictly necessary, but Dropbox is sweet, and adding tracks to your library from anywhere is nice. Set this up on any machine that you use often, but you can also access it online (so anything you put in your Dropbox is already accessible from anywhere, but I'm assuming you want to have more than 2GB of music available).

5. Install iWatchSyncer (for now).

I am not in love with this solution yet, but it's the best I've found (Update: It does everything I need it to do; I think the LifeHacker review sold it short, or perhaps I just misunderstood what it did). I wish iTunes would just do this automatically like every other music player, but oh well. Set this up to monitor your Music folder in Dropbox. In theory, Whenever you dump something into that folder (from anywhere), it'll get added to your iTunes library.

I say "in theory" because, although this worked great when I first tested it, it doesn't seem to be updating as quickly as I'd like. I need to look into it more, and will post an update when I have one. It's possible I just have to reload my pulpTunes instance when I get home to push the update; I'm not sure yet. More info on that when I have it.

The drawback of iWatchSyncer (versus the other, similar program Lifehacker recommended) is that it can't recurse subdirectories; you have to dump anything you want synched "flat" into your Music folder (ie, as the file only, without any folders). The problem with the other one Lifehacker recommended is that they wanted me to give them money in order to actually use it, and I didn't want to actually pay for any of this.

6. Set up all of that stuff to load when Windows loads.

Some of it will do it automatically, some won't. Make sure it all does, mostly in case your power goes out.

That's it! Trust me, it's easy. Let me know if you have any tweaks to make it work even better.


Jon Harmon said...

iWatchSyncher wasn't starting when Windows started, and then my machine rebooted, thus no iWatchSyncher was there yesterday. I think. It's up and running now (and added to my Startup properly, after doing a search to find the actual executable), and seems to be doing its job. I'd still like to find a better option, but it will do for now.

Jon Harmon said...

Now that I have this all set up... it looks like the new Opera 10 release might do it much easier. More info after I check it out...

Jon Harmon said...

Ok, the Opera Unite library sharing isn't nearly as cool. I'm sticking with the stuff described above.

Depechie said...

Hey Jon,

First up, nice detailed share of how you set this up! I think I'll try this to share my library one day :)

Secondly, I'm the programmer of the iWatchSyncer tool and I'm glad it can please you ( for now ;) ).

But I don't understand your comment about the subfolder issue, normally it should detect any tracks that are dropped inside the watchfolder regardless of how many subfolders deep it has been dropper.
If this isn't the case, could you give some examples, I'd love to get that 'bug' sorted out...

Jon Harmon said...

My apologies! When I first used it, as I understood it the files had to be "flat"... but I'd forgotten that "rule," and it definitely is recursing subdirectories. I'll update the article!

Honestly, I can't think of any issues I have with iWatchSyncer. Now that I have everything set to launch when my computer reboots, it seems to be working fine.

Depechie said...

Thanks for the update Jon :)
Anyhow, you gave me a good new option that I will try to work out on a newer version! And that is that a user can get have a choice to auto start the software at startup of windows!
Because your solution is great but if you would ever install a newer one the link you have in your startup folder would be wrong ( each new version gets a new directory in windows - a .Net install feature for ClickOnce applications )

Jon Harmon said...

Depechie, if you're still watching this, I have another feature that would be great: Add a checkbox option to delete the file after it's added to iTunes. When you add it to iTunes, it gets copied to my iTunes music folder... but the old file is still there, so it's hard for me to tell if it has copied. Obviously this is only necessary/useful if your iTunes folder != your iWatchSyncer folder... but that's how I use it :)

With that and one other trick I found (using Belvedere from Lifehacker, post about it coming soon), I think I can complete this system :)

Depechie said...

Well Jon... just keep your eye out for a new version :)
I'll see what I can do with that file deleting feature!!

Jon Harmon said...

Sorry, Depechie, I hate to do this... but it looks like iWatchSyncer might be unnecessary with iTunes 9. I'll be back later after I get it setup to explain why/how...

Now, if you could make one program that does all of the stuff I describe here, THAT would still be very useful... :)

Jon Harmon said...

So, iTunes 9 has an "Automatically Add to iTunes" folder. That makes iWatchSyncer unnecessary, if you're up for some Dropbox-fu.

I don't know the exact paths on Windows XP, but on Vista you should do something like this:
mklink /D "C:\Users\USERNAME\Documents\My Dropbox\Desktop iTunes" "C:\Users\USERNAME\PATH TO YOUR iTUNES LIBRARY\Automatically Add to iTunes"

That will map your Auto-update folder in iTunes into your Dropbox, allowing you to drop things in from anywhere to add to your library.

Now PulpTunes just needs to get better at resetting itself. You can actually fix that with Belvedere from Lifehacker and a .bat file, but it's really ugly and I don't want to suggest that to anyone yet :)

Depechie said...

Hey Jon,

I've not been able to check out iTunes 9 ( only installed it yesterday ), where is this new feature located? ( so I can put it 'on' myself ;) )

I've been looking at your requests and I have to say they are not that easy to program... in other words they are still open.

Depechie said...

Hé Jon, just found an url with some details:

Just wondering though if iTunes would 'copy' the files itself to my external hd after the import? Because I don't let iTunes copy anything on import... folder location is also weird. But glad to see apple has finally added something ;)