What you’ll need
First, you’ll need a compatible iTunes music server. Unfortunately, Apple has decided to make their own music sharing intentionally incompatible with other applications. Thanks Apple. Instead, I’m using Firefly Media Server, which iTunes will gladly connect to.
In general, our goals are to tunnel port 3689 over SSH so that when programs connect to
localhost:3389, they’ll instead get the remote music server. Then, we’re going to rig Avahi (the Bonjour implementation that handles “announcing” services over a local network) to register localhost:3689 as a valid music server.
SSH into your machine, and set up the tunnel:
Now here’s a tricky part that I had to figure out: by default, Avahi will register services to your normal IP address, yet SSH will only forward traffic over the loopback address (127.0.0.1). We instead have to create a fake hostname that points to localhost, then create a service entry for that hostname.
avahi-publish-service -H Me.local Firefly _daap._tcp 6689
Spin up Banshee, and you should see Firefly show up in the shared library list. This only will work on your machine though, it’s not shared across the local network (even though other people can probably see it in their iTunes apps).