-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Casting to chromecast stopped working in 10.6.2 #3852
Comments
Also experiencing the same issue with 10.6.2, my setup is essentially the same except I have Nginx handing reverse proxy duties. |
is this on the unstable chromecast branch? |
same here... |
Same here. I need to use lan IP again instead of domain name via reverse proxy. Was not working some time before 10.6.1, started working 10.6.1 and now it's not working again in 10.6.2. |
Casting wouldn't work for me because Jellyfin sends Chromecast my local IP and port. In my reverse proxy setup the connection must go through the reverse proxy. I fixed it for me by modifying jellyfin-web\plugins\chromecastPlayer\plugin.js Might be a good idea to at least let the user configure to always use the external address that the caster uses. Edit: I would love to see a checkbox in the network settings so that every device you cast to always use the same address (including domain, exactly as written) as the client you cast with uses to connect. Always use https://jellyfin.whatever.com. No logic to try to find some IP address. |
I rolled back to 10.6.1 and this was still an issue for me, so not certain that I'm suffering the same issue as everyone else, but I found a (very ugly) workaround for my issue! I stumbled on this reddit thread where someone was encountering a similar issue, and they figured out that the Chromecast plugin uses Anyway, they suggested a terrible nginx hack of just rewriting the response. I threw this into my nginx config and suddenly Chromecast is working again!
It's terrible and ugly, but I'm assuming you could do something similar with Traefik. |
I also starting to have this problem a week ago. It seem to have been introduced shortly after upgrading to 10.6.2, but I can't tell for sure if it happened immediately after upgrading. And like @dpraul, I rolled back to 10.6.1 and the problem is still there, which confuses me. I'm running Jellyfin in a Docker image (linuxserver), with a nginx as reverse proxy. There's HTTPS (Letsencrypt) on the proxy, and plain HTTP between proxy and Jellyfin. It has worked flawlessly for months, and my Chromecast have not had any problems with it. My external URL is like this: Like @dpraul, I also found this Reddit thread. Reading that, I got suspicious about my To solve this temporarily, I did almost exactly like @dpraul suggested and made a ugly hack to my nginx config to indicate the external URL in the
The So apparently, the Chromecast Receiver app is not getting the correct address. So the error is probably in the Cast Sender end, which is the Android app in my case. |
I started having the same problem, and inspired by this thread I applied this quick fix with apache
It is now working |
I believe this was introduced in 10.6 (as I am also experiencing it with 10.6.0). Unlike others in this thread, my
So I just added it (similar to other workarounds above). Here is a Caddy config (Caddyfile) excerpt that worked for me:
I'm willing to consult with whichever team member would like to take up this issue so we can find a solution that works most generally and flexibly in different network environments. (This reminds me of the Chromecast bug where Chromecast hard-codes its DNS servers as 8.8.8.8 and so we need a way to configure a different external address when accessing Jellyfin locally...) |
Can anyone else confirm
This is actually the reason we added that option, to fix Google DNS issues without requiring other tools or software. |
I've done the same think in my setup, overriding LocalAddress in my reverse proxy solves the issue for me. |
I've also done the same thing, statically overriding LocalAddress in my nginx reverse proxy. |
When I check the url at /System/Info/Public, I got the IP address from the internal docker network.
But with jellyfin 10.6.1 it is working intern as well as extern. When I used 10.6.2, casting was not working anymore. In 10.6.4 it the same too: |
I opened #3712 and just saw this linked. Would really like some answers here because none of this is seemingly making sense to the end users. Several comments above mention hacking the information returned On the surface this would appear to make sense, but if you read my issues and eventual resolution on #3712, you will see that my configuration is currently working perfectly fine with the When I say "working perfectly" I mean I am able to not only cast to my chromecast devices on my internal network, but I am also able to cast from a remote device (like my phone) to a CC device remote from my home network (i.e. local to wherever my phone is). My JF setup is a straight Windows install which is proxied through an NGINX server (running on embedded linux) and only port 443 is accessible to the outside (i.e. port 80 is actually blocked by my ISP). How is it possible that even though my If the devs would provide some answers to these questions it would really help us users troubleshoot these issues and provide better feedback to you all. |
AFAIK the jellyfin chromecast connector will leverage the |
Ok, I'll buy that. Curious exactly how this works then with remote. |
I had the opposite behavior, when casting within the local network chromecast worked as expected, but when casting outside my network was when problems appeared. Fixing the local address in |
Yes, mine is in docker - the difference is probably in docker networks. Mine was in a private subnetwork (I think the term is overlay?), so the IP was only accessible by other containers in the network (which my chromecast device is not). If you're running in bridge mode (which I believe is the default) and have the ports mounted, you can access the IP directly. So what that means is, when the chromecast connector determines you are on the local network, it will use the internal IP and internal port - otherwise, it uses the external address and external port. So chromecast should work as long as the container is using the bridge network and has the ports mapped. |
Any chance one of you could test Docker image crobibero/jellyfin:3257? (Just asked for it to be rebuilt). Details here:- #3994 If it doesn't work "out of the box" could you enable network logging (details on the PR) and send me the info which says how it's selected the bind address? It also implements functionality which would make chromecast work - but it would be nice to get it working with no setup. |
Would that solution only work with Docker then? I don't use Docker but still have this problem. |
No - if you can compile the code - please feel free to give it a go. It's the latest unstable as of yesterday, with a new network backend. I have it running on my server here - but don't use docker, nor chromecast; hence the request. |
For anyone Googling this and using Traefik 2, here's a .yml file to fix the issue:
Unfortunately Traefik isn't able to serve files on it's own from what I could find, so you'll have to host the modified json file somewhere. Be sure to put the file at |
As said - 3394 can definitely sort it by adding something like below to the settings - it would just be nice to have it working by default.
|
does not start:
|
That would be #4009 (problem in the unstable @ startup) Could you try running it again - and see it it works this time. |
It'll be crashing the url parsing functions - and may cause some issues with the API's. It should work in #3394, but if anyone wants to double check then we can make sure it works out of the box. |
This is what fixed casting to Chromecasts for me on 10.6.4, unfortunately. |
This works for me! Thanks for posting! |
@Drol this fix just works...thx |
Is this planned to be fixed for the next Jellyfin version? The Base URL fix did not resolve my issue, and reading this thread seems to indicate that the fix will not work for 10.7.X. My setup has my Jellyfin not directly accessible to clients, only through a Caddy reverse proxy. My domain points to the Caddy reverse proxy, and resolves to the internal IP address when inside, and the external IP address when outside. |
I just tried @Drol's fix, and it worked at first, but then the server started crashing on all subsequent requests.
Moreover, I checked the <BaseUrl>/https://my.jellyfin.domain</BaseUrl> Deleting this fixed the crashes, but naturally broke chromecast support again. Any ideas? |
@rlue this is what I said all the time. the fix will work only after the startup. afterwards you have to remove this config by editing an conf file im jellyfin to get it up and running again. It's time that it have to be fixed! |
Interesting fix, that definitely points to the problem being that something here isn't appending the |
Thanks @joshuaboniface. Also just wanted to say I really appreciate all the hard work you guys put into this. I use it every day! |
I had the problem that i could cast to chromecasts on my local network but not on remote sites, i did try to have the full domain in baseurl but no luck, but i did specify local network with 192.168.0.0/16 and that somehow made it work again, maby jellyfin assume everything to be local unless specified? Edit: this was just wrong, i Did try to put the full domain in base url but it didn't work, then I tried to specify the local network and that fixed it.... Untill I removed the baseurl and rebooted, i now have the domain in base url again but I don't like that solution :-/ |
Can confirm that the issue was local address for me too. @Drol 's fix did not work for me since it would prepend the / before the baseurl as another user said. My Baseurl would just show my local IP address and not my public URL. @mholt 's fix worked for me (thanks!) since I also had caddy. However I run a nested config so I had to adjust some stuff but the idea is the same. After implementing it my chromecast works again. |
Apparently you can't route to external services via docker provider in traefik, but you can route to services in other containers.
and add these labels to the jellyfin container:
A bit wasteful for a single file but avoids creating an extra static config file for traefik. EDIT: If you already have any webserver that can serve the System/Info/Public file and has a service defined for traefik I think you can reference that with |
I exactly have the same strange behavior. But that's broke the dashboard 😢 |
This is a call for testing for anyone that is available: jellyfin/jellyfin-web#2085 |
i stepped into that problem and took a own hacky approach... container that grabs the origin |
Looks like the rc is still affected |
Yes, I can't get it working either. Feels like it's never ending, been waiting months now for a proper fix. I assume chromecast is hard. |
I'm seeing the same thing here, BUT I actually get a message on the clients saying "MessageChromecastConnectionError", which I was not getting on 10.6.4 and lower. On 10.6.4 and lower it would just spin forever on the clients. I tried |
You are right, I also got "MessageChromecastConnectionError" which seem to come from the chromecast (or libs interfacing with it on client side). The error does not come with any details in the javascript. I also get a few packets sent from chromecast to server when trying to play a movie, so it seem the chromecast is reaching the server at least. I also does not get any errors on server side. |
You have a PR |
reviewed it... one last question and i will merge and release :) |
I've Default Jellyfin reverse proxy configuration file: docker-compose.yml version: '3'
services:
jellyfin:
image: ghcr.io/linuxserver/jellyfin
container_name: jellyfin
restart: always
environment:
- PUID=$DOCKER_UID
- PGID=$DOCKER_GID
- TZ=${TZ}
volumes:
- ${VOLUME_DIR}/jellyfin/Public.json:/usr/share/nginx/html/System/Info/Public:ro
- ${VOLUME_DIR}/jellyfin/library:/config
- ${VOLUME_DIR}/share/photos:/data/photos
- ${VOLUME_DIR}/share/movies:/data/movies
- ${VOLUME_DIR}/share/music:/data/music
- /opt/vc/lib:/opt/vc/lib # Path for Raspberry Pi OpenMAX libs optional.
ports:
- 8096:8096 # Http webUI.
# - 8920:8920 #optional
- 7359:7359/udp # Optional - Allows clients to discover Jellyfin on the local network.
- 1900:1900/udp # Optional - Service discovery used by DNLA and clients.
swag:
image: ghcr.io/linuxserver/swag
container_name: swag
restart: always
ports:
- 80:80
- 443:443
cap_add:
- NET_ADMIN
environment:
- PUID=$DOCKER_UID
- PGID=$DOCKER_GID
- EMAIL=${SWAG_EMAIL}
- URL=${ROOT_DOMAIN}
- SUBDOMAINS=${SWAG_SUBDOMAINS}
- VALIDATION=${SWAG_VALIDATION}
- DNSPLUGIN=${SWAG_DNSPLUGIN}
- PROPAGATION=${SWAG_PROPAGATION}
- ONLY_SUBDOMAINS=${SWAG_ONLY_SUBDOMAINS}
- TZ=${TZ}
volumes:
- ${VOLUME_DIR}/swag/config:/config Does anyone have a suggestion to get Chrome Cast up and running? |
Describe the bug
Casting video to Chromecast does not work any more on my setup on version 10.6.2
System (please complete the following information):
To Reproduce
Expected behavior
Logs
Additional context
Network setup:
Tried:
Problem started after upgrading to 10.6.2, downgrading Jellyfin to 10.6.1 fixed it again.
There is a fix for "inverted logic for LAN IP detection" in 10.6.2. I'm guessing fixing that have triggered another bug, possibly related to the network configuration I'm running.
The text was updated successfully, but these errors were encountered: