Chromecast Audio Reciever (open-source Google Cast receiver target) as Music Provider or Plugin inside Music Assistant? #2354
Replies: 12 comments 4 replies
|
i think DRM is the real hurdle. |
|
This would be great for enabling playing of podcasts from a podcast player app such as Podcast Addict. Also, in the UK the BBC Sounds player only supports casting to Chromecast from its Android app (presumably it supports Airplay from iOS). Being able to stream to Music Assistant via Chromecast and Airplay would add lots of flexibility such as being able to stream to speaker groups, control volume centrally, playing from sources that Music Assistant doesn't yet support as Music Providers. |
|
Today, I use my Chromecast compatible amp as default audio sink for Google Assistant. Problem is that ant announcement from Home Assistant is breaking to playback. If Music Assistant could be a Chromecast receiver, it could sit in the middle, and allow the usage of announcements, pausing the Chromecast playback, and resuming it after the announcement. But I don't know if the protocol is reversed engineered. I'm just exposing a use case. |
|
Since I have a Denon amp and most of the apps doesn't support they're stupid Denon heos, I would love to see a chromecast receiver. |
|
This would be great indeed. Or at least be able to use individual non-native Google Cast devices like the Voice PE as chromecast receivers. |
|
This is not possible. Cast is closed source |
|
Is that only because of DRM applied preventing media playback? What if stream media that is not DRM protected to it? Could it be done then? I seen some people have at least found workarounds for Google Cast receiver authentication, see example "Project Shanocast": There in "Project Shanocast" he has reverse engineered an Android app from Softmedia (which still make their AirReceiver app which can act as Chromecast receivers) to hack togheter a solution that implements Chromecast reciever protocol without using “official” certificates and keys. I understand that approach is normally a "cat and mouse" game in which Google will try to patch their sender SDK to block non-official certs. PS: For reference, there are also other reverse engineering efforts and hacking attemts that have docummened Google's Chromecast protocol:
These include ideas and concepts on how one can spoof the Device Authentication process by implementing enough of the Google Cast protocol. Downside is that existing projects depend on either certificates extracted from real Cast hardware or only work if a sender app not enforcing strict auth. Note! An officiall Google CAFv3 (Google Cast Application Framework v3) receiver officially requires the use of its native player implementation, which is based on their Shaka Player for DASH content while still using legacy Media Player Library (MPL) for HLS content. Therefore many of the avove samples will not work with CAF v3 (Cast Application Framework version 3) as they their receiver side only implement support for the Cast Receiver v2 app. Shaka Player is an open-source (Apache 2.0 licensed) JavaScript library for adaptive media. It plays adaptive media formats (such as DASH and HLS) in a browser, without using plugins or Flash. Instead, Shaka Player uses the open web standards MediaSource Extensions and Encrypted Media Extensions. Shaka Player also supports offline storage and playback of media using IndexedDB. Content can be stored on any browser. Storage of licenses depends on browser support. Moving forward, the Cast SDK and Shaka Player engineering teams are consolidating efforts to increase support of HLS content playback on Shaka Player. MPL will no longer receive critical updates. We recommend you to opt in to use Shaka Player for your application's HLS content playback. PS: Google has by the way also released an official app that lets you turn your PC into a Chromecast receiver. It is called Google Cast for Education and its meant, primarily, to be used to be used in the classroom (and currently you need a Google Apps for Education account to run it). |
|
Wouldnt it be possible to achive the same with dlna/upnp? I mean that music assist would act Like a "dlna Receiver" and then redirects the audio to any configured Player? |
|
Audiobookshelf is another app that supports Google Cast. |
|
Could Sendspin project's Cast receiver (Sendspin over Cast) be able to solve this requested use case as Chromecast receiver for Music Assistant? Or does that not actually work as a Google Cast target (i.e. a native Chromecast Audio reciever?)? Perhaps the desciption is wrong or I am interpreting it wronly: "Cast receiver implementing the Sendspin synchronized audio protocol" |
|
Eyevinn Cast Receiver looks like another open-source attemt att making an custom cast receiver: |
|
I think this is one of the most important features for anyone trying to reduce their reliance on the Google ecosystem, particularly because many Android apps, such as music streaming services, still only support Chromecast. EDIT: My solution is to combine a Chromecast V1 with a HDMI video/audio capture adapter. The created USB sound card is then used in combination with the Local Audio Source provider plugin. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Any chance future roadmap is to make it possible to have Music Assistant act and present as Google Cast reciever / Chromecast Audio target?
Would it be possible to make a Chromecast Audio Reciever Plugin similar to AirPlay Receiver Plugin to expose it as a Google Cast target?
Is it possible to either reverse engineer or work around Chromecast / Cast Application Framework receiver side and its DRM implementation?
The goal would be to be able to stream audio to Music Assistant from third-party application which can only stream to hromecast Audio targets.
What I would like to achieve is to use Music Assistant as a virtual "Chromecast Audio" device to make it be seen as Chromecast Audio / Google Cast speaker(s). So it should act as a middleware to present any other player/speaker as a Chromecast Audio / Google Cast compatible receiver.
https://en.wikipedia.org/wiki/Chromecast#Chromecast_Audio
That is, have a Music Provider for MA that is presenting virtual Google Nest speakers / Google Home speakers / Chromecast Audio recievers?
Use case is to be able to expose Music Assistant as a native Google Cast target (formerly Chromecast Audio reciever) and thus allowing apps that only support casting to Google Cast targets to stream audio to Music Assistant. If this could be achieved then users could stream audio from all cast apps and devices that support sending Google Audio Casting protocol to Music Assistant, including the official Google Home app.
Note! This scenario as described above can not be solved by asking users of such apps to just use a different streaming protocol intead, as often those apps are closed-source and features like additional streaming protocols can not be added to the app by the end-users.
Is such a Google Cast reciever even techically possible? Is there any Google Cast for Audio / Chromecast Audio receiver source code?
I understand that custom Chromecast Audio Reciever is essentially an HTML application hosted on a publicly accessible server which define desired behaviour using standard web technologies such as HTML, CSS, and JavaScript. And when a Google Cast session is initiated, the custom receiver app is loaded and executed directly on the Google Cast device’s built-in browser.
Google does have standalone receiver code but it then depend on manufacturer registering to get a peer certificate for authentication:
libcast is their official open source foundational library implementation of the Cast protocol:
https://chromium.googlesource.com/openscreen/+/8f0e0430b9a536f1d56683d4cf3ab5bcf70ab1d1/cast
Can not tell if Music Assistant's custom "cast-receiver" (CastReceiver) was meant to become a Google Cast receiver app in Music Assistant?
https://github.com/music-assistant/cast-receiver
https://github.com/googlecast/CastReceiver
https://developers.google.com/cast/docs/web_receiver
Have recieving/target end of Google Cast for Audio (GC4A) protocol been reverse engineered so possible to make DIY Google Cast recievers?
Clients are using challenge-response protocol to authenticate the Chromecast receiver, and these are the relevant messages from the protocol:
I only read that the original Chromecast Audio receiver devices operate on a heavily modified variant of the DIAL protocol.
Unfortunatly libraries such as pychromecast only seem to work as sender to communicate with Google's officially certified Chromecast targets.
All reactions