Server Version#: 1.14.1.5488-cc260c476 Player Version#: N/A, use PMS as web player Server OS: Debian Buster
Sometime within the last month, I’ve been unable to cast from PMS to any cast-capable device. When I open PMS and check the dev tools console, I see a consistent warning:
[Cast] API is not available
I’m trying to cast from a laptop running Fedora or an Android device, both of which run Chrome on the beta update channel. The version of Chrome having problems is 72.0.3626.64.
My wife’s Macbook (running Chrome 71.0.3578.98, stable channel) is able to cast without issue and if I switch back to a non-beta for Chrome on my Android device, I can cast without issue as well.
I’m not sure if accessing the Cast API changed in Chrome 72 but I’m open for any suggestions on how to get my devices casting again from their installed versions.
The fact that you’re seeing the API is not available message indicates that the Cast detection process is at least kicking off. We also check for the presence of the window.cast, window.chrome and window.chrome.cast globals.
I just tested with the hosted web app - I’m able to open the cast dialog and see all Google Cast devices on the network and successfully cast. Looking at the dev tools console shows no logging about unavailable APIs.
I also checked the self-hosted web app running on my home network - I’m able to see two Chrome Web entries in the casting list (I’m assuming it’s my wife and I’s laptop) but no Chromecasts or Google Homes. I’m also still seeing the [Cast] API is not available message in the dev tools console.
I also did some quick Javascript console queries for the window.chrome, window.cast and window.chrome.cast entries. window.cast returns undefined, window.chrome returns an object, and window.chrome.cast returns undefined. The only time I get any sort of syntax autocomplete in the console is with window.chrome.
Plex offers a couple of forms of remote control from a web browser. One is the Plex Companion protocol; that’s what you’re seeing when the Plex Web entries appear in the Cast dropdown. In order to access Chromecast devices, there needs to be a Cast entry in that menu; when pressed, the native Chrome / Chromecast picker menu should open.
It’s possible that the built-in functionality is disabled in your browser. Check this url and ensure Load Media Router Component Extension is enabled. chrome://flags/#load-media-router-component-extension
Interesting! I never thought to dig in about the reason that Plex Web was showing up in the cast list.
I checked the flag and changed it from the default value to Enabled just to be sure. Restarted the browser and was still unable to find any Chromecasts from the Plex web UI.
I’m able to cast from YouTube, Netflix, and other cast-enabled sites. I’m also able to cast the tab itself (right-click > Cast), just not able to cast from the embedded cast button.
When using Chrome 71, I’m able to cast without issue across all devices. I’m trying to find a way to check for any Cast API changes between Chrome 71 stable and Chrome 72 beta.
I’m guessing since Chrome released 72 from beta to stable, there may be more occurrences of this if something related to the Cast API changed in this update.
I followed you over here from the other thread on this issue, and can confirm that this problem started for me after an update to Chrome 72 and that I receive the same “[CAST] API is not available” warning message in the Chrome developer tools console after unsuccessfully attempting to cast.
Nice work further pinpointing the issue. Hopefully somebody smarter than me can come up with a solution soon!
I hope that this isn’t a stupid question, but does updating Chrome browser automatically update the Chromecast application for the entire computer?
The reason that I ask is that I just tried to cast Plex using Safari (I’m on a MacBook) - not Chrome - and received the same “No Players” error. Then I went to Parallels/Windows and tried it on Edge…same thing.
I’m really confused now, as I thought this was Chrome browser update issue.
To be honest, I’m not 100% sure. It could be an update to the Chromecast devices although I’m hard-pressed to say that’s the most likely cause. If I was betting on it, I’d say it’s probably related to updated libraries and APIs that are used in other browsers. That seems to be a more plausible option.
I haven’t ever spent a lot of time working with Chromecasts or dev work related to casting and Cast APIs. It seems like there are other Chromecast-related problems, but I’d definitely say that this is under-reported as of now.
@duncanbeevers any additional ideas or thoughts around this?
UPDATE: I’ve downgraded Chrome on my Mac to 71.0.3578.80 and turned off automatic updates. The problem has resolved, and I can now see all my Google cast devices from Plex.
I confirm that consistently, casting option is broken by Chrome 72 (several computers - Windows and PC).
This is really bad. Not mentionning the fact Chrome 72 prevents now the configuration on computers… I’ll send my CCs back to google and ask for reimbursement !
I wonder if this Chromium patch may be the problem. Looks like they restricted the presentation API to HTTPS sites only - can anyone here confirm if they’re accessing their Plex over HTTP only?
@duncanbeevers, having same problems. All of a sudden when I access the PMS using the machine’s name on the LAN, the PWC can’t see the Cromecast. If I access my PMS through https://app.plex.tv/desktop then the PMC can see the Crormecast.
Also found out if I use https to access the PMS directly and not http, the PMC under Chrome can play to the Chromecast.
I’d like to think that going out to app.plex.tv wouldn’t be the workaround for this - if it’s on my local network, I should be able to hit the machine’s IP on the right port and be able to serve and stream content the same as I could from any other access point.
Another workaround is to use HTTPS and the server’s local IP address. That has worked for me. The problem is what has changed in Chrome that HTTPS needs to be used? I guess app.plex.tv works because it only works over HTTPS. I bet if app.plex.tv worked over HTTP then the same problem would reappear. Is this only a Google Chrome fault?
There were changes patch linked here that disabled the Cast API for non-HTTPS traffic.
I’ve tried hitting the local IP with an https prefix, but since I have no certs set up, HTTPS fails in Chrome. I’ve got more than just Plex listening on the server, so I’m proxying traffic through Nginx. I may have to just expose PMS directly on the server.
I’m using Version 72.0.3626.96 (Official Build) (64-bit) and it’s working for me. Chrome gave me a warning, I accepted it and Chrome’s remembered to accept the miss-matched certificate.
@Franck_Ehret I’m seeing similar behavior now on my wife’s Macbook. I haven’t yet dug into that one (it’s on my list of things to look at tonight) but If I find anything of note I’ll be sure to share it here.
@MyronS Good call out. Moving to a valid certificate should fix the errors in Chrome. I was planning on that at some point, just not necessarily this quickly.