Audio enthusiasts who prefer to listen to music on their existing speakers have been waiting for some time to see AirPlay 2 cracked, and that day has now arrived.
Three developers who have been working on the problem for some time say they have now done it…
The original announcement was made in a Slack group, and then posted to GitHub.
Guys… ready? I can finally confirm I got airplay2 working, including multi-room! Audio streaming data correctly recovered, decrypted and decoded!
Apple uses a proprietary streaming protocol which means only speakers that have licensed the tech from Apple can receive and decode the audio. But that protocol has now been reverse-engineered.
What this means is that multi-room playback from iOS devices will be possible to any speaker system when connected to something like a Raspberry Pi running an app designed to receive and decode AirPlay 2 audio streams.
The developer who made the announcement was quick to point out that cracking the protocol is only the first step: the team still needs to build an app around it before it can be used.
The code I have is rather a python prototype for debugging/reversing not meant for running in “production”. You might have read in this channel that @iostat is working on a cool Rust implementation of AirPlay 2. A bit of patience and I’m sure it will happen.
AirPlay 1 had long been cracked, so there are already apps like shairport-sync which allows iTunes to send music to non-supported speakers via a small computer. There’s a tutorial here on how to do this on a Raspberry Pi.
Apple’s AirPlay is an incredibly useful feature – assuming, of course, that you have enough Apple products to make it work. As you probably know, AirPlay allows you to sling from an Apple device to another device. But while Apple has been a little nicer than usual about licensing the tech out to third-party companies, there’s still a good chance that your particular stereo isn’t AirPlay-capable. That’s too bad, but its’ a problem you can solve with – you guessed it – a Raspberry Pi. You can actually make a Raspberry Pi AirPlay receiver with nothing more than a few commands in Terminal.
However, although multi-room playback using AirPlay 1 is supported by iTunes, streaming from an iOS device requires AirPlay 2. Now that we’ve seen AirPlay 2 cracked, it shouldn’t be long before you can do the same thing from an iOS device.
If all this sounds like too much trouble, there is an increasing number of AirPlay 2 speakers and receivers available. However, you do need to check the specs carefully to ensure that AirPlay 2 is specifically listed, as a lot of companies include the term in their SEO keywords when the product only supports AirPlay 1.
You can find some recommended AirPlay 2 speakers in our audio gift guide.