[Issue]: Chromecast not working #3680

Closed
opened 2026-02-06 23:43:39 +03:00 by OVERLORD · 14 comments
Owner

Originally created by @bidouapp on GitHub (Mar 20, 2022).

Please describe your bug

Hi,

I have add a SSL certificate on my Jellyfin Server and i have configure a proxy with apache. Like a DNS i have take a Duckdns.

In the moment: Connexion https://myserver.com/ --> Proxy --> Jellyfin

The problem is I have nothing appearing for the chromecast.

Jellyfin Version

10.7.7

if other:

No response

Environment

- OS:Ubuntu / Raspberry
- Virtualization:
- Clients:
- Browser: Chrome, iOS
- FFmpeg Version:
- Playback Method:
- Hardware Acceleration:
- Plugins:
- Reverse Proxy: Apache
- Base URL:
- Networking:
- Storage:

Jellyfin logs

No response

FFmpeg logs

No response

Please attach any browser or client logs here

No response

Please attach any screenshots here

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct
Originally created by @bidouapp on GitHub (Mar 20, 2022). ### Please describe your bug Hi, I have add a SSL certificate on my Jellyfin Server and i have configure a proxy with apache. Like a DNS i have take a Duckdns. In the moment: Connexion https://myserver.com/ --> Proxy --> Jellyfin The problem is I have nothing appearing for the chromecast. ### Jellyfin Version 10.7.7 ### if other: _No response_ ### Environment ```markdown - OS:Ubuntu / Raspberry - Virtualization: - Clients: - Browser: Chrome, iOS - FFmpeg Version: - Playback Method: - Hardware Acceleration: - Plugins: - Reverse Proxy: Apache - Base URL: - Networking: - Storage: ``` ### Jellyfin logs _No response_ ### FFmpeg logs _No response_ ### Please attach any browser or client logs here _No response_ ### Please attach any screenshots here _No response_ ### Code of Conduct - [X] I agree to follow this project's Code of Conduct
OVERLORD added the bugstale labels 2026-02-06 23:43:39 +03:00
Author
Owner

@ownbee commented on GitHub (Mar 28, 2022):

Chromecast is working decently. I have kinda the same setup as you have including SSL, public domain, docker containers for reverse-proxy and jellyfin. It's most likely some problem with your setup and not a jellyfin bug. Here is some general tips though:

  • You will need openly trusted SSL certificates (non-self-signed), else chromecast will reject it since it does not know it. - Use HTTP (unsecure) or a free certificate service like let's encrypt.
  • Make sure chromecast gets you public domain (your duckdns domain) or use local IP address (also works). Chromecast will contact 8.8.8.8 if it needs to resolve a domain - login with your duckdns address in the app or set the address in jellyfin settings, i don't remember exactly where you need to make the change.
  • Make sure your proxy is setup correctly, a default apache configuration will probably not work. Check your logs with full verbosity.

The problem is I have nothing appearing for the chromecast.

What do you mean? You should at least see the Jellyfin Chromecast receiver app welcome screen appearing, else you have a problem with your network or chromecast HW most likely.

@ownbee commented on GitHub (Mar 28, 2022): Chromecast is working decently. I have kinda the same setup as you have including SSL, public domain, docker containers for reverse-proxy and jellyfin. It's most likely some problem with your setup and not a jellyfin bug. Here is some general tips though: - You will need openly trusted SSL certificates (non-self-signed), else chromecast will reject it since it does not know it. - Use HTTP (unsecure) or a free certificate service like let's encrypt. - Make sure chromecast gets you public domain (your duckdns domain) or use local IP address (also works). Chromecast will contact 8.8.8.8 if it needs to resolve a domain - login with your duckdns address in the app or set the address in jellyfin settings, i don't remember exactly where you need to make the change. - Make sure your proxy is setup correctly, a default apache configuration will probably not work. Check your logs with full verbosity. > The problem is I have nothing appearing for the chromecast. What do you mean? You should at least see the Jellyfin Chromecast receiver app welcome screen appearing, else you have a problem with your network or chromecast HW most likely.
Author
Owner

@JPVenson commented on GitHub (Apr 2, 2022):

I had the same problem with LetsEncrypt certificates. What certificate are you using?

LetsEncrypt certificates do not seem to work on both of my external ChromeCast devices (even the newer 3rd generation ones). I am using treafik as proxy and had to create a non TLS route for it specifically for the jellyfin chromecast app to work.

@JPVenson commented on GitHub (Apr 2, 2022): I had the same problem with LetsEncrypt certificates. What certificate are you using? LetsEncrypt certificates do not seem to work on both of my external ChromeCast devices (even the newer 3rd generation ones). I am using treafik as proxy and had to create a non TLS route for it specifically for the jellyfin chromecast app to work.
Author
Owner

@ginger-tek commented on GitHub (Apr 28, 2022):

LetsEncrypt certificates do not seem to work on both of my external ChromeCast devices (even the newer 3rd generation ones). I am using treafik as proxy and had to create a non TLS route for it specifically for the jellyfin chromecast app to work.

Same here. Get as far as selecting the casting device, but then get an error when trying to actually cast. I was wondering if it was with my setup or Google denying my LetsEncrypt cert, but I might be having the same issue

@ginger-tek commented on GitHub (Apr 28, 2022): > LetsEncrypt certificates do not seem to work on both of my external ChromeCast devices (even the newer 3rd generation ones). I am using treafik as proxy and had to create a non TLS route for it specifically for the jellyfin chromecast app to work. Same here. Get as far as selecting the casting device, but then get an error when trying to actually cast. I was wondering if it was with my setup or Google denying my LetsEncrypt cert, but I might be having the same issue
Author
Owner

@474r4x14 commented on GitHub (May 5, 2022):

I'm having the same issue but it did work up to a month or two ago.

Similar to you I'm going subdomain -> proxy (nginx) -> Jellyfin

The original instructions I used were taken from the Jellyfin docs and it had been working pretty well.

I used to get my Google speakers in the cast list but now when I try I only get "My Device" in the list. Strangely enough, if I open the Jellyfin app on my phone it does appear in the list, it just doesn't seem to see the speakers on the WiFi.

The only thing I'm noticing now is that in the console I get the following error which I'm guessing is the cause:

cast_sender.js:10 Refused to load the script 'https://www.gstatic.com/eureka/clank/100/cast_sender.js' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-inline' https://www.gstatic.com/cv/js/sender/v1/cast_sender.js https://www.gstatic.com/eureka/clank/95/cast_sender.js https://www.gstatic.com/eureka/clank/96/cast_sender.js https://www.gstatic.com/eureka/clank/97/cast_sender.js https://www.youtube.com blob:". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.

@474r4x14 commented on GitHub (May 5, 2022): I'm having the same issue but it _did_ work up to a month or two ago. Similar to you I'm going subdomain -> proxy (nginx) -> Jellyfin The original instructions I used were taken from [the Jellyfin docs](https://jellyfin.org/docs/general/networking/nginx.html) and it had been working pretty well. I used to get my Google speakers in the cast list but now when I try I only get "My Device" in the list. Strangely enough, if I open the Jellyfin app on my phone it does appear in the list, it just doesn't seem to see the speakers on the WiFi. The only thing I'm noticing now is that in the console I get the following error which I'm guessing is the cause: ` cast_sender.js:10 Refused to load the script 'https://www.gstatic.com/eureka/clank/100/cast_sender.js' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-inline' https://www.gstatic.com/cv/js/sender/v1/cast_sender.js https://www.gstatic.com/eureka/clank/95/cast_sender.js https://www.gstatic.com/eureka/clank/96/cast_sender.js https://www.gstatic.com/eureka/clank/97/cast_sender.js https://www.youtube.com blob:". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback. `
Author
Owner

@1337joe commented on GitHub (May 8, 2022):

@DefenestrateMe It's trying to load the chromecast script from https://www.gstatic.com/eureka/clank/100/cast_sender.js but it's blocked from loading that script file.

You had the previous versions of the script allowed in nginx (https://www.gstatic.com/eureka/clank/95/cast_sender.js, 96, 97), so you can either add the 100 script to the nginx add_header Content-Security-Policy line or just bump one of those numbers up to 100.

I think someone looked into it a few months ago and it's not possible to wildcard the version number in the nginx config, so either you open it up to trust all scripts on the domain or you have to keep updating the nginx config when there's a new version of the remote script.

@1337joe commented on GitHub (May 8, 2022): @DefenestrateMe It's trying to load the chromecast script from `https://www.gstatic.com/eureka/clank/100/cast_sender.js` but it's blocked from loading that script file. You had the previous versions of the script allowed in nginx (`https://www.gstatic.com/eureka/clank/95/cast_sender.js`, 96, 97), so you can either add the 100 script to the nginx `add_header Content-Security-Policy` line or just bump one of those numbers up to 100. I think someone looked into it a few months ago and it's not possible to wildcard the version number in the nginx config, so either you open it up to trust all scripts on the domain or you have to keep updating the nginx config when there's a new version of the remote script.
Author
Owner

@474r4x14 commented on GitHub (May 9, 2022):

@1337joe Thanks! That's fixed it for me.

@474r4x14 commented on GitHub (May 9, 2022): @1337joe Thanks! That's fixed it for me.
Author
Owner

@raegun2k commented on GitHub (Jun 29, 2022):

Windows server, running on Windows 10 on an old Surface Pro 1st gen I've repurposed. Using Android 12 on Samsung Fold3 as client.

All through HTTP, as it's not exposed to the outside internet.

Hitting cast from the player to my Chromecast devices shows the Jellyfin screen. But hitting play on the player does nothing. Video never plays. Happens with all media. No errors appears on the Android app, it's just not responding to media control nor streaming the content.

I've been needing to use VLC Android player using Jellyfin as a media server to cast to my TV. Will need to switch to Emby for now as this is the functionality I need most.

Will keep it installed(though disabled) for now and provide whatever logging is requested.

@raegun2k commented on GitHub (Jun 29, 2022): Windows server, running on Windows 10 on an old Surface Pro 1st gen I've repurposed. Using Android 12 on Samsung Fold3 as client. All through HTTP, as it's not exposed to the outside internet. Hitting cast from the player to my Chromecast devices shows the Jellyfin screen. But hitting play on the player does nothing. Video never plays. Happens with all media. No errors appears on the Android app, it's just not responding to media control nor streaming the content. I've been needing to use VLC Android player using Jellyfin as a media server to cast to my TV. Will need to switch to Emby for now as this is the functionality I need most. Will keep it installed(though disabled) for now and provide whatever logging is requested.
Author
Owner

@Peronia commented on GitHub (Feb 11, 2023):

As far as I understand I have to make my jellyfin public if I would use a chromecast, right?
Is jellyfin secure to do it?
Also when I'm at home I must use my public ip because my internal dns record is another one as for public, right?

@Peronia commented on GitHub (Feb 11, 2023): As far as I understand I have to make my jellyfin public if I would use a chromecast, right? Is jellyfin secure to do it? Also when I'm at home I must use my public ip because my internal dns record is another one as for public, right?
Author
Owner

@ownbee commented on GitHub (Feb 11, 2023):

@Peronia you have two options for non-external:

  1. Use LAN-IP addresses everywhere in your configuration so that no DNS lookups are necessary. Chromecast will then contact your jellyfin server directly.
  2. (advanced) If using a LAN DNS server you can force route the chromecast DNS queries to your own DNS server by configuring your router. I use this in my setup mainly because I want control over what my units are doing and want to block google analytics and tracking domain, I have my jellyfin externally accessed.
@ownbee commented on GitHub (Feb 11, 2023): @Peronia you have two options for non-external: 1. Use LAN-IP addresses everywhere in your configuration so that no DNS lookups are necessary. Chromecast will then contact your jellyfin server directly. 2. (advanced) If using a LAN DNS server you can force route the chromecast DNS queries to your own DNS server by configuring your router. I use this in my setup mainly because I want control over what my units are doing and want to block google analytics and tracking domain, I have my jellyfin externally accessed.
Author
Owner

@Peronia commented on GitHub (Feb 11, 2023):

@ownbee thanks. First option is clear.
But the second, what exactly do you mean with configure your router? Do you mean to set the dhcp DNS server to my own server?

@Peronia commented on GitHub (Feb 11, 2023): @ownbee thanks. First option is clear. But the second, what exactly do you mean with configure your router? Do you mean to set the dhcp DNS server to my own server?
Author
Owner

@ownbee commented on GitHub (Feb 11, 2023):

@ownbee thanks. First option is clear. But the second, what exactly do you mean with configure your router? Do you mean to set the dhcp DNS server to my own server?

DHCP is not enough since the Chromecast is hardcoded to use 8.8.8.8 (Google DNS) and will ignore your DHCP servers "hint" for DNS server. What you need to do is to have an entity in between your Chromecast and your external gateway (typically your router) that is rewriting/routing all packets coming from your Chromecast IP address with destination port 53 to your own DNS server. Some routers have an option for this in their UI. Otherwise you might need to create iptables rules yourself. All routers have different procedures and not all support this with stock firmware. There are guides online about this for some routers. For example, I have iptable rules in my router that is routing all packets that is not coming from my DNS server to my DNS server regardless of origin.

@ownbee commented on GitHub (Feb 11, 2023): > @ownbee thanks. First option is clear. But the second, what exactly do you mean with configure your router? Do you mean to set the dhcp DNS server to my own server? DHCP is not enough since the Chromecast is hardcoded to use 8.8.8.8 (Google DNS) and will ignore your DHCP servers "hint" for DNS server. What you need to do is to have an entity in between your Chromecast and your external gateway (typically your router) that is rewriting/routing all packets coming from your Chromecast IP address with destination port 53 to your own DNS server. Some routers have an option for this in their UI. Otherwise you might need to create iptables rules yourself. All routers have different procedures and not all support this with stock firmware. There are guides online about this for some routers. For example, I have iptable rules in my router that is routing all packets that is not coming from my DNS server to my DNS server regardless of origin.
Author
Owner

@Peronia commented on GitHub (Feb 15, 2023):

@ownbee thanks again.
Option one is not suitable for me. My router (opnsense) seems not to support your second option.
I found a third solution: I own my internal domain so I can set a new entry for my jellyfin dns (with my internal ip) at my registrar. So Googles dns server can resolve it. It works fine. Maybe not the best solution in case of security.
I think jellyfin can add a little bit docu about that or/and make a log entry, that the jellyfin server admin can see the error in the logs.

@Peronia commented on GitHub (Feb 15, 2023): @ownbee thanks again. Option one is not suitable for me. My router (opnsense) seems not to support your second option. I found a third solution: I own my internal domain so I can set a new entry for my jellyfin dns (with my internal ip) at my registrar. So Googles dns server can resolve it. It works fine. Maybe not the best solution in case of security. I think jellyfin can add a little bit docu about that or/and make a log entry, that the jellyfin server admin can see the error in the logs.
Author
Owner

@jellyfin-bot commented on GitHub (Sep 2, 2023):

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

@jellyfin-bot commented on GitHub (Sep 2, 2023): This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments. If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label. This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on [Matrix or Social Media](https://docs.jellyfin.org/general/getting-help.html).
Author
Owner

@fogolin commented on GitHub (Dec 28, 2023):

I'm still facing the same issue here.

@fogolin commented on GitHub (Dec 28, 2023): I'm still facing the same issue here.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#3680