[Discussion] Fixing YouTube Trailer Error 153 (Origin/Localhost Fix) #141

Closed
opened 2026-02-05 16:56:25 +03:00 by OVERLORD · 26 comments
Owner

Originally created by @kingchenc on GitHub (Jan 2, 2026).

Originally assigned to: @PatrickSt1991 on GitHub.

Hi @PatrickSt1991,

Im reaching out regarding the broken YouTube trailers on Tizen, which many users are currently facing (see analysis here: https://github.com/jellyfin/jellyfin-tizen/issues/374 or this https://github.com/jellyfin/jellyfin-tizen/issues/374#issuecomment-3587443243).

The core issue is that YouTube now requires a valid "Origin" or "Referrer" header. Since the Tizen app runs via the file:// protocol, this header is missing, resulting in "Error 153". It works in PC browsers because they provide the necessary HTTP headers.

Id like to discuss three points regarding a potential fix:

Internal Localhost Server: Are there any plans to integrate a minimal internal web server into your community builds? Serving the app via http://localhost instead of file:// seems to be the most promising way to provide a valid Origin header.

Hosted App Approach: Is it feasible to use your installer to build a "Hosted App" version where the config.xml points directly to the Jellyfin servers web URL? This would bypass the file:// limitation entirely.

Coding & Testing: I am happy to test any experimental .wgt files you might have. Furthermore, if no one is currently working on a fix, I am willing to contribute code myself to help resolve this. Please let me know if theres a specific branch or approach I should look into.

Id love to hear your thoughts on this and how we can best get trailers working again on Tizen.

Best regards!

Originally created by @kingchenc on GitHub (Jan 2, 2026). Originally assigned to: @PatrickSt1991 on GitHub. Hi @PatrickSt1991, Im reaching out regarding the broken YouTube trailers on Tizen, which many users are currently facing (see analysis here: https://github.com/jellyfin/jellyfin-tizen/issues/374 or this https://github.com/jellyfin/jellyfin-tizen/issues/374#issuecomment-3587443243). The core issue is that YouTube now requires a valid "Origin" or "Referrer" header. Since the Tizen app runs via the file:// protocol, this header is missing, resulting in "Error 153". It works in PC browsers because they provide the necessary HTTP headers. Id like to discuss three points regarding a potential fix: Internal Localhost Server: Are there any plans to integrate a minimal internal web server into your community builds? Serving the app via http://localhost instead of file:// seems to be the most promising way to provide a valid Origin header. Hosted App Approach: Is it feasible to use your installer to build a "Hosted App" version where the config.xml points directly to the Jellyfin servers web URL? This would bypass the file:// limitation entirely. Coding & Testing: I am happy to test any experimental .wgt files you might have. Furthermore, if no one is currently working on a fix, I am willing to contribute code myself to help resolve this. Please let me know if theres a specific branch or approach I should look into. Id love to hear your thoughts on this and how we can best get trailers working again on Tizen. Best regards!
OVERLORD added the bugtesting labels 2026-02-05 16:56:25 +03:00
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 2, 2026):

@kingchenc this is a tricky one, both solutions aren't feasible for old Tizen devices.

It's pretty easy to create a version that just uses the servers web browser, but it won't work on old devices cause all the new JavaScript in it.

With regards to the local webserver, I don't think that will work on Tizen at all cause it's so restrictive.

The best solution in my opinion would be to patch the actual file in tizen-web

https://raw.githubusercontent.com/jellyfin/jellyfin-web/refs/heads/master/src/plugins/youtubePlayer/plugin.js

That file is also present in all the Jellyfin builds for Tizen.

Right now it has

playerVars: {
    controls: 0,
    enablejsapi: 1,
    modestbranding: 1,
    rel: 0,
    showinfo: 0,
    fs: 0,
    playsinline: 1
}

If we append two lines to it

origin: 'https://www.youtube.com',
host: 'https://www.youtube.com'

Becomes

playerVars: {
    controls: 0,
    enablejsapi: 1,
    modestbranding: 1,
    rel: 0,
    showinfo: 0,
    fs: 0,
    playsinline: 1,
    origin: 'https://www.youtube.com',
    host: 'https://www.youtube.com'
}

That should fix the issue

Only thing im not sure about is, if the URL is youtube.nl for example, if it resolves internally to .com in YouTube's API

How can I replicate this issue? never used the trailers myself

@PatrickSt1991 commented on GitHub (Jan 2, 2026): @kingchenc this is a tricky one, both solutions aren't feasible for old Tizen devices. It's pretty easy to create a version that just uses the servers web browser, but it won't work on old devices cause all the new JavaScript in it. With regards to the local webserver, I don't think that will work on Tizen at all cause it's so restrictive. The best solution in my opinion would be to patch the actual file in tizen-web https://raw.githubusercontent.com/jellyfin/jellyfin-web/refs/heads/master/src/plugins/youtubePlayer/plugin.js That file is also present in all the Jellyfin builds for Tizen. Right now it has ``` playerVars: { controls: 0, enablejsapi: 1, modestbranding: 1, rel: 0, showinfo: 0, fs: 0, playsinline: 1 } ``` If we append two lines to it ``` origin: 'https://www.youtube.com', host: 'https://www.youtube.com' ``` Becomes ``` playerVars: { controls: 0, enablejsapi: 1, modestbranding: 1, rel: 0, showinfo: 0, fs: 0, playsinline: 1, origin: 'https://www.youtube.com', host: 'https://www.youtube.com' } ``` That should fix the issue Only thing im not sure about is, if the URL is youtube.nl for example, if it resolves internally to .com in YouTube's API How can I replicate this issue? never used the trailers myself
Author
Owner

@kingchenc commented on GitHub (Jan 2, 2026):

Hi @PatrickSt1991,

That sounds like a much more solid and lightweight approach! Targeting the plugin.js directly avoids all the Tizen OS overhead and potential compatibility issues.

To answer your questions:

  1. How to replicate the issue:
  • Open the Jellyfin Tizen app on your TV.
  • Go to any movie that has a YouTube trailer linked.
  • Click the "Trailer" button (the camera roll icon).
  • Result: The player opens but fails with "Error 153" or a message saying the video cannot be played in embedded players (but in most cases just the "Error 153" appears")
  1. Regarding regional domains (.nl, .de, etc.):
    In most cases, the YouTube IFrame API accepts https://www.youtube.com as a generic origin for the security handshake, regardless of the users region. Its definitely the best candidate for a hardcoded fix.

  2. "Old" vs. "New" devices:
    You mentioned that some solutions arent feasible for old Tizen devices. I currently have a 2018 model and a 2024 model.

  • Would you consider the 2018 model (likely Tizen 4.0/5.0) "old" in this context? Or what is for you "old Tizen"?
  • Id be very interested to see if this patch works across both generations, as it would be a huge win for backward compatibility.
  1. Testing:
    I am happy to test this! If you can provide a beta .wgt with the origin and host lines added to the plugin.js, I will install it on both my 2018 and 2024 TVs and report back immediately. If youre busy, I can also try to apply the patch myself if you point me to the right branch? :)

Let me know what you think!

@kingchenc commented on GitHub (Jan 2, 2026): Hi @PatrickSt1991, That sounds like a much more solid and lightweight approach! Targeting the `plugin.js` directly avoids all the Tizen OS overhead and potential compatibility issues. To answer your questions: 1. How to replicate the issue: - Open the Jellyfin Tizen app on your TV. - Go to any movie that has a YouTube trailer linked. - Click the "Trailer" button (the camera roll icon). - Result: The player opens but fails with "Error 153" or a message saying the video cannot be played in embedded players (but in most cases just the "Error 153" appears") 2. Regarding regional domains (.nl, .de, etc.): In most cases, the YouTube IFrame API accepts `https://www.youtube.com` as a generic origin for the security handshake, regardless of the users region. Its definitely the best candidate for a hardcoded fix. 3. "Old" vs. "New" devices: You mentioned that some solutions arent feasible for old Tizen devices. I currently have a 2018 model and a 2024 model. - Would you consider the 2018 model (likely Tizen 4.0/5.0) "old" in this context? Or what is for you "old Tizen"? - Id be very interested to see if this patch works across both generations, as it would be a huge win for backward compatibility. 4. Testing: I am happy to test this! If you can provide a beta `.wgt` with the `origin` and `host` lines added to the `plugin.js`, I will install it on both my 2018 and 2024 TVs and report back immediately. If youre busy, I can also try to apply the patch myself if you point me to the right branch? :) Let me know what you think!
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 2, 2026):

@kingchenc it's a native Jellyfin Feature right? I'm not seeing any trailer icon on my version.

Never the less here's the latest beta version v1.8.7.3-beta

To test out the youtube fix take the following step;

  1. Click the Cog (Settings)
  2. Click Set Jellyfin Config
  3. Set update mode to Server settings
  4. Fill in Server IP (Has nothing to do with the YouTube fix, but is required for Server settings)
  5. Toggle Fix YouTube Plugin (Error 153)
  6. Close the windows and hit Download & Install

That patches the file and creates a new WGT file, as I don't create the WGT files but Jeppevinkel does this is the only way I can do it.

If it works we can always ask @jeppevinkel to implement it in his build pipeline or we can create a PR for jellyfin-tizen or jellyfin-web?

With regards to the older model, yeah Tizen 4 is old, I got two TVs running Tizen 5.5 myself and to make stuff work I got to transpile everything to es2015, so that's pretty old in my opinion 😄

Please let me know if this works

@PatrickSt1991 commented on GitHub (Jan 2, 2026): @kingchenc it's a native Jellyfin Feature right? I'm not seeing any trailer icon on my version. Never the less here's the latest beta version [v1.8.7.3-beta](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/releases/tag/v1.8.7.3-beta) To test out the youtube fix take the following step; 1. Click the **Cog** (Settings) 2. Click **Set Jellyfin Config** 3. Set update mode to **Server settings** 4. Fill in **Server IP** (Has nothing to do with the YouTube fix, but is required for Server settings) 5. Toggle **Fix YouTube Plugin (Error 153)** 6. Close the windows and hit **Download & Install** That patches the file and creates a new WGT file, as I don't create the WGT files but [Jeppevinkel](https://github.com/jeppevinkel/jellyfin-tizen-builds) does this is the only way I can do it. If it works we can always ask @jeppevinkel to implement it in his build pipeline or we can create a PR for jellyfin-tizen or jellyfin-web? With regards to the older model, yeah Tizen 4 is old, I got two TVs running Tizen 5.5 myself and to make stuff work I got to transpile everything to es2015, so that's pretty old in my opinion 😄 Please let me know if this works
Author
Owner

@kingchenc commented on GitHub (Jan 3, 2026):

Hi @PatrickSt1991,

Thank you for the quick beta update! I tested v1.8.7.3-beta, but unfortunately, it is not working yet.

My Test Results:

  • Installed on a 2023 model. This TV > https://www.samsung.com/de/tvs/uhd-4k-tv/cu7000-65-inch-gu65cu7179uxzg/ < I think this have the newest Tizen Version after latest big update.

  • Installer Settings: I used "Server settings" mode with my server URL xx.seedhost.eu (HTTPS via port 443 - the Port was auto changed/filled - so i dont know if this is correctly? Or is my server settings wrong? I never used that i the early jellyfin installations).

  • I toggled "Fix YouTube Plugin (Error 153)" and clicked Download & Install.

  • Error Message: Instead of Error 153, I now get a generic Jellyfin error: "Playback Error - Error processing the request. Please try again later." (In German: "Wiedergabefehler — Fehler beim Verarbeiten der Anfrage").

Regarding the missing icons (your question):
The trailer icon (camera roll icon) only appears in Jellyfin if the movies metadata contains a trailer URL (usually from the TMDb or YouTube-Trailer plugin). If a movie has no trailer ID in the library, the icon remains hidden. Also, I think I cant guarantee that this information is 100% correct.

Is it possible that hardcoding the origin as https://www.youtube.com is now being detected/blocked differently, or could there be a syntax error in how the playerVars are being patched during the build process? Or is my server settings wrong? Which Port?

Let me know if I should provide logs or try a different configuration!

@kingchenc commented on GitHub (Jan 3, 2026): Hi @PatrickSt1991, Thank you for the quick beta update! I tested v1.8.7.3-beta, but unfortunately, it is not working yet. My Test Results: - Installed on a 2023 model. This TV > https://www.samsung.com/de/tvs/uhd-4k-tv/cu7000-65-inch-gu65cu7179uxzg/ < I think this have the newest Tizen Version after latest big update. - Installer Settings: I used "Server settings" mode with my server URL xx.seedhost.eu (HTTPS via port 443 - the Port was auto changed/filled - so i dont know if this is correctly? Or is my server settings wrong? I never used that i the early jellyfin installations). - I toggled "Fix YouTube Plugin (Error 153)" and clicked Download & Install. - Error Message: Instead of Error 153, I now get a generic Jellyfin error: "Playback Error - Error processing the request. Please try again later." (In German: "Wiedergabefehler — Fehler beim Verarbeiten der Anfrage"). Regarding the missing icons (your question): The trailer icon (camera roll icon) only appears in Jellyfin if the movies metadata contains a trailer URL (usually from the TMDb or YouTube-Trailer plugin). If a movie has no trailer ID in the library, the icon remains hidden. Also, I think I cant guarantee that this information is 100% correct. Is it possible that hardcoding the origin as `https://www.youtube.com` is now being detected/blocked differently, or could there be a syntax error in how the `playerVars` are being patched during the build process? Or is my server settings wrong? Which Port? Let me know if I should provide logs or try a different configuration!
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 3, 2026):

Okay I guess that's some progress the 153 is gone, it's now silently failing.

I've now set enablejsapi to 0 instead of 1, the downside is you no longer can control the trailer, start will be automatic and stop is only possible on destroy and no longer with the stop button on your remote control.

You didn't do anything wrong, not sure what happened with this;
xx.seedhost.eu cause the tool isn't made for a URL it's expecting IP:PORT, it's filling in the config.json from Jellyfin so you don't have to search for the server it will go straight to login page.

Added the new build in the same release v1.8.7.3-beta

@PatrickSt1991 commented on GitHub (Jan 3, 2026): Okay I guess that's some progress the 153 is gone, it's now silently failing. I've now set enablejsapi to 0 instead of 1, the downside is you no longer can control the trailer, start will be automatic and stop is only possible on destroy and no longer with the stop button on your remote control. You didn't do anything wrong, not sure what happened with this; `xx.seedhost.eu` cause the tool isn't made for a URL it's expecting IP:PORT, it's filling in the config.json from Jellyfin so you don't have to search for the server it will go straight to login page. Added the new build in the same release [v1.8.7.3-beta](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/releases/tag/v1.8.7.3-beta)
Author
Owner

@kingchenc commented on GitHub (Jan 3, 2026):

Hi @PatrickSt1991,

Thanks for the update and the explanation regarding the URL format.

Test results with the new v1.8.7.3-beta (enablejsapi: 0):
Unfortunately, I am still getting the generic "Wiedergabefehler" (Playback error). There is no 153 error anymore, but the video wont start.

Regarding the Server URL:
I think my specific hosting setup might be causing issues with your tools configuration.
I am using seedhost where Jellyfin is behind a reverse proxy path (i think):
For login: https://xxx.seedhost.eu/xxx/jellyfin/ after Login: https://xxx.seedhost.eu/xxx/jellyfin/web/ > redrict to https://xxx.seedhost.eu/xxx/jellyfin/web/#/home

Since your tool expects IP:PORT, it might be misconfiguring the config.json when I enter this full path.

  • Is there a specific way I should enter such a sub-path URL in your "Set Jellyfin Config" menu?
  • Or could this path-based setup interfere with how the YouTube plugin tries to resolve the origin?

Do you think your 'append fix' is not working because the server URL in the config is missing or incorrect?

@kingchenc commented on GitHub (Jan 3, 2026): Hi @PatrickSt1991, Thanks for the update and the explanation regarding the URL format. Test results with the new v1.8.7.3-beta (enablejsapi: 0): Unfortunately, I am still getting the generic "Wiedergabefehler" (Playback error). There is no 153 error anymore, but the video wont start. Regarding the Server URL: I think my specific hosting setup might be causing issues with your tools configuration. I am using seedhost where Jellyfin is behind a reverse proxy path (i think): For login: `https://xxx.seedhost.eu/xxx/jellyfin/` after Login: `https://xxx.seedhost.eu/xxx/jellyfin/web/` > redrict to `https://xxx.seedhost.eu/xxx/jellyfin/web/#/home` Since your tool expects `IP:PORT`, it might be misconfiguring the `config.json` when I enter this full path. - Is there a specific way I should enter such a sub-path URL in your "Set Jellyfin Config" menu? - Or could this path-based setup interfere with how the YouTube plugin tries to resolve the origin? Do you think your 'append fix' is not working because the server URL in the config is missing or incorrect?
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 3, 2026):

Thanks, my guess is that your URL isn't the issue here it's YouTube and Jellyfin.

But the big issue is we don't have any real means of debugging, I can use the custom TV Debug mode from my tool but you can't cause you use a URL instead of IP.

And my own jellyfin 10.11 is not showing any YouTube trailers anywhere so I can't do any debugging.

I'm sure there is enough information coming over the console, we just can't see it right now, cause the error you are seeing is general Jellyfin error.

Guess I first have to figure out how to get YouTube trailers active in my own version

@PatrickSt1991 commented on GitHub (Jan 3, 2026): Thanks, my guess is that your URL isn't the issue here it's YouTube and Jellyfin. But the big issue is we don't have any real means of debugging, I can use the custom TV Debug mode from my tool but you can't cause you use a URL instead of IP. And my own jellyfin 10.11 is not showing any YouTube trailers anywhere so I can't do any debugging. I'm sure there is enough information coming over the console, we just can't see it right now, cause the error you are seeing is general Jellyfin error. Guess I first have to figure out how to get YouTube trailers active in my own version
Author
Owner

@kingchenc commented on GitHub (Jan 3, 2026):

Hi @PatrickSt1991,

I totally understand the struggle with debugging without logs. The generic "Wiedergabefehler" doesnt give us much to work with, but at least the 153 error code seems to be gone for now.

I will have more time in a few days to dive deeper into this and see if I can contribute some findings or perhaps find a way to get you some logs from my end.

Regarding the trailer icons and your testing: You asked why I see the icons and you dont. I havent manually activated any special "trailer" setting, but I noticed the icon appears for about 60-80% of my library. It seems to depend entirely on whether the metadata fetcher found a YouTube link.

Here is my current plugin list for comparison. Interestingly, "TMDb Trailers" is marked as "NotSupported", yet the icons still show up-likely because the standard TMDb plugin is fetching the trailer URLs (i think):

TMDb: 10.11.1.0 (Active) <<<<< I think this one activate the trailers because TMDb Trailers is "NotSupported", but i cant confirm it
OMDb: 10.11.1.0 (Active)

TMDb Trailers: 14.0.0.0 (NotSupported) <<< Not active because not supported

Fanart: 12.0.0.0 (Active)
Intro Skipper: 1.10.11.7 (Active)
(Full list includes: AniDB, AniList, AniSearch, AudioDB, DLNA, MusicBrainz, Playback Reporting, Reports, Studio Images, TMDb Box Sets)

If you check the "Edit Info" section of a movie and see a YouTube URL in the "Trailer" field, the icon should appear.

Ill get back to you once I’ve had a chance to look "under the hood" and try to get some console output. Talk to you in a few days!

@kingchenc commented on GitHub (Jan 3, 2026): Hi @PatrickSt1991, I totally understand the struggle with debugging without logs. The generic "Wiedergabefehler" doesnt give us much to work with, but at least the 153 error code seems to be gone for now. I will have more time in a few days to dive deeper into this and see if I can contribute some findings or perhaps find a way to get you some logs from my end. Regarding the trailer icons and your testing: You asked why I see the icons and you dont. I havent manually activated any special "trailer" setting, but I noticed the icon appears for about 60-80% of my library. It seems to depend entirely on whether the metadata fetcher found a YouTube link. Here is my current plugin list for comparison. Interestingly, "TMDb Trailers" is marked as "NotSupported", yet the icons still show up-likely because the standard TMDb plugin is fetching the trailer URLs (i think): TMDb: 10.11.1.0 (Active) <<<<< I think this one activate the trailers because TMDb Trailers is "NotSupported", but i cant confirm it OMDb: 10.11.1.0 (Active) TMDb Trailers: 14.0.0.0 (NotSupported) <<< Not active because not supported Fanart: 12.0.0.0 (Active) Intro Skipper: 1.10.11.7 (Active) (Full list includes: AniDB, AniList, AniSearch, AudioDB, DLNA, MusicBrainz, Playback Reporting, Reports, Studio Images, TMDb Box Sets) If you check the "Edit Info" section of a movie and see a YouTube URL in the "Trailer" field, the icon should appear. Ill get back to you once I’ve had a chance to look "under the hood" and try to get some console output. Talk to you in a few days!
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 4, 2026):

Thanks for the explaining, I finally figured out how to get a trailer button;

Image

Had to add the IMDB in the meta data, so I can do some debugging now

@PatrickSt1991 commented on GitHub (Jan 4, 2026): Thanks for the explaining, I finally figured out how to get a trailer button; <img width="1273" height="148" alt="Image" src="https://github.com/user-attachments/assets/48b08ba8-b7c4-4173-9369-2fdad28a8764" /> Had to add the IMDB in the meta data, so I can do some debugging now
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 5, 2026):

https://docs.invidious.io/installation/

@PatrickSt1991 commented on GitHub (Jan 5, 2026): https://docs.invidious.io/installation/
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 5, 2026):

I think I found some sort of way to make it sort of work again;

Image

It's almost working on my emulator, hopefully it will work.

We are moving away from the direct YouTube URL's those are history cause there is no way to defeat their server JavaScript..
Instead we are gonna use invidious, I'm trying to make it work with a public instance if that's not going to work then I'll setup a local Invidious server and test it with that.

Worst case scenario, you'll have to setup a invidious instance to make the trailers work again, but let's hope the public instance will work

@PatrickSt1991 commented on GitHub (Jan 5, 2026): I think I found some sort of way to make it sort of work again; <img width="1456" height="827" alt="Image" src="https://github.com/user-attachments/assets/e79262fc-044a-4df0-bfdd-f77a7f5c2e17" /> It's almost working on my emulator, hopefully it will work. We are moving away from the direct YouTube URL's those are history cause there is no way to defeat their server JavaScript.. Instead we are gonna use invidious, I'm trying to make it work with a public instance if that's not going to work then I'll setup a local Invidious server and test it with that. Worst case scenario, you'll have to setup a invidious instance to make the trailers work again, but let's hope the public instance will work
Author
Owner

@kingchenc commented on GitHub (Jan 6, 2026):

Hi @PatrickSt1991,

That is a very clever workaround! Moving to Invidious seems like the perfect way to bypass YouTube's restrictive "Origin" checks and heavy JavaScript entirely.

My thoughts on this:

  • Public Instances: This would be the most user-friendly way. I hope we can find a stable one that doesnt get rate-limited too quickly.
  • Self-hosting (Seedhost): As I mentioned, I am using a seedhost for my Jellyfin server. If public instances turn out to be unstable, Id be open to setting up my own Invidious instance if that helps with testing or long-term stability.

Im really excited about this approach! Let me know as soon as you have a version ready for testing on my 2018 and 2023 Tizen TVs. This looks like the "silver bullet" for the trailer issue!

@kingchenc commented on GitHub (Jan 6, 2026): Hi @PatrickSt1991, That is a very clever workaround! Moving to Invidious seems like the perfect way to bypass YouTube's restrictive "Origin" checks and heavy JavaScript entirely. My thoughts on this: - Public Instances: This would be the most user-friendly way. I hope we can find a stable one that doesnt get rate-limited too quickly. - Self-hosting (Seedhost): As I mentioned, I am using a seedhost for my Jellyfin server. If public instances turn out to be unstable, Id be open to setting up my own Invidious instance if that helps with testing or long-term stability. Im really excited about this approach! Let me know as soon as you have a version ready for testing on my 2018 and 2023 Tizen TVs. This looks like the "silver bullet" for the trailer issue!
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 6, 2026):

@kingchenc I uploaded a new build version to the latest beta release v1.8.7.4-beta

It still has bug(s) when opening the trailer, the back button will close the trailer but the screen will go black, hitting the return button twice will show you the Jellyfin exit screen.

If you want can you check if the trailer starts at your end? In the emulator it worked, it started the trailer.

@PatrickSt1991 commented on GitHub (Jan 6, 2026): @kingchenc I uploaded a new build version to the latest beta release [v1.8.7.4-beta](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/releases/tag/v1.8.7.4-beta) It still has bug(s) when opening the trailer, the back button will close the trailer but the screen will go black, hitting the return button twice will show you the Jellyfin exit screen. If you want can you check if the trailer starts at your end? In the emulator it worked, it started the trailer.
Author
Owner

@kingchenc commented on GitHub (Jan 7, 2026):

Hi @PatrickSt1991,

Thanks for the new beta! I gave v1.8.7.4-beta a quick test on my 2023 TV, but unfortunately, the trailer did not start.

I cant say for sure yet if its the Invidious fix itself or a bug in the installers configuration logic. I noticed that the UI behavior for the "Update mode" feels different now; in previous releases, I could enable various configs without switching away from "none" as much, but now it feels a bit more restrictive/buggy when trying to apply settings. The URL cant be reset without removing the config file in the folder; otherwise it changes to 0.0.0.1 instead of being empty when i remove a ip/url.

Side note: Im actually planning to submit a PR in a few days! Im working on adding Base Path and improved Login support. Im getting a bit tired of manually re-entering my long URL and login details every time I reinstall/test, so i Id fix that for all of us. :D
Here my Fix for Base Path and new Auto Login and PR: 5530092a60

And here: (Experimental my fixxes - all not tested yet (no time - just writed the code for that)): c1c69d5d2c

@kingchenc commented on GitHub (Jan 7, 2026): Hi @PatrickSt1991, Thanks for the new beta! I gave v1.8.7.4-beta a quick test on my 2023 TV, but unfortunately, the trailer did not start. I cant say for sure yet if its the Invidious fix itself or a bug in the installers configuration logic. I noticed that the UI behavior for the "Update mode" feels different now; in previous releases, I could enable various configs without switching away from "none" as much, but now it feels a bit more restrictive/buggy when trying to apply settings. The URL cant be reset without removing the config file in the folder; otherwise it changes to 0.0.0.1 instead of being empty when i remove a ip/url. Side note: Im actually planning to submit a PR in a few days! Im working on adding Base Path and improved Login support. Im getting a bit tired of manually re-entering my long URL and login details every time I reinstall/test, so i Id fix that for all of us. :D Here my Fix for Base Path and new Auto Login and PR: https://github.com/kingchenc/Samsung-Jellyfin-Installer/commit/5530092a607ce697b8e4a0c07b65579094b9e610 And here: (Experimental my fixxes - all not tested yet (no time - just writed the code for that)): https://github.com/kingchenc/Samsung-Jellyfin-Installer/commit/c1c69d5d2caf0c0e4278568c116c35106c4fbeba
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 7, 2026):

@kingchenc great work with the PR, I merged it and created new beta release v1.8.7.5-beta, with all these new features, I think we're looking at v2.0.0.0 territory once the bugs are ironed out and testing wraps up successfully.

I could enable various configs without switching away from "none" as much

True, cause I added IsEnabled="{Binding ApiKeySet}" at various places, as some settings require interaction with the server first, I'm sure it can be improved but this was the best way I could come up with.

but unfortunately, the trailer did not start.

Did you see anything? any information at all, as your environment is behind a reversed proxy I don't think the TV Debug will work cause that runs over port 54321, I just tested it again.

About your PR, loving it! really awesome work!
But I think we need to do some rework on the Jellyfin settings window 😄

Image It's getting a bit crowded, maybe we can merge somethings together, right now the tool will fetch all the users if you fill in an API key, so maybe there's something there to reuse that element for the Auto-Login username as well.

Same for Server IP and Base Path maybe instead of showing always both we need to set a combo box that gives users the option;
Server IP : Server Port
Server URL

Maybe we can replace the Test Server and Login buttons with the same logic as is already in place for the API Key partial void OnJellyfinApiKeyChanged(string value) cause I don't like pressing buttons to often.

After authentication this button is visible, but the command is non existing, maybe we can remove it or is it missing something?

							<Button Grid.Column="2"
									Classes="secondary"
									Content="⚙"
									ToolTip.Tip="{Binding LblEnableAutoLoginConfig}"
									Command="{Binding EnableAutoLoginConfigCommand}"
									IsVisible="{Binding IsAuthenticated}"
									Width="36"/>

I tried the auto login function, but unfortunately it breaks my setup.
Image

Didn't fill in the base path, cause my Jelylfin is just running on http://192.168.2.195:8096

The server entry in config.json looks fine

Image

The Jellyfin log output shows;
{"type":"log","data":["Begin connect"]}
{"type":"log","data":[{}]}
{"type":"log","data":["Begin connectToServers, with 1 servers"]}
{"type":"log","data":["Requesting url without automatic networking: http://192.168.2.195:8096/System/Info/Public"]}
{"type":"log","data":["getTryConnectPromise http://192.168.2.195:8096"]}
{"type":"log","data":["Reconnect succeeded to http://192.168.2.195:8096"]}
{"type":"log","data":["resolving connectToServers with result.State: ServerMismatch"]}

Guess we need to look into that aswell

But still, awesome work! what started off as a little tool just to make life a little bit easier is growing to be a actual piece of software to fill in the gaps that Jellyfin and Tizen have together ❤️

@PatrickSt1991 commented on GitHub (Jan 7, 2026): @kingchenc great work with the PR, I merged it and created new beta release [v1.8.7.5-beta](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/releases/tag/v1.8.7.5-beta), with all these new features, I think we're looking at v2.0.0.0 territory once the bugs are ironed out and testing wraps up successfully. > I could enable various configs without switching away from "none" as much True, cause I added `IsEnabled="{Binding ApiKeySet}"` at various places, as some settings require interaction with the server first, I'm sure it can be improved but this was the best way I could come up with. > but unfortunately, the trailer did not start. Did you see anything? any information at all, as your environment is behind a reversed proxy I don't think the TV Debug will work cause that runs over port 54321, I just tested it again. About your PR, loving it! really awesome work! But I think we need to do some rework on the Jellyfin settings window 😄 <img width="586" height="787" alt="Image" src="https://github.com/user-attachments/assets/1599c1f0-9dbd-42b3-901a-ad6d1947deac" /> It's getting a bit crowded, maybe we can merge somethings together, right now the tool will fetch all the users if you fill in an API key, so maybe there's something there to reuse that element for the Auto-Login username as well. Same for Server IP and Base Path maybe instead of showing always both we need to set a combo box that gives users the option; Server IP : Server Port Server URL Maybe we can replace the Test Server and Login buttons with the same logic as is already in place for the API Key [partial void OnJellyfinApiKeyChanged(string value)](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/blob/64fc60d5436bbe9a4071a4f48f61755a85f6b4da/Jellyfin2Samsung-CrossOS/ViewModels/JellyfinConfigViewModel.cs#L306) cause I don't like pressing buttons to often. After authentication this button is visible, but the command is non existing, maybe we can remove it or is it missing something? ``` <Button Grid.Column="2" Classes="secondary" Content="⚙" ToolTip.Tip="{Binding LblEnableAutoLoginConfig}" Command="{Binding EnableAutoLoginConfigCommand}" IsVisible="{Binding IsAuthenticated}" Width="36"/> ``` I tried the auto login function, but unfortunately it breaks my setup. <img width="614" height="261" alt="Image" src="https://github.com/user-attachments/assets/81d910ed-8729-49e0-bf10-b1aa12db846f" /> Didn't fill in the base path, cause my Jelylfin is just running on http://192.168.2.195:8096 The server entry in config.json looks fine <img width="276" height="49" alt="Image" src="https://github.com/user-attachments/assets/394fe16d-daf4-490e-80ad-92f2a285525f" /> The Jellyfin log output shows; {"type":"log","data":["Begin connect"]} {"type":"log","data":[{}]} {"type":"log","data":["Begin connectToServers, with 1 servers"]} {"type":"log","data":["Requesting url without automatic networking: http://192.168.2.195:8096/System/Info/Public"]} {"type":"log","data":["getTryConnectPromise http://192.168.2.195:8096"]} {"type":"log","data":["Reconnect succeeded to http://192.168.2.195:8096"]} {"type":"log","data":["resolving connectToServers with result.State: ServerMismatch"]} Guess we need to look into that aswell But still, awesome work! what started off as a little tool just to make life a little bit easier is growing to be a actual piece of software to fill in the gaps that Jellyfin and Tizen have together ❤️
Author
Owner

@kingchenc commented on GitHub (Jan 7, 2026):

Hi @PatrickSt1991,

It is a pleasure to work on this with you! ❤️ Seeing this "little tool" evolve into a feature-rich piece of software is really exciting.

True, cause I added IsEnabled="{Binding ApiKeySet}" at various places, as some settings require interaction with the server first, I'm sure it can be improved but this was the best way I could come up with.

Im with you with that.

Did you see anything? any information at all, as your environment is behind a reversed proxy I don't think the TV Debug will work cause that runs over port 54321, I just tested it again.

Nope, nothing. Just to clarify: Do I need to enable ‘TV Debug’ to see anything?

--

Regarding the latest updates and PR: I hope Ive managed to squash the bugs you encountered. Could you please verify the latest open PR and see if the auto-login and connection issues are resolved on your end? > https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/pull/222

UI and the "Crowded" Settings: I totally agree that the window was getting a bit busy. Please check out my screenshot - Ive implemented a Tab-based layout.

Image

Do you think this look is okay?

I feel like separating "Server", "User", and "Playback" into tabs makes it much cleaner and easier to navigate without overwhelming the user.

And i fixxed the input mode > IP : PORT and Full URL.

API Key vs. Auto-Login: I was a bit confused because I dont use/have an API key myself. I noticed that the User tab/Auto-Login was tied to the API key requirement. Ive now decoupled those settings, so users can configure Auto-Login even if they dont have an API key. This should make the setup much more flexible.

The "ServerMismatch" error: That log output you posted is interesting. ServerMismatch usually happens when the client expects a different Server ID than what it receives. I suspect my latest changes to how the config.json is handled might fix this. Lets see if it still breaks your setup with the new PR!

Regarding that "Gear" Button: Youre right, if the command is missing or its redundant, we should remove it. Ill take a look at cleaning up those unnecessary elements in the next pass.

Looking forward to your feedback on the Tabs!

--

And yes, maybe there are redudant labels/functions in the config?

@kingchenc commented on GitHub (Jan 7, 2026): Hi @PatrickSt1991, It is a pleasure to work on this with you! ❤️ Seeing this "little tool" evolve into a feature-rich piece of software is really exciting. > True, cause I added IsEnabled="{Binding ApiKeySet}" at various places, as some settings require interaction with the server first, I'm sure it can be improved but this was the best way I could come up with. Im with you with that. > Did you see anything? any information at all, as your environment is behind a reversed proxy I don't think the TV Debug will work cause that runs over port 54321, I just tested it again. Nope, nothing. Just to clarify: Do I need to enable ‘TV Debug’ to see anything? -- Regarding the latest updates and PR: I hope Ive managed to squash the bugs you encountered. Could you please verify the latest open PR and see if the auto-login and connection issues are resolved on your end? > https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/pull/222 UI and the "Crowded" Settings: I totally agree that the window was getting a bit busy. Please check out my screenshot - Ive implemented a Tab-based layout. <img width="400" height="600" alt="Image" src="https://github.com/user-attachments/assets/d15441ad-3086-4b2e-a251-823908290f79" /> Do you think this look is okay? I feel like separating "Server", "User", and "Playback" into tabs makes it much cleaner and easier to navigate without overwhelming the user. And i fixxed the input mode > IP : PORT and Full URL. API Key vs. Auto-Login: I was a bit confused because I dont use/have an API key myself. I noticed that the User tab/Auto-Login was tied to the API key requirement. Ive now decoupled those settings, so users can configure Auto-Login even if they dont have an API key. This should make the setup much more flexible. The "ServerMismatch" error: That log output you posted is interesting. ServerMismatch usually happens when the client expects a different Server ID than what it receives. I suspect my latest changes to how the config.json is handled might fix this. Lets see if it still breaks your setup with the new PR! Regarding that "Gear" Button: Youre right, if the command is missing or its redundant, we should remove it. Ill take a look at cleaning up those unnecessary elements in the next pass. Looking forward to your feedback on the Tabs! -- And yes, maybe there are redudant labels/functions in the config?
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 8, 2026):

@kingchenc same here! I also send you a collaboration request, you clearly know your stuff.

Regarding TV Debug functionality:
When you enable the TV Debug setting and click Open TV Log, a new window opens to display console output. Here's how it works:
The debug toggle injects JavaScript into index.html that intercepts all console messages and transmits them via WebSocket. This workaround became necessary because the standard Tizen debugging method no longer functions on my TV and laptop setup.
Your proposed implementation looks excellent—it's much cleaner and more intuitive. I think this approach makes a lot of sense!

I'll create a new build tonight and will test it out!

@PatrickSt1991 commented on GitHub (Jan 8, 2026): @kingchenc same here! I also send you a collaboration request, you clearly know your stuff. Regarding TV Debug functionality: When you enable the **TV Debug** setting and click **Open TV Log**, a new window opens to display console output. Here's how it works: The debug toggle injects JavaScript into `index.html` that intercepts all console messages and transmits them via WebSocket. This workaround became necessary because the standard Tizen debugging method no longer functions on my TV and laptop setup. Your proposed implementation looks excellent—it's much cleaner and more intuitive. I think this approach makes a lot of sense! I'll create a new build tonight and will test it out!
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 8, 2026):

@kingchenc just tested it out and the auto-login function works like a charm! also the tabs are awesome and way more user friendly.

So last hurdle is making the trailer function work for your Jellyfin setup as well, then we can bring out a full release do you agree?

Latest build are added to v1.8.7.5-beta

I also moved this repo to an GitHub organization Jellyfin2Samsung and sended you an invite to be a member, after that I can give you the Role maintain so you can do PRs and GitHub actions as you seem fit 😄

@PatrickSt1991 commented on GitHub (Jan 8, 2026): @kingchenc just tested it out and the auto-login function works like a charm! also the tabs are awesome and way more user friendly. So last hurdle is making the trailer function work for your Jellyfin setup as well, then we can bring out a full release do you agree? Latest build are added to [v1.8.7.5-beta](https://github.com/PatrickSt1991/Samsung-Jellyfin-Installer/releases/tag/v1.8.7.5-beta) I also moved this repo to an GitHub organization [Jellyfin2Samsung](https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer) and sended you an invite to be a member, after that I can give you the Role maintain so you can do PRs and GitHub actions as you seem fit 😄
Author
Owner

@kingchenc commented on GitHub (Jan 8, 2026):

Hi @PatrickSt1991,

Thank you so much! I am really happy that you like the tabs and the new UI. I agree that it is much more user friendly now.

Regarding the membership: I accepted the invitation earlier today. Thank you for the trust! Do you need to unlock or activate anything else on your end to give me the maintainer role, or is it already active?

API Key vs. Auto-Login: I am still a bit unsure about the best way to handle this. As I mentioned, I do not use an API key for my Jellyfin setup. We should find a way to make the auto-login work smoothly for users with and without a key. I decoupled the settings for now to keep it flexible.

What do you think about merging the auto-login and API key functionality? Im also fine with leaving it as-is, as long as both approaches work.

Regarding the v2.0 Release and YouTube Fix: I totally agree! A full v2.0.0.0 release is a great idea once we fix the YouTube "fail/error" issue. It is the last big hurdle. It is actually quite sad that not many people seem to care about this problem, even though it affects almost every Tizen user.

My Next Steps: I will test the latest release with the TV Debug feature on in a day or two. I hope this provides the logs we need. I am also working on a Python approach to see if it can provide a fix or at least some new insights.

And a New Feature Idea - CSS Style Library: I am thinking about a new option: a built-in CSS style library. There are thousands of styles on GitHub, but having them all-in-one within the tool would be great. I imagine a list where users can select a style and see a small preview before applying it. What do you think about such a feature? Also this is not on my todo - but I was thinking about it. >>> We could say the same about plugins too - but at some point, it can also become a bit much 😄

I am looking forward to getting this fixed for everyone!

@kingchenc commented on GitHub (Jan 8, 2026): Hi @PatrickSt1991, Thank you so much! I am really happy that you like the tabs and the new UI. I agree that it is much more user friendly now. Regarding the membership: I accepted the invitation earlier today. Thank you for the trust! Do you need to unlock or activate anything else on your end to give me the maintainer role, or is it already active? API Key vs. Auto-Login: I am still a bit unsure about the best way to handle this. As I mentioned, I do not use an API key for my Jellyfin setup. We should find a way to make the auto-login work smoothly for users with and without a key. I decoupled the settings for now to keep it flexible. What do you think about merging the auto-login and API key functionality? Im also fine with leaving it as-is, as long as both approaches work. Regarding the v2.0 Release and YouTube Fix: I totally agree! A full v2.0.0.0 release is a great idea once we fix the YouTube "fail/error" issue. It is the last big hurdle. It is actually quite sad that not many people seem to care about this problem, even though it affects almost every Tizen user. My Next Steps: I will test the latest release with the TV Debug feature on in a day or two. I hope this provides the logs we need. I am also working on a Python approach to see if it can provide a fix or at least some new insights. And a New Feature Idea - CSS Style Library: I am thinking about a new option: a built-in CSS style library. There are thousands of styles on GitHub, but having them all-in-one within the tool would be great. I imagine a list where users can select a style and see a small preview before applying it. What do you think about such a feature? Also this is not on my todo - but I was thinking about it. >>> We could say the same about plugins too - but at some point, it can also become a bit much 😄 I am looking forward to getting this fixed for everyone!
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 8, 2026):

@kingchenc I'm not entirely sure if you received any notifications about this, but I've added you to the organization and assigned you the appropriate role. Let me know if you didn't get any emails or notifications.

Regarding the API Key functionality: In the early days, someone requested the ability to configure both Server Settings and User Settings. That's why the API Key feature was implemented — I needed a way to retrieve all users present in Jellyfin. The JavaScript code sets a few values in index.html and associates the userId with them, so when a specific user logs in, their personalized settings are applied.

However, this was way back when the application was still a WPF application. I'm honestly not sure if this functionality still works properly given all the modifications that have happened since then.

It's probably best to move forward with the auto-login function rather than relying on the API Key, especially since most users won't have an API key anyway. If users want to configure specific user settings, they can use your new login feature. We can leverage the userId in the same way we previously did with the API Key and selected user approach.

Your CSS Style Library is indeed a great idea, centralize everything in our tool, love it!

About your Plugin, the tool already has some support for Jellyfin plugins, some full and some limited, Tizen becomes as close as possible to the official browser version, need to refactor that whole plugin piece cause right now it's a bit of a mess but it's working for now.

Never thought this tool would reach this stage so I just added everything in there 😆

I think it's wise to add a some things we think about to the Task Tracker - Backlog we can decide later on if we want to implement it or just leave it as a brain fart

@PatrickSt1991 commented on GitHub (Jan 8, 2026): @kingchenc I'm not entirely sure if you received any notifications about this, but I've added you to the organization and assigned you the appropriate role. Let me know if you didn't get any emails or notifications. Regarding the API Key functionality: In the early days, someone requested the ability to configure both Server Settings and User Settings. That's why the API Key feature was implemented — I needed a way to retrieve all users present in Jellyfin. The JavaScript code sets a few values in `index.html` and associates the `userId` with them, so when a specific user logs in, their personalized settings are applied. However, this was way back when the application was still a WPF application. I'm honestly not sure if this functionality still works properly given all the modifications that have happened since then. It's probably best to move forward with the auto-login function rather than relying on the API Key, especially since most users won't have an API key anyway. If users want to configure specific user settings, they can use your new login feature. We can leverage the userId in the same way we previously did with the API Key and selected user approach. Your CSS Style Library is indeed a great idea, centralize everything in our tool, love it! About your Plugin, the tool already has some support for Jellyfin plugins, some full and some limited, Tizen becomes as close as possible to the official browser version, need to refactor that whole plugin piece cause right now it's a bit of a mess but it's working for now. Never thought this tool would reach this stage so I just added everything in there 😆 I think it's wise to add a some things we think about to the [Task Tracker - Backlog](https://github.com/orgs/Jellyfin2Samsung/projects/1/views/1) we can decide later on if we want to implement it or just leave it as a brain fart
Author
Owner

@kingchenc commented on GitHub (Jan 8, 2026):

Hi @PatrickSt1991,

Thank you for the update! I accepted the invitation and I can confirm that I have the permissions now. I am able to edit the readme and other files, so everything is working on that side.

Task Tracker - Backlog: I tried to access the backlog link, but I only get a 404 error.

API Key vs. Auto-Login: I will look into the logic for the API key system versus the auto login feature. It makes sense to move away from the legacy WPF approach and prioritize the auto login. I will try to find a clean way to handle this so it works for all users. Maybe we remove it completly - or keep it as "legacy" function...

CSS Library and Plugins: I am glad you like the CSS idea. I agree that we should keep the Task Tracker updated with these ideas so we do not forget them. Refactoring the plugin piece is also a good plan for the future.

I will test the latest beta with the TV debug feature as soon as I have time and report my findings.

Talk soon!


Edit: Forget what I said about the CSS library, i had a bit time^^. Ive added the functions in a new tab called “CSS Style” and reorganized the Server tab (moved the API key and Jellyfin users to the User tab and renamed it Legacy).
This might be useful for some users - Im not sure - because with the API key we have more possibilities than just “auto-login”.

Image

I let this PR open for now - check it self out when you have time :) https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/pull/223

@kingchenc commented on GitHub (Jan 8, 2026): Hi @PatrickSt1991, Thank you for the update! I accepted the invitation and I can confirm that I have the permissions now. I am able to edit the readme and other files, so everything is working on that side. Task Tracker - Backlog: I tried to access the backlog link, but I only get a 404 error. API Key vs. Auto-Login: I will look into the logic for the API key system versus the auto login feature. It makes sense to move away from the legacy WPF approach and prioritize the auto login. I will try to find a clean way to handle this so it works for all users. Maybe we remove it completly - or keep it as "legacy" function... CSS Library and Plugins: I am glad you like the CSS idea. I agree that we should keep the Task Tracker updated with these ideas so we do not forget them. Refactoring the plugin piece is also a good plan for the future. I will test the latest beta with the TV debug feature as soon as I have time and report my findings. Talk soon! -------- Edit: Forget what I said about the CSS library, i had a bit time^^. Ive added the functions in a new tab called “CSS Style” and reorganized the Server tab (moved the API key and Jellyfin users to the User tab and renamed it Legacy). This might be useful for some users - Im not sure - because with the API key we have more possibilities than just “auto-login”. <img width="400" height="600" alt="Image" src="https://github.com/user-attachments/assets/54541d95-44fb-4d06-8673-84e040637a49" /> I let this PR open for now - check it self out when you have time :) https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/pull/223
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 9, 2026):

@kingchenc another great PR your on a roll.

but before we move on, I think it's wise to refactor the code, by improving the folder structure in the helper folder

Project Structure

Core

All classes that belong to the core of the application

  • Example: FileHelper

Tizen

Certificate

All classes that belong to Tizen stuff

  • Example: CipherUtil

Devices

  • Example: DeviceHelper.cs

API

All classes that do API stuff

  • Example: JellyfinApiClient

Jellyfin

Plugins

  • PluginManager.cs

HomeSections

  • Move functions to new class

KefinTweaks

  • Move functions to new class

CSS

  • Move functions to new class

Diagnostic

  • Rename JellyfinBootloaderInjector.cs to JellyfinDiagnostic.cs

Fixes

  • YouTube fix?

What do you think? or maybe you got a different view on it?

As the tool is growing it's important to have a separation of concerns so we can still maintain it with ease?

@PatrickSt1991 commented on GitHub (Jan 9, 2026): @kingchenc another great PR your on a roll. but before we move on, I think it's wise to refactor the code, by improving the folder structure in the helper folder # Project Structure ## Core All classes that belong to the core of the application - Example: `FileHelper` ### Tizen #### Certificate All classes that belong to Tizen stuff - Example: `CipherUtil` #### Devices - Example: `DeviceHelper.cs` ## API All classes that do API stuff - Example: `JellyfinApiClient` ## Jellyfin ### Plugins - `PluginManager.cs` ### HomeSections - Move functions to new class ### KefinTweaks - Move functions to new class ### CSS - Move functions to new class ### Diagnostic - Rename `JellyfinBootloaderInjector.cs` to `JellyfinDiagnostic.cs` ### Fixes - YouTube fix? What do you think? or maybe you got a different view on it? As the tool is growing it's important to have a separation of concerns so we can still maintain it with ease?
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 12, 2026):

@kingchenc so the one invidious instance I found without a wall has implemented a wall, so now I'm looking into Cobalt it looks promising, but it does require running something local..

@PatrickSt1991 commented on GitHub (Jan 12, 2026): @kingchenc so the one invidious instance I found without a wall has implemented a wall, so now I'm looking into [Cobalt](https://github.com/imputnet/cobalt) it looks promising, but it does require running something local..
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 15, 2026):

@kingchenc so I had to become creative again.. this yt-dlp fork needs to run in a docker container or somewhere else, I got it in a docker container.

That address will be fed into the javascript d19ad9e600/Jellyfin2Samsung-CrossOS/Helpers/Jellyfin/Patches/FixYouTube.cs (L31)

Right now my instance is hardcoded cause still need to do some testing and finetune the viewmodel
d19ad9e600/Jellyfin2Samsung-CrossOS/ViewModels/JellyfinConfigViewModel.cs (L143)

Cause I just placed it in there, the textbox looks like shit and need to create it so it updates the ip dynamically into the javascript.

But it's almost ready for a test, as the yt-dlp fork is fetching the file and feeding a local mp4 file, it takes a bit longer cause it will download the file but that's the only way I could make it work...

But I'm a little short on time, I'm doing my best

@PatrickSt1991 commented on GitHub (Jan 15, 2026): @kingchenc so I had to become creative again.. this [yt-dlp](https://github.com/Jellyfin2Samsung/yt-dlp-tv) fork needs to run in a docker container or somewhere else, I got it in a docker container. That address will be fed into the javascript https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/blob/d19ad9e600a9c86c76f62e441cd9249732237f42/Jellyfin2Samsung-CrossOS/Helpers/Jellyfin/Patches/FixYouTube.cs#L31 Right now my instance is hardcoded cause still need to do some testing and finetune the viewmodel https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/blob/d19ad9e600a9c86c76f62e441cd9249732237f42/Jellyfin2Samsung-CrossOS/ViewModels/JellyfinConfigViewModel.cs#L143 Cause I just placed it in there, the textbox looks like shit and need to create it so it updates the ip dynamically into the javascript. But it's almost ready for a test, as the yt-dlp fork is fetching the file and feeding a local mp4 file, it takes a bit longer cause it will download the file but that's the only way I could make it work... But I'm a little short on time, I'm doing my best
Author
Owner

@PatrickSt1991 commented on GitHub (Jan 17, 2026):

@kingchenc here it is v2.0.0.0

In order to fix the YouTube error this is the final fix;
YouTube (Download/Stream) TV Service you'll have to spin up a new docker container running that little server.

and fill in the IP or URL in the textbox

Image

It will fetch the YouTube movie, downloads it to a local folder, creates a stream and sends it back to Jellyfin as a MP4 stream.

This workaround will take a bit longer to watch YouTube trailer but that's cause of the download, I never could manage to make the /stream to work, that will of course be faster.. but right now the /file is hardcoded in the JavaScript injection.

Maybe some day I'll make it a option to chose for Stream or File

@PatrickSt1991 commented on GitHub (Jan 17, 2026): @kingchenc here it is [v2.0.0.0](https://github.com/Jellyfin2Samsung/Samsung-Jellyfin-Installer/releases/tag/v2.0.0.0) In order to fix the YouTube error this is the final fix; [YouTube (Download/Stream) TV Service](https://github.com/Jellyfin2Samsung/yt-dlp-tv) you'll have to spin up a new docker container running that little server. and fill in the IP or URL in the textbox <img width="678" height="81" alt="Image" src="https://github.com/user-attachments/assets/fae9b197-b501-47a2-821a-25beba4a7d68" /> It will fetch the YouTube movie, downloads it to a local folder, creates a stream and sends it back to Jellyfin as a MP4 stream. This workaround will take a bit longer to watch YouTube trailer but that's cause of the download, I never could manage to make the /stream to work, that will of course be faster.. but right now the /file is hardcoded in the JavaScript injection. Maybe some day I'll make it a option to chose for Stream or File
Author
Owner

@kingchenc commented on GitHub (Jan 17, 2026):

Hi @PatrickSt1991,

This is very nice work! I like this workaround a lot. Even if the download takes a bit longer to start, having working trailers is much better than having no trailers at all.

Congratulations on the v2.0.0.0 release! This is a big milestone for the project and the result of a lot of hard work.

I will set up the docker container on my side and test the full flow as soon as possible. Thank you for finding a way to make this function work again! Hope i can get this work too on my seedbox - if not - i must find a solution :)

@kingchenc commented on GitHub (Jan 17, 2026): Hi @PatrickSt1991, This is very nice work! I like this workaround a lot. Even if the download takes a bit longer to start, having working trailers is much better than having no trailers at all. Congratulations on the v2.0.0.0 release! This is a big milestone for the project and the result of a lot of hard work. I will set up the docker container on my side and test the full flow as soon as possible. Thank you for finding a way to make this function work again! Hope i can get this work too on my seedbox - if not - i must find a solution :)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/Samsung-Jellyfin-Installer#141