{"id":77,"date":"2023-12-02T07:38:22","date_gmt":"2023-12-02T07:38:22","guid":{"rendered":"https:\/\/joshuasaunders.net\/?p=77"},"modified":"2024-02-05T21:32:02","modified_gmt":"2024-02-05T21:32:02","slug":"a-seamless-jellyfin-app-installation-guide-for-samsung-tvs-using-windows-11-a-highly-detailed-walkthrough","status":"publish","type":"post","link":"https:\/\/joshuasaunders.net\/index.php\/2023\/12\/02\/a-seamless-jellyfin-app-installation-guide-for-samsung-tvs-using-windows-11-a-highly-detailed-walkthrough\/","title":{"rendered":"Seamless Jellyfin App Installation for Samsung TVs Using Windows 11: A Highly-Detailed Walkthrough"},"content":{"rendered":"\n<p>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: <a href=\"https:\/\/github.com\/jellyfin\/jellyfin-tizen\/\">Jellyfin-Tizen Github<\/a>. 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&#8217;m creating this guide&#8230; at 1:00 AM on a Friday night&#8230; so I don&#8217;t forget anything that I did.<\/p>\n\n\n\n<p>First things first, you&#8217;ll need to <a href=\"https:\/\/account.samsung.com\/accounts\/67045f103d3e7771da79c41c272d8c83\/terms?itnlYN=Y\"><strong>sign up for a Samsung account<\/strong><\/a>. Then, you&#8217;ll need to download and install the following on the Windows computer you&#8217;ll be using to set everything up:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li> <a href=\"https:\/\/nodejs.org\/en\" target=\"_blank\" rel=\"noopener\">Node.js<\/a>\n  <\/li>\n\n\n\n<li> <a href=\"https:\/\/developer.tizen.org\/development\/tizen-studio\/download\" target=\"_blank\" rel=\"noopener\">Tizen Studio 4.6+ with IDE or Tizen Studio 4.6+ with CLI<\/a>\n  <\/li>\n\n\n\n<li> Git\n\n<p><\/p><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installing Git in PowerShell<\/h2>\n\n\n\n<p>To install Git in PowerShell, open PowerShell as administrator and enter the following commands:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Install-Module posh-git -Scope CurrentUser -Force<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Setup Tizen Studio<\/h2>\n\n\n\n<p>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 <strong>Samsung Certificate Extension<\/strong> and click <strong>Install<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f0c5af2212d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f0c5af2212d\" class=\"aligncenter size-full is-resized has-lightbox wp-lightbox-container\"><img fetchpriority=\"high\" decoding=\"async\" width=\"629\" height=\"646\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image.png\" alt=\"\" class=\"wp-image-81\" style=\"width:234px;height:auto\" srcset=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image.png 629w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-292x300.png 292w\" sizes=\"(max-width: 629px) 100vw, 629px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n<p>Then, go under the Main SDK tab, scroll down and expand <strong>Tizen SDK tools &gt; Baseline SDK<\/strong> and select <strong>Certificate Manager<\/strong> and click <strong>Install<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f0c5af22555&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f0c5af22555\" class=\"aligncenter size-full is-resized has-lightbox wp-lightbox-container\"><img decoding=\"async\" width=\"627\" height=\"644\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-2.png\" alt=\"\" class=\"wp-image-83\" style=\"width:245px;height:auto\" srcset=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-2.png 627w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-2-292x300.png 292w\" sizes=\"(max-width: 627px) 100vw, 627px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n<p>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 <strong>Apps<\/strong>. Once in <strong>Apps<\/strong>, on the remote you will press <strong>1 2 3 4 5<\/strong> in sequence, which will bring up the window to put the TV into Developer Mode. Enable <strong>Developer Mode<\/strong> and input the IP address of the <strong>Windows<\/strong> desktop that you&#8217;re working from.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f0c5af22933&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f0c5af22933\" class=\"aligncenter size-full is-resized has-lightbox wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"768\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-5.png\" alt=\"\" class=\"wp-image-95\" style=\"width:299px;height:auto\" srcset=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-5.png 1024w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-5-300x225.png 300w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-5-768x576.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f0c5af22cea&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f0c5af22cea\" class=\"aligncenter size-large is-resized has-lightbox wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/img_2714-1-1024x768.jpg\" alt=\"\" class=\"wp-image-93\" style=\"width:297px;height:auto\" srcset=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/img_2714-1-1024x768.jpg 1024w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/img_2714-1-300x225.jpg 300w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/img_2714-1-768x576.jpg 768w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/img_2714-1-1536x1152.jpg 1536w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/img_2714-1-2048x1536.jpg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n<p>Now, on the Windows system, open <strong>START &gt; Tizen Studio &gt; Device Manager<\/strong> and click the icon for <strong>Remote Device Manager<\/strong>. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f0c5af23087&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f0c5af23087\" class=\"aligncenter size-full is-resized has-lightbox wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"653\" height=\"569\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-7.png\" alt=\"\" class=\"wp-image-98\" style=\"width:270px;height:auto\" srcset=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-7.png 653w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-7-300x261.png 300w\" sizes=\"(max-width: 653px) 100vw, 653px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n<p>Once that&#8217;s open, click the icon for <strong>Scan Devices<\/strong> and it should detect your TV that you put in developer mode earlier.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f0c5af2339a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f0c5af2339a\" class=\"aligncenter size-full is-resized has-lightbox wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"405\" height=\"288\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-9.png\" alt=\"\" class=\"wp-image-100\" style=\"width:149px;height:auto\" srcset=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-9.png 405w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-9-300x213.png 300w\" sizes=\"(max-width: 405px) 100vw, 405px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n<p>Once you see the TV, change the <strong>Connection<\/strong> switch to <strong>On<\/strong>. <\/p>\n\n\n\n<p>Next, open up the <strong>Certificate Manager<\/strong> (under Start &gt; All apps &gt; Tizen Studio). In Certificate Manager, click the &#8220;<strong>+<\/strong>&#8221; symbol to add a certificate. On the screen with the choice of <strong>Samsung <\/strong>or <strong>Tizen<\/strong>, choose <strong>Samsung<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f0c5af236d7&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f0c5af236d7\" class=\"aligncenter size-full is-resized has-lightbox wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"679\" height=\"435\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-4.png\" alt=\"\" class=\"wp-image-91\" style=\"width:223px;height:auto\" srcset=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-4.png 679w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-4-300x192.png 300w\" sizes=\"(max-width: 679px) 100vw, 679px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n<p>On the next window, the <strong>Step 1: Device Type<\/strong> tab, choose <strong>TV<\/strong> and click <strong>Next<\/strong>. <br>On the <strong>Step 2: Certificate Profile<\/strong> window, type <strong>Jellyfin<\/strong> under <strong>Create a new certificate profile<\/strong> and click <strong>Next<\/strong>.<br>On the <strong>Step 3-1: Author Certificate<\/strong> window, verify <strong>Create a new author certificate<\/strong> is selected and click <strong>Next<\/strong>.<br>On the <strong>Step 3-2: Author Certificate<\/strong> window, enter your name and create a password, verify <strong>Apply the same password to the distributor certificate<\/strong> is checked and click <strong>Next.<\/strong><br>It will then ask you to <strong>login to your Samsung account in the system default browser that will be opened<\/strong>. Login to your Samsung account in the open browser window and then go back to Certificate Manager.<br>On the <strong>Step 4: Distributor Certificate<\/strong> window, select <strong>Create new distributor certificate<\/strong> and click <strong>Next.<\/strong><br>On the next window (4-1), leave the settings as is (<strong>Public<\/strong>). You will then be required to provide the <strong>DUID<\/strong> of your TV. To get the DUID, go back into <strong>Device Manager<\/strong>, right click the TV and select <strong>DUID<\/strong> from the menu. Then input the displayed <strong>DUID<\/strong> into the <strong>DUID <\/strong>field in <strong>Certificate Manager<\/strong>, but it also may auto-populate once you&#8217;re connected. After you input the DUID, click <strong>Next<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f0c5af239df&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f0c5af239df\" class=\"aligncenter size-full is-resized has-lightbox wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"477\" height=\"462\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-12.png\" alt=\"\" class=\"wp-image-104\" style=\"width:202px;height:auto\" srcset=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-12.png 477w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-12-300x291.png 300w\" sizes=\"(max-width: 477px) 100vw, 477px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n<p>&#8220;Congratulations&#8221; you created the certificate. On this window you should also be able to backup the certificate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Git the Stuff<\/h2>\n\n\n\n<p>Create a folder somewhere on your drive that&#8217;s easy to get to (C:\\Jellyfin\\, for instance), open the folder, right click and select <strong>Open in PowerShell<\/strong> or <strong>Open in Terminal<\/strong> (I believe it says terminal if you have PowerShell 7. Mine says Terminal.). Once in PowerShell in that folder, you&#8217;re going to run the following commands in order:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone -b release-10.8.z https:\/\/github.com\/jellyfin\/jellyfin-web.git<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/jellyfin\/jellyfin-tizen.git<\/code><\/pre>\n\n\n\n<p>Those commands will copy all of the stuff you need from GitHub.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Build Jellyfin Web App<\/h2>\n\n\n\n<p>While still in PowerShell, enter the following commands:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd jellyfin-web\n$env:SKIP_PREPARE=1<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>npm ci --no-audit<\/code><\/pre>\n\n\n\n<p>You&#8217;ll see it do a bunch of stuff. Let it do it&#8217;s thing and wait until it&#8217;s finished. Once it&#8217;s finished, run the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$env:USE_SYSTEM_FONTS=1<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>npm run build:production<\/code><\/pre>\n\n\n\n<p>It&#8217;ll do a bunch more stuff. Wait until it&#8217;s finished. After it&#8217;s all done, check the <strong>jellyfin-web<\/strong> directory and confirm that it created a <strong>dist<\/strong> folder. If the folder is there, proceed to the next step.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prepare the Interface<\/h2>\n\n\n\n<p>Back in PowerShell and run the following commands:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd .. # To go up a folder\ncd jellyfin-tizen\n$env:JELLYFIN_WEB_DIR=\"..\/jellyfin-web\/dist\"<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>npm ci --no-audit<\/code><\/pre>\n\n\n\n<p>This command will do a bunch more stuff. Wait for it to finish. After it&#8217;s finished, check the <strong>jellyfin-tizen<\/strong> directory for a folder labeled &#8220;<strong>www<\/strong>.&#8221; If it&#8217;s there, we can proceed to the next step.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Build the WGT<\/h2>\n\n\n\n<p>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&#8217;t work for me and when I ran it, you can see the result&#8230;<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f0c5af23f29&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f0c5af23f29\" class=\"wp-block-image size-large has-lightbox wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"192\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-13-1024x192.png\" alt=\"\" class=\"wp-image-106\" srcset=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-13-1024x192.png 1024w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-13-300x56.png 300w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-13-768x144.png 768w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-13.png 1321w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>After some searching, I found that it&#8217;s supposed to run <strong>tizen.bat<\/strong>. I&#8217;m not sure what part of the process was supposed to make that into the variable <strong>tizen<\/strong>, but whatevs&#8230; So to run the command properly, still within the <strong>jellyfin-tizen<\/strong> folder, run the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>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\"<\/code><\/pre>\n\n\n\n<p>After that finishes, run the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\tizen-studio\\tools\\ide\\bin\\tizen.bat package -t wgt -o . -- .buildResult<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Deploy Jellyfin App to TV<\/h2>\n\n\n\n<p>Ensure the TV is powered on and is still in Developer Mode. Then open the Tizen <strong>Device Manager<\/strong> again and turn the connection to the TV on, if it&#8217;s not already. Or, you can use the following command to connect to the TV:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\tizen-studio\\tools\\sdb.exe connect 192.x.x.x # Your TV IP<\/code><\/pre>\n\n\n\n<p>Once connected to the TV, run the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:\\tizen-studio\\tools\\ide\\bin\\tizen.bat install -n Jellyfin.wgt -t <em>UE65NU7400<\/em><\/code><\/pre>\n\n\n\n<p>Replace <strong>UE65NU7400<\/strong> with whatever your TV serial number is, which is how it appears in Device Manager.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The ERROR<\/h2>\n\n\n\n<p>Now, after all that work, after running that final command to install the newly created app to my TV&#8230; I repeatedly received an error:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>app_id&#91;wgt] download failed &#91;116]<br>spend time for wascmd is &#91;15]ms<br>cmd_ret:0<br>Failed to install Tizen application<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f0c5af2446e&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f0c5af2446e\" class=\"aligncenter size-full is-resized has-lightbox wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"916\" height=\"568\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-14.png\" alt=\"\" class=\"wp-image-107\" style=\"width:308px;height:auto\" srcset=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-14.png 916w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-14-300x186.png 300w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/image-14-768x476.png 768w\" sizes=\"(max-width: 916px) 100vw, 916px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n<p>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. <\/p>\n\n\n\n<p>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 <strong>Settings &gt; Support &gt; Self Diagnosis &gt; Reset Smart Hub<\/strong>. <\/p>\n\n\n\n<p>After I did that, I was able to successfully push the package to the TV using the same command in PowerShell.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f0c5af247a8&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f0c5af247a8\" class=\"aligncenter size-large is-resized has-lightbox wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/img_2715-1-1024x768.jpg\" alt=\"\" class=\"wp-image-101\" style=\"width:281px;height:auto\" srcset=\"https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/img_2715-1-1024x768.jpg 1024w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/img_2715-1-300x225.jpg 300w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/img_2715-1-768x576.jpg 768w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/img_2715-1-1536x1152.jpg 1536w, https:\/\/joshuasaunders.net\/wp-content\/uploads\/2023\/12\/img_2715-1-2048x1536.jpg 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n<p>So that&#8217;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. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>I know I still have a lot to talk about with my home lab, but I had to get this<\/p>\n","protected":false},"author":2,"featured_media":105,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-77","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/joshuasaunders.net\/index.php\/wp-json\/wp\/v2\/posts\/77","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/joshuasaunders.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/joshuasaunders.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/joshuasaunders.net\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/joshuasaunders.net\/index.php\/wp-json\/wp\/v2\/comments?post=77"}],"version-history":[{"count":15,"href":"https:\/\/joshuasaunders.net\/index.php\/wp-json\/wp\/v2\/posts\/77\/revisions"}],"predecessor-version":[{"id":149,"href":"https:\/\/joshuasaunders.net\/index.php\/wp-json\/wp\/v2\/posts\/77\/revisions\/149"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/joshuasaunders.net\/index.php\/wp-json\/wp\/v2\/media\/105"}],"wp:attachment":[{"href":"https:\/\/joshuasaunders.net\/index.php\/wp-json\/wp\/v2\/media?parent=77"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/joshuasaunders.net\/index.php\/wp-json\/wp\/v2\/categories?post=77"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/joshuasaunders.net\/index.php\/wp-json\/wp\/v2\/tags?post=77"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}