Jellyfin Samsung TV Client
Go to file
2024-05-05 21:33:52 +03:00
.github Update actions/checkout action to v4.1.4 2024-05-05 21:33:52 +03:00
.gitignore Fix build 2020-01-18 12:27:04 +03:00
config.xml Add AppHost.screen function 2022-03-23 21:25:49 +03:00
gulpfile.babel.js Disable gulp.src encoding 2024-04-30 02:02:47 +03:00
icon.png first commit 2019-10-12 17:25:42 +03:00
index.html first commit 2019-10-12 17:25:42 +03:00
package-lock.json Update dependency gulp to v5 2024-04-29 22:38:51 +00:00
package.json Update dependency gulp to v5 2024-04-29 22:38:51 +00:00
README.md Update links 2024-05-02 15:35:21 +03:00
tizen.js Fix PlayPause button 2023-02-19 22:11:10 +03:00

Jellyfin for Tizen

Part of the Jellyfin Project


Logo Banner

Build Process

Also look Wiki.

Prerequisites

  • Tizen Studio 4.6+ with IDE or Tizen Studio 4.6+ with CLI. See Installing TV SDK.
  • Git
  • Node.js 20+

Getting Started

  1. Install prerequisites.

  2. Install Certificate Manager using Tizen Studio Package Manager. See Installing Required Extensions.

  3. Setup Tizen certificate in Certificate Manager. See Creating Certificates.

    If you have installation problems with the Tizen certificate, try creating a Samsung certificate. In this case, you will also need a Samsung account.

  4. Clone or download Jellyfin Web repository.

    It is recommended that the web version match the server version.

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

    Replace release-10.8.z with the name of the branch you want to build.

    You can also use git checkout to switch branches.

  5. Clone or download Jellyfin Tizen (this) repository.

    git clone https://github.com/jellyfin/jellyfin-tizen.git
    

Build Jellyfin Web

cd jellyfin-web
SKIP_PREPARE=1 npm ci --no-audit
USE_SYSTEM_FONTS=1 npm run build:production

You should get jellyfin-web/dist/ directory.

SKIP_PREPARE=1 can be omitted for 10.9+.

USE_SYSTEM_FONTS=1 is required to discard unused fonts and to reduce the size of the app. (Since Jellyfin Web 10.9)

Use npm run build:development if you want to debug the app.

If any changes are made to jellyfin-web/, the jellyfin-web/dist/ directory will need to be rebuilt using the command above.

Prepare Interface

cd jellyfin-tizen
JELLYFIN_WEB_DIR=../jellyfin-web/dist npm ci --no-audit

You should get jellyfin-tizen/www/ directory.

The JELLYFIN_WEB_DIR environment variable can be used to override the location of jellyfin-web.

Add DISCARD_UNUSED_FONTS=1 environment variable to discard unused fonts and to reduce the size of the app. (Until Jellyfin Web 10.9)
Don't use it with Jellyfin Web 10.9+. Instead, use USE_SYSTEM_FONTS=1 environment variable when building Jellyfin Web.

If any changes are made to jellyfin-web/dist/, the jellyfin-tizen/www/ directory will need to be rebuilt using the command above.

Build WGT

Make sure you select the appropriate Certificate Profile in Tizen Certificate Manager. This determines which devices you can install the widget on.

tizen build-web -e ".*" -e gulpfile.js -e README.md -e "node_modules/*" -e "package*.json" -e "yarn.lock"
tizen package -t wgt -o . -- .buildResult

You should get Jellyfin.wgt.

Deployment

Deploy to Emulator

  1. Run emulator.
  2. Install package.
    tizen install -n Jellyfin.wgt -t T-samsung-5.5-x86
    

    Specify target with -t option. Use sdb devices to list them.

Deploy to TV

  1. Run TV.

  2. Activate Developer Mode on TV. See Enable Developer Mode on the TV.

  3. Connect to TV with Device Manager from Tizen Studio.

    Or using sdb:

    sdb connect YOUR_TV_IP
    
  4. If you are using a Samsung certificate, Permit to install applications on your TV using Device Manager from Tizen Studio.

    Or using Tizen CLI:

    tizen install-permit -t UE65NU7400
    

    Specify target with -t option. Use sdb devices to list them.

    Or using sdb:

    sdb push ~/SamsungCertificate/<PROFILE_NAME>/*.xml /home/developer
    
  5. Install package.

    tizen install -n Jellyfin.wgt -t UE65NU7400
    

    Specify target with -t option. Use sdb devices to list them.