How to Stream Your iTunes Music Over the Internet
I keep all of my iTunes music stored on a Drobo attached to an Airport at home. This frees up valuable space on my laptop and lets me listen to it via Front Row on my TV as well. It's a much more convenient solution all around.
The only problem is that I lose access to my music when I'm on the road or at work. I've seen other services or 3rd party apps that let you stream your music online. They work well enough, but I've always thought it silly to pay for a feature that iTunes used to have. In honor of iTunes' new 8.0 release this morning, here's my simple workaround.
First off, you'll need a Mac at home with iTunes open that is always connected to the net. In my case, that's a Mac Mini in our living room. It also needs to have "Remote Login" (ssh) enabled in System Preferences → Sharing.
Then, poke a hole in your router's firewall to that machine on TCP port 3689. Here's a screenshot of my router's settings:
(Note: your computer's IP address might be different than mine.)
Then, with that done, anytime you want to listen to your music elsewhere, run these two commands in Terminal on the Mac you're listening with — not your Mac at home.
ssh your_username@your-home-ip-address -N -f -L 3689:your-home-ip-address:3689
That creates a tunnel from port 3689 on your local machine to port 3689 on your Mac at home. (That's why you needed to open the hole in your firewall.)
mDNSProxyResponderPosix 127.0.0.1 squeal "My Music" _daap._tcp. 3689 &
That creates an iTunes Bonjour broadcast notification locally which points back to your Mac at home. In other words, it tricks your copy of iTunes into thinking there's a Mac nearby sharing its iTunes library. When iTunes tries to connect, the traffic is automatically rerouted to your other Mac.
Sidenote: if you don't have the mDNSProxyResponderPosix command installed on your Mac, I have download links at the bottom of this post.
So that's it. No need for third party software. When you open iTunes, you should see your music library appear in the "Shared" section of the sidebar. (Much to my excitement, the newly announced Genius playlists appear as well!) You can close the Terminal window once you've connected to your music library. (The mDNSProxyResponder command needs to stay active until then.)
Making it Better
To speed things up a bit, I'd put those two command into a shell script and place it in your ~/Library/Scripts folder. I call mine
music-tunnel. That way, you can run that one command and have everything up and running automatically.
Or, if you're feeling adventurous, you could wrap the whole thing inside a simple Cocoa app with a nice On / Off button. But that's a project for another day...