Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chromecast support broken on Chrome #791

Closed
alexalouit opened this issue Feb 1, 2019 · 34 comments
Closed

Chromecast support broken on Chrome #791

alexalouit opened this issue Feb 1, 2019 · 34 comments
Labels
bug Something isn't working regression Regression from previous build

Comments

@alexalouit
Copy link

With latest Google Chrome version (v73) on Mac OS and Android, Jellyfin don't show Chromecast.
Chrome Mac OS built-in button does.
This works fine with older version.

Anyone got same problem?

@alexalouit
Copy link
Author

alexalouit commented Feb 1, 2019

Possible duplicate #640

@cvium
Copy link
Member

cvium commented Feb 1, 2019

Works for me on macOS

@BobOkisama
Copy link

It is broken in the mobile apps. There is a mobile version that is supposed to be fixed for JF, but you have to compile it yourself currently.
https://github.com/jellyfin/jellyfin-android
https://github.com/jellyfin/jellyfin-ios

Personally I think the guys should ask for some donations to buy the kit/license needed to post a official Android/iOS app on both stores.

@alexalouit
Copy link
Author

@cvium which version of chrome did you use?

@alexalouit
Copy link
Author

@BobOkisama I don't use Android app, only Chrome browser.

@alexalouit alexalouit changed the title Chromecast support broken Chromecast support broken on Chome Feb 1, 2019
@alexalouit alexalouit changed the title Chromecast support broken on Chome Chromecast support broken on Chrome Feb 1, 2019
@BobOkisama
Copy link

BobOkisama commented Feb 1, 2019

Ahh, then I am out of my league on this. I will try it out later tonight on my system from the web and report back.

@anthonylavado
Copy link
Member

anthonylavado commented Feb 2, 2019

@BobOkisama We have accounts to post to various stores. We'd do this for the Android app, but it's not quite ready just yet.

The iOS app code doesn't work - I'll edit that repo to make it clear. We do have plans to support more platforms in the works, but for iOS, you can use VLC and or Infuse with their DLNA functions. Both work really well.

VLC also works on Chrome too! 😄

@anthonylavado anthonylavado self-assigned this Feb 2, 2019
@anthonylavado
Copy link
Member

Digging in to this... I can replicate with the standard release of Version 72.0.3626.81 (Official Build) (64-bit) on my Mac. The Chromecast option does not show up there.

Tested with latest Chrome on my Android test device (Version 72.0.3626.76), not working either.

@anthonylavado
Copy link
Member

anthonylavado commented Feb 2, 2019

Currently tracking:

Chromecast Issue

Platform Version Status
macOS 72.0.3626.81
Android 72.0.3626.76
Android 71.0.3578.99
macOS 71.0.3578.80
ChromeOS [1] 72.0.3626.49

[1] ChromeOS as reported in #640.

@anthonylavado anthonylavado added bug Something isn't working regression Regression from previous build labels Feb 2, 2019
@anthonylavado anthonylavado pinned this issue Feb 2, 2019
@anthonylavado
Copy link
Member

Hi folks, we've tracked down the issue.

If your server is HTTP and not HTTPS, local Casting is broken with Chrome (Computer or Mobile), starting with version 72.

@joshuaboniface
Copy link
Member

Specifically, from the Chrome dev console on 71:

cast_sender.js:67 [Deprecation] Using the Presentation API on insecure origins is deprecated and will be removed in M72. You should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details. 

So, it looks like 72 fully removes cast-over-HTTP support. I'm now working on documentation of reverse proxying to add to the install guide, with a mention of this explicitly.

@cvium
Copy link
Member

cvium commented Feb 2, 2019

I am on Version 72.0.3626.81 (Official Build) (64-bit) and it works for me.

@anthonylavado
Copy link
Member

Alternately, if you're using Chrome on the same computer that is running Jellyfin, if you connect using "localhost:8096" or similar, it will also work. (Thanks to Luke for pointing this out.)

@anthonylavado anthonylavado removed their assignment Feb 2, 2019
@mazzystr
Copy link

mazzystr commented Feb 10, 2019

I currently use Chromecast (firmware 1.37.144496) streaming from Plex (3.53.7) on unencrypted connections. I don't require https streaming. I don't have the cpu cycles and electricity to spare. Keep in my my streaming goal is to put a small beaglebone in the family minivan and let my kids stream movies from their Amazon Kindle Fires.

I confirm the following behavior with Chromecast (firmware 1.37.144496)...
❌ MacOS Firefox (Chromecast (firmware 1.37.144496) / JellyFin (v10.1.0)) / JellyFin (v10.1.0)
❌ Android JellyFin (release_beta2) / JellyFin (v10.1.0)) / JellyFin (v10.1.0)
✅ MacOS Chrome (Version 71.0.3578.98 (Official Build) (64-bit)) / JellyFin (v10.1.0)) / JellyFin (v10.1.0)

@anthonylavado
Copy link
Member

Firefox doesn’t have Chromecast support to my knowledge...

The Jellyfin Android app has some fixes to go through for Casting to be more reliable. If you don’t see it as an option, try leaving the app on screen, locking for a minute, then trying again.

The HTTPS requirement for casting is with Chrome browsers version 72+, whether it’s Android or Computer. There’s nothing we can do about it, it’s a change in Google’s code. They essentially broke it for everyone that was doing it, including Emby and Plex. Apps aren’t subject to the same restrictions, if you’re using them.

Plex also has the benefit of “giving” you a workaround with their “app.plex.tv” website, because they run it with HTTPS, and then it connects to your local setup. We’d love to do that, but we don’t support central servers 🙂

@mazzystr
Copy link

mazzystr commented Feb 11, 2019

Firefox doesn’t have Chromecast support to my knowledge...

It does.

re https...

Understood and I'm not against https. I need it to be minimal as possible to get working meaning self signed certificate for .local tld.

re “app.plex.tv”

Oh yea, definitely. I'm here because of Plex's central sign on. We had a week long internet outage about 6 months ago (our local fiber loop got the excavator and it took them a while to pul a new line) which locked us out of our media center. That set me on a journey which led me here. I'm mostly liking what I'm seeing. The communication is excellent and a far cry from the other apps.

@alexalouit
Copy link
Author

alexalouit commented Feb 11, 2019

For those who need, here's what I do to reverse proxing with apache on debian stable

$ apt-get update
$ apt-get -y install apache2
$ echo -e 'ProxyPass "/" "http://127.0.0.1:8096/"\nProxyPassReverse "/" "http://127.0.0.1:8096/"' > /etc/apache2/conf-available/jellyfin.conf 
$ a2enconf jellyfin
$ a2enmod proxy
$ a2enmod proxy_http
$ a2ensite default-ssl
$ systemctl restart apache2

Jellyfin must be accessible under https://your-ip with self-signed certificate, chromecast will works.

@anthonylavado
Copy link
Member

Firefox doesn’t have Chromecast support to my knowledge...

It does.

Ah, on Android. I forget it's a browser there (iOS user myself). I was thinking desktop. My mistake. Carry on! 😄

@ghost
Copy link

ghost commented Mar 18, 2019

Temporary Workaround

  • go to chrome://flags/#unsafely-treat-insecure-origin-as-secure
  • enable unsafely-treat-insecure-origin-as-secure
  • add http://<EMBY_SERVER_IP>:8096

This works for me, however chrome forgets about this exception once closed.

@JustAMan
Copy link
Contributor

JustAMan commented Mar 19, 2019

I think the "fix" for this issue should be a document section in our docs describing the findings, and this issue should be closed after the docs are updated. It's nothing on our side we can do actually to change Chrome behaviour.

@icf20
Copy link

icf20 commented Mar 20, 2019

@JustAMan so chrome wont change course,


is there any other browser that support chromecast and dont have this issue?

@JustAMan
Copy link
Contributor

I heard wind that maybe Firefox starts to support Chromecast... here's what I was able to find: https://www.linuxuprising.com/2019/01/fxcast-adds-chromecast-support-to.html

@icf20
Copy link

icf20 commented Apr 7, 2019

for linux users on arch downgrade is not longer a option to run version 71.0.35

/usr/lib/chromium/chromium: error while loading shared libraries: libicui18n.so.63: cannot open shared object file: No such file or directory

😠 😠 😠

@anthonylavado anthonylavado unpinned this issue May 9, 2019
@icf20
Copy link

icf20 commented May 9, 2019

this should be left pinned since is not solved

@mazzystr
Copy link

mazzystr commented May 9, 2019

Chromecast has been working great for me.

JellyFin: Version 10.2.1
Android: 9
App: jellyfin-android_release_beta8.apk

@anthonylavado
Copy link
Member

anthonylavado commented May 9, 2019

@icf20 I removed the pin because there is no way to solve it easily. The only fix is to use HTTPS, and we can't really make that happen for everyone automatically. There are probably ways to generate certificates for people, but since everyone's set up is different, it's not a reliable way to go. Note that we're not alone in this - Emby and Plex both have the exact same issue.

Most people will use the apps, and those have Chromecast support built in.

@mazzystr
Copy link

mazzystr commented May 9, 2019

My JellyFin install isn't https'd... still works

@anthonylavado
Copy link
Member

anthonylavado commented May 9, 2019

@mazzystr But are you using the app, or the web interface? Our app doesn't require you to have HTTPS in order to cast (apps aren't subject to the same restrictions). The HTTPS requirement is purely using Chrome on Desktop or on Android.

Edit: I remember we talked about this further up in the thread, but since your more recent post mentioned the Android app...

@mazzystr
Copy link

mazzystr commented May 9, 2019

Ah oops! Yea I confirm that. Chromecast cast target is not available in both Chrome or Firefox.

@anthonylavado
Copy link
Member

Okay, closing for now. We'll do what we can with docs, but there's nothing left to do here. Chrome has moved on.

@icf20
Copy link

icf20 commented May 11, 2019

@anthonylavado if there is noway to get around this https requirement then chrome make jellyfin/emby useless

@DrPandemic
Copy link
Contributor

@icf20 as it was mentioned earlier, there's many ways for way to work around this restriction.

  1. Add a self-signed cert in front of your instance.
  2. Put a real cert in front of your app.
  3. Downgrade chrome.
  4. Use the app
  5. Run chrome with --unsafely-treat-insecure-origin-as-secure="http://example.com"
  6. Open the app your your localhost.
  7. If the app is on another computer, forward the port on your computer to be able to use localhost.

For now, all of those solutions can't be done by us. So you'll need to customize a little bit your installation to be able to work with this closed source technology (Chromecast).

@nermin99
Copy link

@ghost

Temporary Workaround

  • go to chrome://flags/#unsafely-treat-insecure-origin-as-secure
  • enable unsafely-treat-insecure-origin-as-secure
  • add http://<EMBY_SERVER_IP>:8096

This works for me, however chrome forgets about this exception once closed.

This doesn't work anymore for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working regression Regression from previous build
Projects
None yet
Development

No branches or pull requests

10 participants