amperfy icon indicating copy to clipboard operation
amperfy copied to clipboard

[Feature Request] Chromecast support

Open brokoler opened this issue 1 year ago • 11 comments

Hello,

really loving this app so far, together with my selfhosted Airsonic server.

Only feature missing compared to other Subsonic apps for me is missing Google Chromecast support. Would be great if this feature request would be added to the future roadmap.

Great job and thanks for creating a beautiful open source app!

brokoler avatar Jun 15 '24 12:06 brokoler

Hi,

Thank you. What exactly do you mean with Chromecast support? I don’t own one and I never heard of direct Chromcast support. Is there a special API needed? Do you have a specification or documentation for me to get more info about your request?

BLeeEZ avatar Jun 15 '24 13:06 BLeeEZ

Hi, thanks for your interest!

Chromecast is a proprietary casting protocol similar to Apple Airplay. The advantage of Chromecast is mainly the lossless audio support of the protocol, if offers higher bitrates compared to Airplay which uses compressed AAC. Chromecast also doesn't stream directly from the phone, the Chromecast device receives the streaming URLs and plays the streams itself. You can leave the house and playlists are still continuing without your phone (great for my cats and grandparents) and it saves phone battery. Adding the feature would also make your app compatible with a much wider range of audio equipment, since many smart speakers supporrt the Chromecast protocol.

I researched what is required to add Chromecast support to an iOS Swift app.

  1. Chromecast support can be added via Google SDK: https://developers.google.com/cast/docs/ios_sender/integrate?hl=en

  2. I asked ChatGPT what is required to add Chromecast support to a Swift iOS app https://chatgpt.com/share/532d1fc1-687d-4ba8-94a7-db1b497633aa

I'm not a developer but I hope this information is any help.

Kind regards

brokoler avatar Jun 15 '24 23:06 brokoler

Ok, thank you for the clarification. I will take at the documentation soon.

BLeeEZ avatar Jun 16 '24 08:06 BLeeEZ

Also Chromecast user here. I would love this feature be added to this great app! I could offer to help with testing or in case you welcome contributions I might be able to help with implementation as well. What would you prefer @BLeeEZ ?

tobiaseisenschenk avatar Oct 02 '24 10:10 tobiaseisenschenk

Hi @tobiaseisenschenk, contributions are always welcome. I would prefer a pull request for this feature. I am currently quite busy and have not much time to implement it by myself.

BLeeEZ avatar Oct 02 '24 17:10 BLeeEZ

Short update here: I managed to implement the basic functionality of casting a track. Next I will spend some time to improve the user-flow and code structure to then get your feedback.

tobiaseisenschenk avatar Nov 14 '24 13:11 tobiaseisenschenk

Hey @BLeeEZ I managed to implement this and would love your feedback :)

tobiaseisenschenk avatar Dec 17 '24 21:12 tobiaseisenschenk

@tobiaseisenschenk Was this added to the version on the App Store?

I'm giving subsonic/this app a try and I don't see a way to Chromecast.

MikeVensel avatar Aug 24 '25 18:08 MikeVensel

@tobiaseisenschenk Was this added to the version on the App Store?

I'm giving subsonic/this app a try and I don't see a way to Chromecast.

No, I had built two prototypes, which I tested on my devices. But making this production ready would have required much more time commitment and I had to discard the idea as you can see in the linked (closed) MR.

tobiaseisenschenk avatar Oct 14 '25 14:10 tobiaseisenschenk

@tobiaseisenschenk Fair yeah it seems like it would be a lot of work. Just for anyone who may find their way here from a Google search my workaround has been to run https://github.com/1activegeek/docker-airconnect on my server which just exposes Chromecast devices as Airplay devices so I can stream from the app using Airplay. It works reasonably well though expect some minor issues every so often depending on your network.

MikeVensel avatar Oct 14 '25 15:10 MikeVensel

My solution was to run a MPD server (mopidy) on my local mediabox (raspberry pi), which I can remote control via any iOS MPD app. It then streams directly from my remote music server to the Pi without any protocol limitations on bitrate, that airplay would have. Results in an acceptable UX, but best sound quality and I can use my phone freely as its audio is not involved.

tobiaseisenschenk avatar Nov 22 '25 12:11 tobiaseisenschenk