AirConnect
AirConnect copied to clipboard
How do I say thank-you?
I just got AirConnect working beautifully on a Raspberry Pi with very little effort, connecting to Sonos.
Perhaps you're too modest to have a tip-jar in the README, but I'd love a way to say thank-you for all your hard work, @philippe44. A PayPal or Amazon wishlist link would be ideal ;-)
Matthew
Hi Mflint,
I was trying to install it on Raspberry Pi 3 but don't know what to do after executing the 'wget' to load the file on Raspberry. Would you mind sharing your procedure? My personal email is [email protected]
Appreciate your help,
Sean
Thanks Matthew - Such messages is a all I'm looking for :-)
Massive props! Spectacular bit of kit that just works! π
Thanks for making this bit of code!
@othyn @wlsnchrs: thanks! share with others
Just want to chime in and say thanks also :)
Made my Sonos a lot more usable since their native Spotify implementation has been skippings songs for quite a while for me, and I don't have to use the Sonos app to use apple music.
Also want to say thank you! This seems like superb code. It runs with very little overhead, and has been very stable. Some of the other solutions I have tried chew up major cpu cycles. I am using this to make chromecasts airplay endpoints so they can receive streams from Roon. Thanks again!
Absolutely, thank you a bunch @philippe44, awesome work!
Thanks Phillipe, really interesting work. Is there a community forum anywhere for users to share their experiences? If you need any feedback/help with debugging happy to help. I use it for Airplay -> Win 7 -> 6x Sonos devices.
Terrific work @philippe44! My multiroom Chromecast Audios (and their respective Groups) work flawlessly! I'm running your binary on MacOS High Sierra 10.13.4 as a service.
In order to make the bridge autostart and keep alive I created the file com.aircast.bridge.plist in ~/Library/LaunchAgents/ with
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.aircast.bridge</string>
<key>ProgramArguments</key>
<array>
<string>/Users/xxx/airconnect/aircast-osx-multi</string>
<string>-x</string>
<string>/Users/xxx/airconnect/config.xml</string>
<string>-f</string>
<string>/Users/xxx/airconnect/aircast.log</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>LaunchOnlyOnce</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
I agree that this is a great piece of work (Raspberry Pi and 4 Sonos devices)! One thing though, in the installation description in the readme, the command to download openssl 1.0.0 needs a tiny fix: +deb8u8_armhf.deb, the link you provided returned 404 for me. When setting everything correctly, there is no latency at all, this is purely amazing!
Thanks for finding out the link issue. There was a new version made available recently and I did not notice it.
Thank you so much for this aircast and airupnp, it rocks! :) Using it on Linux. Can we donate somewhere for you? :)
Thanks for the happy feedback. I don't accept donation, but I appreciate the intention!
Itβs really one of my favorite applications for my raspberry. Makes listening to Apple Music super easy.
The only question I have (@philippe44) is why is aircast and airupnp split up and not both put in one executable? (just wondering).
UPnP and Chromecast protocol are very different, as well as the device detection. That would make stiching the two pretty difficult and a funny code architecture
Just wanted to chime in here and say after about 30 minutes of searching to fix this problem finding your repository has made my week. I see you don't accept donations but should you need any development help or want a happy Scottish/Swiss gift basket to say thank you just say the word. Thanks again for your effort.
Thanks ;-)
Incredibly impressive work here @philippe44. Thank you.
Thank you for your work!
Ohh man. I so wanted to donate, but apparently you don't accept donations. You are a lifesaver for someone who decided to give up using Spotify on Mac OS. Keep up the good work, you good samaritan.
Thank you so much for this!
I have 2 grouped Denon Heos 1 speakers and in combination with AirConnect Airplay is flawless! Also good to know that the Heos 1 speakers also need the -l 1000:2000 latency setting just like the Sonos. Otherwise you get unpredictable uPnP dropouts.
Also just wanted to say thank you @philippe44 ! This software is awesome :)
Thank you @philippe44 Very nice and useful work indeed
Want to chime in here. This took 10 seconds to test on my Mac, 5 minutes to set up on my Raspberry Pi (and running as a service). Wonderful work!
Worked brilliantly first time, my Sonos will finally get some proper use! Thanks @philippe44. Excellent!
Thank you @philippe44 fantastic work! πβ€οΈπΎ
Got it working on a VM with Debian running on my Synology 218+. Everything working fine with 3 Play:1, one standalone and the other two grouped as a pair of stereos. @philippe44: Great work, thank you so much !
I just got AirConnect working beautifully on a Raspberry Pi with very little effort, connecting to Sonos.
Same here! It's such a useful software - thank you very much @philippe44 !
Turns out my digital radio supports uPnP - so now I have an AirPlay speaker in my Kitchen. Thanks for your work! My only issue was the libssl and libcrypto version on my Raspberry Pi. This was my quick and dirty fix:
cd /usr/lib/arm-linux-gnueabihf/
sudo ln -s libssl.so.1.0.2 libssl.so.1.0.0
sudo ln -s libcrypto.so.1.0.2 libcrypto.so.1.0.0
Thanks so much @philippe44, an amazing project!
Thanks @philippe44 !!!! π
πππππ
Hi @philippe44. You've saved me the price of an upgraded Sonos. I'm very grateful.
Thanks very much philippe44 !
It works just fine on my Rasp PI ...
BTW, you have some loyal followers in the German speaking world:
https://www.bjoerns-techblog.de/2018/02/airplay-auf-sonos-mit-airconnect/
Hi @philippe44, I wanted to thank you very much ! No problem for airupnp-arm using on RPI3 Raspbian Strech, using your methode for libssl1.0.0. So easy to configure, following your readme installing methode. it work at first time !! thanks !
Finally got it working! Had to enable Multicast Pass-Through (firewall settings) on a Virgin Media Super Hub, if anyone else has been tearing their hair out.
Many thanks for your work on this Philippe - my new Sonos Play:1 now has full functionality. Cheers.
Finally got it working! Had to enable Multicast Pass-Through (firewall settings) on a Virgin Media Super Hub, if anyone else has been tearing their hair out.
Is that a Virgin Media SuperHub 3 you're referring to? Thanks.
No, it's a Virgin Media Super Hub 2ac - according to the admin screen.
Thanks. Mine's also a VM SH 2ac, but I see that I do have Multicast Pass-Through enabled. I think that's the default, as I don't recollect ever changing it.
I can't imagine that it's something that I fiddled with but you never know. Glad it's all sorted now - digging through the old closed issues gave me the clue to check it.
Many thanks. Excellent example of a well-documented and stable open-source project. Got it working in no-time, both for my Sonos and my ChromeCast!
Thanks @philippe44. Works great!
Ditto thanks philippe
Merci pour ce programme.
C'est rΓ©ellement impressionnant de simplicitΓ© et d'efficacitΓ©.
Bravo.
Thank you @philippe44! My wife got me pair of KEFs which were sadly not airplay enabled, and while looking for a solution I stumbled onto this. I have since gotten an airport express to act as an airplay bridge, but the quality does not even compare to steaming through AirConnect(likely a steaming vs file problem)
Kept the app and iβm using it everyday! ππ»ππ»
Thanks a lot for creating AirConnect! Pre-built binaries made the installation super easy.
Thank you very much @philippe44! I really appreciate the software and all the effort that went into it. Its be hugely helpful for me. You rock! π€π»
Works wonders on macOS with Airfoil! You're a hero! Many thanks!!!
Many thank for this! Insanely great out of the box experience for the tested multiple Sonos speakers and unbelievable multiplatform offering. (Tested on Windows with fast CPU+network)
Works brilliantly, unlike all the other Sonos projects I tried. I was considering dumping my Sonos kit but you've saved their lives. ;) Thanks!
Amazin idea! It works perfect on Mac.
I bought the a Sonos that is not supporting airplay nor bluetooth. I was about to return the speaker to the store but then I found this solution :v thanks!
Looking forward to take a look at your code :D
Thanks for a great project β€οΈ
I'd be wondering about the appropriate way to say thanks! Didn't think to look in the issues!
This is a splendid wee tool, thank you very much.
I also agree with the messages here already. Thanks for creating this, I am using it with Home-Assistant
thanks!!!
Thank you @philippe44 I use this Ubuntu on my fire TV. It works well!
I just got AirConnect working beautifully on a Raspberry Pi with very little effort, connecting to Sonos.
Perhaps you're too modest to have a tip-jar in the README, but I'd love a way to say thank-you for all your hard work, @philippe44. A PayPal or Amazon wishlist link would be ideal ;-)
Matthew
Iβm so wowed by this! Everything just works. And itβs so much better than turning an old raspberry pi into a single airplay receiver - better audio quality than using the DAC in the pi and support for all my Google Homes and groups. Amazing!
One question though: which codec is default? Do we need to set FLAC explicitly or is it using it by default anyways?
And Iβd like to put something in that jar as well ;-) Really awesome work!
Thanks Peter - The "thank you" is the best reward for me and I appreciate a lot when somebody takes the time to write it down as you just did. Re codec, yes flac is the default. I chose it because it gains 40~50% of network bandwidth and it's lossless, so everybody should normally be happy with it :-). You don't need to build a config file if this is the one you need.
Thanks Peter - The "thank you" is the best reward for me and I appreciate a lot when somebody takes the time to write it down as you just did. Re codec, yes flac is the default. I chose it because it gains 40~50% of network bandwidth and it's lossless, so everybody should normally be happy with it :-). You don't need to build a config file if this is the one you need.
You rock, thanks! :) and you guessed right - I wanted to go for FLAC and assumed thatβs what it was anyways - I couldnβt hear any double compression effects. Again, awesome work! :)
@philippe44
Thanks Peter - The "thank you" is the best reward for me and I appreciate a lot when somebody takes the time to write it down as you just did. Re codec, yes flac is the default. I chose it because it gains 40~50% of network bandwidth and it's lossless, so everybody should normally be happy with it :-). You don't need to build a config file if this is the one you need.
Any reason why you don't default to Apple Lossless? It also is lossless, pretty much the same size as FLAC and is after all what Apple use in AirPlay.
Well because itβs an Apple codec and not available on other devices. The genius of this is in making airplay available for devices and groups of devices that donβt support airplay. Those devices tend to not support Alac either, but with support of FLAC it is even lossless. Brilliant. Thatβs why Iβm so impressed with this.
Apple Lossless has been open source for years. Even Microsoft support it as standard in Windows Media Player. Sonos of course also support it.
Google doesnβt to my understanding
Any reason why you don't default to Apple Lossless? It also is lossless, pretty much the same size as FLAC and is after all what Apple use in AirPlay.
Not a ton of reasons but I'm already very familiar with using flac as an encoder, so it's easy for me. I have a couple of application with alac encoding as well, but I use them less as a developer. Then, I also think that flac is supported by more devices than alac. I've not done a comparison of encoding load, but platforms running AirConnect are usually powerful enough that it does not matter. Compression ratio difference is probably in the noise. So no super-strong reasons, but a few :-)
What a breath of fresh air this project is. Works out of the box, no hassle, no dependencies, simple Makefile. From the bottom of my heart, thanks dude.
@philippe44 I was afraid that my rather complicated network setup would cause issues for this project to work, but with a little bit of planning ahead I was able to get setup and listening to music in my entire house (no small feat) within 30 minutes.
It works great. I can finally listen to YouTube videos on my smart speakers. (I know... what a strange concept, wanting to watch YouTube videos and listen to the audio on a seperate speaker!)
I was looking for a way to buy you a beer, but I couldn't find one. If you decide to to give us a way to, please let me know!
A "thank you" message like that is just what I need :-)
First of all, thanks for your job. Looks like this thread uses for questions :) So, if works great on my windows PC, but I would like to launch it on my Raspberry Pi (as planned). I launched binary, it works, but I can't see new airplay devices... And in logs I see following
...
[23:25:45.270935] mDNSsearchCallback:400 ----------------- round ------------------
[23:25:45.271085] mDNSsearchCallback:404 [ACTIVE] host 192.168.31.213, srv 192.168.31.213, name JBL-LINK-444438a168cae96efe6d75ca6d9f6d40._googlecast._tcp.local
[23:25:45.271200] AddCastDevice:652 [0x84160]: adding renderer (JBL LINK)
[23:25:45.271267] AddCastDevice:658 [0x84160]: creating MAC 8416a
[23:25:45.272339] mDNSsearchCallback:400 ----------------- round ------------------
[23:25:45.272412] mDNSsearchCallback:404 [ACTIVE] host 172.30.32.1, srv 192.168.31.213, name JBL-LINK-444438a168cae96efe6d75ca6d9f6d40._googlecast._tcp.local
..
and the same for all my google cast devices
also this:
[23:45:38.853444] mDNSsearchCallback:404 [EXPIRED] host 192.168.31.74, srv 192.168.31.74, name Google-Cast-Group-92A3C2CF680D4739BAA1A181ADD1C7E2._googlecast._tcp.local
[23:45:38.853577] mDNSsearchCallback:404 [EXPIRED] host 172.30.32.1, srv 192.168.31.74, name Google-Cast-Group-92A3C2CF680D4739BAA1A181ADD1C7E2._googlecast._tcp.local
[23:45:38.853651] UpdateCastDevice:469 [0xb4f13228]: changed ip:port 192.168.31.213:32001
[23:45:38.853713] mDNSsearchCallback:454 [0x87090]: removing renderer (All Speakers+) -1248855720
[23:45:38.855668] DeleteCastDevice:513 [0x87090]: Cast device stopped
It's strange to see it twice: for 192.168.31.x and for 172.30.32.x networks, maybe that's the cause of the problem? btw I see on log after start Binding to 192.168.31.9
Please, help me to solve it!
@philippe44 Thank you very much. (I signed up to github just for saying this)
To the author: thanks a lot! Worked like a charm with zero effort. I wish I could contribute to this project, but my C skills are non-existent.
@philippe44 Thank you very much. (I signed up to github just for saying this)
Really kind of you!
Working great here with Sonos and Chromecast Audio. π
Thanks!
Great piece of software, thanks a lot!
@philippe44 I was looking for the donation link and read above, so just wanted to say thanks - it really does "just work"!
I wanted to thank you for all the work you have done with AirConnect! Bridging ecosystems can't be easy and really annoying! Thank you so much for all your work!
My house has a mix of iphone/Android and Windows/Mac in my house. Music lives on a Linux NAS, and I've been looking for some client/server software that could support the NAS, all the clients, and Chromecasts for ages. Nada.
This entirely sidesteps the problem. The Apple clients can use Airplay, and Android can use built-in casting.
I'm thrilled! It's so nice to have different ecosystems actually work together. And install couldn't be easier - download and run a single executable.
Thanks!
My house has a mix of iphone/Android and Windows/Mac in my house. Music lives on a Linux NAS, and I've been looking for some client/server software that could support the NAS, all the clients, and Chromecasts for ages. Nada.
This entirely sidesteps the problem. The Apple clients can use Airplay, and Android can use built-in casting.
I'm thrilled! It's so nice to have different ecosystems actually work together. And install couldn't be easier - download and run a single executable.
Thanks!
Thanks!
I want to add my thanks to this project and the amazing work by @philippe44. This project provided a bridge from my aging AppleTV 3rd generation to Sonos groups. Well done!
Thank you @philippe44! Love this project.
I'd like to echo the original commenter... I do hope you'll consider adding a tipjar/PayPal link.
I got AirConnect up & running on my RPi and supposedly "non AirPlay compatible" Sonos gear after just 10 minutes reading and 5 minutes "doing". Thank you @philippe44
Thanks!
Thank you @philippe44 this is great. If you had a tip jar you'd have a beer coming your way.
Thanks, @philippe44 Neat piece of work. This is definitely something useful. Kudos! Can I send you a Starbucks via email?
Have a dedicated RP4 running the software for various Sonos devises. Many thanks
Thanks @philippe44 for the amazing piece of software. I have it up and running on RPi4 for 3 chromecast audios & 3 chromecast audio groups. Really appreciate the binaries for various systems & architectures. It made it possible to quickly test on my windows machine and thus dedicate the required time to go and mess with the RPi when I saw how well it works.
I utilized the Windows version and installed as a service. Other than ensuring Windows firewall had an exception for the executable, it was smooth installation and execution. And this has now enabled my Sonos Player:1 - which had direct Airplay support when purchased, but later (perhaps illegally) removed via a firmware update - to be used via AirPlay again. Thank you!
Sonos Player:1 - which had direct Airplay support when purchased, but later (perhaps illegally) removed via a firmware update
Just to note that the Sonos Play:1 has never had native AirPlay support.
AirConnect, of course, addresses that limitation perfectly :)
@pwt Noted. I should have said direct playback. All I know is that when I hit what is now the cast/share button in iOS my Sonos Play:1 would should up and then 3 months after purchase (and a device firmware update) it was gone/poof. Your product has resurrected an expensive paper weight. Thanks again.
Ps: here is the link to the uproar over it - https://en.community.sonos.com/announcements-228985/on-this-iphone-or-ipad-no-longer-available-6829000.
@pwt Noted. I should have said direct playback...
Ah, you mean the removal of being able to play content hosted on iOS/iPadOS ("play from this iPhone", etc.) That didn't use AirPlay.
In fairness to Sonos, the removal of this feature was due to changes made by Apple.
Got it. Curious, I don't know the technical protocol that enabled that "play from this iPhone" feature. What did Apple do specifically that took that capability away? And even so, couldn't Sonos support AirPlay via a firmware update? Did they not want to pay Apple a fee? Or perhaps the hardware is underpowered for AirPlay (even though works through the AirConnect bridge)? Would be interested in your thoughts/insight.
What did Apple do specifically that took that capability away?
Roughly speaking, the "play from this iPhone" feature depended on running a background server process on the iOS device that stayed running for the duration required for Sonos to stream from it. Apple made changes that prevented this use case.
And even so, couldn't Sonos support AirPlay via a firmware update? Did they not want to pay Apple a fee?
Sonos stated that older devices didn't have the resources required to support AirPlay v2, which is quite a complex service. They've never implemented AirPlay v1 (which is what AirConnect provides), because they didn't consider it robust enough (although that's arguable).
(even though works through the AirConnect bridge)?
That's because the AirConnect software running on your Windows machine is doing all the AirPlay heavy lifting. Sonos is just pulling an HTTP stream from your Windows box.
Very helpful explanation. Much obliged. Thanks again.
Just to add to what @pwt said: for having implemented AirPlay 1 on different devices, I can say that this is not a cpu or memory demanding protocol.
It's is low-speed RTSP server and a RealTimeProtocol receiver. Maybe getting the sync to work can be a bit difficult, but even that I don't believe a second. At the end, this is decoding [email protected], fully within the capabilities of Sonos 1st Gen.
Now, it's perfectly understandable that Sonos does not want to do that because they would have needed a license from Apple at the time and later you can't maintain/upgrade old software forever, it is costly, companies have to move on and put their developers to work on what ensures their best future.
But saying it's "technically impossible" is the usually rubbish that you are being served which means "I don't want to do it (maybe for a good reason".
Just to add to what @pwt said: for having implemented AirPlay 1 on different devices, I can say that this is not a cpu or memory demanding protocol.
It's is low-speed RTSP server and a RealTimeProtocol receiver. Maybe getting the sync to work can be a bit difficult, but even that I don't believe a second. At the end, this is decoding [email protected], fully within the capabilities of Sonos 1st Gen.
Now, it's perfectly understandable that Sonos does not want to do that because they would have needed a license from Apple at the time and later you can't maintain/upgrade old software forever, it is costly, companies have to move on and put their developers to work on what ensures their best future.
But saying it's "technically impossible" is the usually rubbish that you are being served which means "I don't want to do it (maybe for a good reason".
Just to be clear, Sonos has never directly supported AirPlay 1 on any device, nor have they claimed it couldn't be implemented due to resource constraints. The resource limitation claim applies to AirPlay v2 only, which is only supported on more recent devices.
Just to be clear, Sonos has never directly supported AirPlay 1 on any device, nor have they claimed it couldn't be implemented due to resource constraints. The resource limitation claim applies to AirPlay v2 only, which is only supported on more recent devices.
Maybe my bad, but I thought I read a while ago that they claim AirPlay1 was not embedded because of "technical limitations". Anyway, it does not matter much as again, this is rightfully their choice a a company. We might like or not, but we are also free to buy or not their products :smile:
Since we are on the topic (perhaps off topic? :P)... I was one of those customers who went into the store asking if Play:1 could play my music off my iPhone. The answer was yes. I was happy to purchase the product and use it in that manner. A few months later that specific feature was removed for me (and any other iPhone based users). Needless to say, for me the device became a paper weight overnight and Sonos' stance was that it was an Apple restriction, i.e. "too bad too sad". That as you might say was their choice in handling the matter. But that meant a lot of sour taste in my mouth and they lost a customer (and anyone else in future who listens to me). I wish they had offered some alternatives. Knowing a bit more context given your inputs, it would have been great if they did implement AirPlay1 on the device. And if that was too legacy of a code branch to manage maybe open sourced the firmware for the community so they can take the mantle. And that's not to say about financial tokens (maybe an at-cost upgrade to an Airplay supported unit or some such gesture). We are where we are in the end and AirConnect has resurrected a dead device for me (and perhaps some old feelings). I am happy and grateful for the option thanks to you.
Thanks Philippe, this worked flawlessly and was super easy to set up. I saw above that you do not accept donations, so please accept my gratitude instead ππ»ππ»