Profile Image

Joshua Saunders

Logic Luminary, Data Druid, Cloud Navigator

Seamless Jellyfin App Installation for Samsung TVs Using Windows 11: A Highly-Detailed Walkthrough

I know I still have a lot to talk about with my home lab, but I had to get this post out there for anyone else that is interested in doing this. You can find the instructions for creating the app and adding it to your TV here: Jellyfin-Tizen Github. HOWEVER, there are some steps and information that were left out, making the overall process pretty frustrating. So to help others avoid that frustration, I’m creating this guide… at 1:00 AM on a Friday night… so I don’t forget anything that I did.

First things first, you’ll need to sign up for a Samsung account. Then, you’ll need to download and install the following on the Windows computer you’ll be using to set everything up:

Installing Git in PowerShell

To install Git in PowerShell, open PowerShell as administrator and enter the following commands:

 Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force
Install-Module posh-git -Scope CurrentUser -Force

Setup Tizen Studio

I downloaded the Tizen Studio IDE version, not the CLI version. After installing, open Package Manager and go to the Extension SDK tab, scroll down to Samsung Certificate Extension and click Install.

Then, go under the Main SDK tab, scroll down and expand Tizen SDK tools > Baseline SDK and select Certificate Manager and click Install.

Now, go to your Samsung TV. Hit the HOME button on the remote to bring up the app bar and then navigate to the left and open Apps. Once in Apps, on the remote you will press 1 2 3 4 5 in sequence, which will bring up the window to put the TV into Developer Mode. Enable Developer Mode and input the IP address of the Windows desktop that you’re working from.

Now, on the Windows system, open START > Tizen Studio > Device Manager and click the icon for Remote Device Manager.

Once that’s open, click the icon for Scan Devices and it should detect your TV that you put in developer mode earlier.

Once you see the TV, change the Connection switch to On.

Next, open up the Certificate Manager (under Start > All apps > Tizen Studio). In Certificate Manager, click the “+” symbol to add a certificate. On the screen with the choice of Samsung or Tizen, choose Samsung.

On the next window, the Step 1: Device Type tab, choose TV and click Next.
On the Step 2: Certificate Profile window, type Jellyfin under Create a new certificate profile and click Next.
On the Step 3-1: Author Certificate window, verify Create a new author certificate is selected and click Next.
On the Step 3-2: Author Certificate window, enter your name and create a password, verify Apply the same password to the distributor certificate is checked and click Next.
It will then ask you to login to your Samsung account in the system default browser that will be opened. Login to your Samsung account in the open browser window and then go back to Certificate Manager.
On the Step 4: Distributor Certificate window, select Create new distributor certificate and click Next.
On the next window (4-1), leave the settings as is (Public). You will then be required to provide the DUID of your TV. To get the DUID, go back into Device Manager, right click the TV and select DUID from the menu. Then input the displayed DUID into the DUID field in Certificate Manager, but it also may auto-populate once you’re connected. After you input the DUID, click Next.

“Congratulations” you created the certificate. On this window you should also be able to backup the certificate.

Git the Stuff

Create a folder somewhere on your drive that’s easy to get to (C:\Jellyfin\, for instance), open the folder, right click and select Open in PowerShell or Open in Terminal (I believe it says terminal if you have PowerShell 7. Mine says Terminal.). Once in PowerShell in that folder, you’re going to run the following commands in order:

git clone -b release-10.8.z https://github.com/jellyfin/jellyfin-web.git
git clone https://github.com/jellyfin/jellyfin-tizen.git

Those commands will copy all of the stuff you need from GitHub.

Build Jellyfin Web App

While still in PowerShell, enter the following commands:

cd jellyfin-web
$env:SKIP_PREPARE=1
npm ci --no-audit

You’ll see it do a bunch of stuff. Let it do it’s thing and wait until it’s finished. Once it’s finished, run the following:

$env:USE_SYSTEM_FONTS=1
npm run build:production

It’ll do a bunch more stuff. Wait until it’s finished. After it’s all done, check the jellyfin-web directory and confirm that it created a dist folder. If the folder is there, proceed to the next step.

Prepare the Interface

Back in PowerShell and run the following commands:

cd .. # To go up a folder
cd jellyfin-tizen
$env:JELLYFIN_WEB_DIR="../jellyfin-web/dist"
npm ci --no-audit

This command will do a bunch more stuff. Wait for it to finish. After it’s finished, check the jellyfin-tizen directory for a folder labeled “www.” If it’s there, we can proceed to the next step.

Build the WGT

This part took me some time to figure out and was somewhat frustrating. You see, the instructions tell you to run the following command, but it didn’t work for me and when I ran it, you can see the result…

After some searching, I found that it’s supposed to run tizen.bat. I’m not sure what part of the process was supposed to make that into the variable tizen, but whatevs… So to run the command properly, still within the jellyfin-tizen folder, run the following:

C:\tizen-studio\tools\ide\bin\tizen.bat build-web -e ".*" -e gulpfile.js -e README.md -e "node_modules/*" -e "package*.json" -e "yarn.lock"

After that finishes, run the following:

C:\tizen-studio\tools\ide\bin\tizen.bat package -t wgt -o . -- .buildResult

Deploy Jellyfin App to TV

Ensure the TV is powered on and is still in Developer Mode. Then open the Tizen Device Manager again and turn the connection to the TV on, if it’s not already. Or, you can use the following command to connect to the TV:

C:\tizen-studio\tools\sdb.exe connect 192.x.x.x # Your TV IP

Once connected to the TV, run the following:

C:\tizen-studio\tools\ide\bin\tizen.bat install -n Jellyfin.wgt -t UE65NU7400

Replace UE65NU7400 with whatever your TV serial number is, which is how it appears in Device Manager.

The ERROR

Now, after all that work, after running that final command to install the newly created app to my TV… I repeatedly received an error:

app_id[wgt] download failed [116]
spend time for wascmd is [15]ms
cmd_ret:0
Failed to install Tizen application

I tried resetting my account on the TV, resetting the WiFi connection, hard rebooting the TV (holding down the power button until it comes back on), and nothing seemed to work.

After doing some digging, I found that this error is related to there not being enough storage space on the TV. So, to clear up enough space to push the app, I had to completely reset the TV by going to Settings > Support > Self Diagnosis > Reset Smart Hub.

After I did that, I was able to successfully push the package to the TV using the same command in PowerShell.

So that’s how I did it. It took me a good two-hour chunk of my Friday afternoon to figure everything out and do it. Hopefully this post saves you some time and frustration.