Jellyfin for Tizen

Part of the Jellyfin Project

---

Logo Banner

## Build Process _Also look [Wiki](https://github.com/jellyfin/jellyfin-tizen/wiki)._ ### Prerequisites * Tizen Studio 4.6+ with IDE or Tizen Studio 4.6+ with CLI. See [Installing TV SDK](https://developer.samsung.com/smarttv/develop/getting-started/setting-up-sdk/installing-tv-sdk.html). * Git * Node.js 20+ ### Getting Started 1. Install prerequisites. 2. Install Certificate Manager using Tizen Studio Package Manager. See [Installing Required Extensions](https://developer.samsung.com/smarttv/develop/getting-started/setting-up-sdk/installing-tv-sdk.html#Installing-Required-Extensions). 3. Setup Tizen certificate in Certificate Manager. See [Creating Certificates](https://developer.samsung.com/smarttv/develop/getting-started/setting-up-sdk/creating-certificates.html). > 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](https://github.com/jellyfin/jellyfin-web). > It is recommended that the web version match the server version. ```sh git clone -b release-10.9.z https://github.com/jellyfin/jellyfin-web.git ``` > Replace `release-10.9.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. ```sh git clone https://github.com/jellyfin/jellyfin-tizen.git ``` ### Build Jellyfin Web ```sh 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 ```sh 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. ```sh 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. ```sh 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](https://developer.samsung.com/smarttv/develop/getting-started/using-sdk/tv-device.html#Connecting-the-TV-and-SDK). 3. Connect to TV with one of the following options: * Device Manager from `Tools -> Device Manager` in Tizen Studio. * sdb: ```sh sdb connect YOUR_TV_IP ``` 4. If you are using a Samsung certificate, allow installs onto your TV using your certificate with one of the following options: > If you need to change or create a new Samsung certificate (see [Getting-Started](#getting-started) step 3), you will need to [re-build WGT](#build-wgt) once you have the Samsung certificate you'll use for the install. * Device Manager from `Tools -> Device Manager` in Tizen Studio: * Right-click on the connected device, and select `Permit to install applications`. * Tizen CLI: ```sh tizen install-permit -t UE65NU7400 ``` > Specify target with `-t` option. Use `sdb devices` to list them. * sdb: ```sh sdb push ~/SamsungCertificate//*.xml /home/developer ``` 5. Install package. ```sh tizen install -n Jellyfin.wgt -t UE65NU7400 ``` > Specify target with `-t` option. Use `sdb devices` to list them.