This is a hacky attempt at streaming stuff from iTunes/iPhone to Squeezebox Server via AirPlay. It's been tested with:
- Squeezebox Server 7.5.4 (r31792)
- Mac OS X Snow Leopard
- iPhone 4, firmware 4.3.3
It starts publishing its services when the first Squeezebox connects. And automatically stops again when the server stops or the Squeezebox disconnects. Since I only own one Squeezebox the support for multiple squeezeboxes is not very good. The server will simple pick the first available Squeezebox and start streaming to it.
It seems that iTunes have some trouble with multiple AirPlay services on the same machine. But more investigation is needed.
- Matthew Flint
- Mads Tandrup
Squeezebox Server, Avahi, OpenSSL and probably other stuff.
For Mac OS X I needed to install lame. brew install lame
- git clone https://github.com/tandrup/SquairPlay.git SquairPlay
- cd SquairPlay
- git submodule init
- git submodule update
- cd shairport
- make
- make a soft-link to your Squeezebox Server plugins directory from SquairPlay: On Linux: sudo ln -s /usr/share/squeezeboxserver/Plugins/SquairPlay /path/to/SquairPlay/ On Mac: sudo ln -s ~/Library/Application Support/Squeezebox/Plugins/SquairPlay /path/to/SquairPlay/
- Adjust paths in Plugin.pm and custom-convert.conf (in the SquairPlay directory)
- restart Squeezebox Server
- Play something in iTunes or on iPhone
- Connect iTunes/iPhone to the AirPlay instance which should now be available
- Your Squeezebox should now begin to play
- Prevent 'hairplay' from using a new port each time it restarts
- Fix the "wav" and "flac" entries in "custom-convert.conf"
- Provide a settings page where user can enter the AirPort private key. We probably shouldn't distribute the key with the plugin
- Investigate whether the AirPort protocol sends metadata about the currently-playing track?
Probably many, including:
- It's fragile
- The quality isn't great
- Only the mp3 conversion is currently close to being functional
- Think the sample rate might be wrong, because music skips
- There's a lot of buffering, so it takes a long time for audio to start or stop