2026-04-29, 10:32 PM
(This post was last modified: 2026-04-29, 10:39 PM by AndrzejL. Edited 1 time in total.)
Hi Conor,
Quick update - I have found the root cause and it's fixed.
The issue was NOT a bug in jellyfin-web after all. It was a Content Security
Policy header in my nginx reverse proxy configuration blocking blob: URLs.
jellyfin-web 10.11.x switched Chromium browsers from native HLS to hls.js
(PR #7274). hls.js uses blob: URLs via Media Source Extensions (MSE). My nginx
CSP header only had:
default-src 'self' https: data: 'unsafe-inline' 'unsafe-eval'
Adding blob: fixed it immediately:
default-src 'self' https: data: blob: 'unsafe-inline' 'unsafe-eval'
In 10.10.7 Edge used native HLS which doesn't need blob: URLs - so it worked
fine behind the same nginx config. The 10.11.x change exposed the gap.
Regarding Matrix/Discord - I appreciate the suggestion but I prefer keeping
technical discussions on searchable, archivable platforms. I am a bit of a boomer...
Chat platforms don't preserve knowledge well - if a server goes away, all that
context disappears with it. Forums and GitHub remain searchable and benefit the wider community
long-term. I'll be posting the full solution back to the GitHub issue.
Thanks for pointing me in the right direction with the bot analysis - it helped
narrow down the hls.js angle which led me to the CSP blocker.
Cheers,
Andrzej
Quick update - I have found the root cause and it's fixed.
The issue was NOT a bug in jellyfin-web after all. It was a Content Security
Policy header in my nginx reverse proxy configuration blocking blob: URLs.
jellyfin-web 10.11.x switched Chromium browsers from native HLS to hls.js
(PR #7274). hls.js uses blob: URLs via Media Source Extensions (MSE). My nginx
CSP header only had:
default-src 'self' https: data: 'unsafe-inline' 'unsafe-eval'
Adding blob: fixed it immediately:
default-src 'self' https: data: blob: 'unsafe-inline' 'unsafe-eval'
In 10.10.7 Edge used native HLS which doesn't need blob: URLs - so it worked
fine behind the same nginx config. The 10.11.x change exposed the gap.
Regarding Matrix/Discord - I appreciate the suggestion but I prefer keeping
technical discussions on searchable, archivable platforms. I am a bit of a boomer...
Chat platforms don't preserve knowledge well - if a server goes away, all that
context disappears with it. Forums and GitHub remain searchable and benefit the wider community
long-term. I'll be posting the full solution back to the GitHub issue.
Thanks for pointing me in the right direction with the bot analysis - it helped
narrow down the hls.js angle which led me to the CSP blocker.
Cheers,
Andrzej

