Cast / Chromecast support for microG — Prime Video & co. now cast (upstream PR)

This is about app casting — the in-app Cast button in Prime Video, YouTube, Netflix, etc. that streams to a Chromecast — not phone-screen mirroring.

Apps like these drive the device over the Google Cast SDK’s connectionless API (Cast.API_CXLESS), which microG never implemented, so casting from them silently failed on /e/OS. I’ve implemented that path in microG and validated it on real hardware: the real Amazon Prime Video app launches its own DRM receiver and plays a title on a Chromecast from a de-Googled phone, with Prime’s full proprietary registration handshake relayed through microG.

Submitted upstream (pending review):

Since casting has been a long-standing gap on /e/OS, sharing here — review/testing very welcome, and happy to answer technical questions.

14 Likes

This is amazing, thank you! :star_struck:

Great to see, thank you!

1 Like

Hi, thanks for working on this. I can confirm the problem on my device.

Device: Samsung Galaxy Tab S2 8.0 (SM-T710, gts28wifi)

ROM: /e/OS e-4.0-t-20260619 (unofficial)

microG: 0.3.15.250932

Receiver: 4K Google TV Stick, same Wi-Fi network

Apps tested: Web Video Caster, Arc Player and Amazon Prime Video. The Stick is listed in all three, but selecting it does nothing and no error is shown. The same apps cast fine from my phone (Android 11 with Google Play Services), so the network and receiver are fine.

Relevant logcat lines:

Web Video Caster:

GoogleCastService: Did not find cast session null

CastMediaRouteController: unimplemented Method: onSelect / onUnselect / onRelease

Arc Player:

GmsDynamiteLoaderImpl: … Cast API wil not be functional!

GmsServiceBroker: Service not supported: GetServiceRequest[CAST_API, packageName=“com.videoplayer.arcplayer”, … apiFeatures=[Feature[cxless_client_minimal,1], Feature[cxless_caf_control,1], …]]

Prime Video:

CastMediaRouteController: unimplemented Method: onSelect

GmsServiceBroker: Service not supported: GetServiceRequest[CAST_API, packageName=“com.amazon.avod.thirdpartyclient”, … apiFeatures=[Feature[cxless_client_minimal,1], Feature[cxless_caf_control,1], …]]

SessionManagerImpl: unimplemented Method: addCastStateListener

Same gap in all three apps, matching what your PRs address.

2 Likes

I’ve tried to gently poke the MicroG maintainers but haven’t heard back from them.

3 Likes

This is actually a dealbreaker for me to use /e/os as a daily driver. Thank you for your effort! Now let’s hope it gets merged soon …

4 Likes

Hi!

Isn’t Chromecast from g**gl? I don’t want to use it.

But I use Miracast to share the whole screen and videos from may mobile.

Also I have connected a raspberry pi with Kodi OS. On the mobile I installed Kore to connect to Kodi. With this I can stream local videos to the TV. Also it is possible to share videos from Zapp without a permanent stream from the mobile to the Kodi.

any news on that? is it related to this? possibility to include this before any of this is merged? would be a gamechanger drm-content-wise.

1 Like

I think someone (or somebody :wink:) put an AI bounty hunter on it Implement Google Cast sessions on microG by woahwhattheheck · Pull Request #3845 · microg/GmsCore · GitHub

Isn’t Chromecast from g**gl? I don’t want to use it.

That’s a weird thing to say in a microG thread, which is all about implementing the Google API … including Chromecast support.

1 Like