CLI tool
jellyfin/jellyfin-tizen avatar
jellyfin/jellyfin-tizen

Build and deploy Jellyfin for Samsung Tizen TVs

Jellyfin Samsung TV Client

1,749 stars134 forksJavaScriptMPL-2.0

At a glance

What is it?
Jellyfin Tizen packages a matching Jellyfin Web build as a Samsung TV application. Its build process depends on the Tizen SDK, certificates, Node.js, and a deliberately coordinated Jellyfin Web version.
Who is it for?
Developers maintaining a dedicated Samsung TV deployment should adopt jellyfin-tizen when they can match the Jellyfin Web branch to the server and manage Tizen certificates. Contributors without Samsung development tooling should address package documentation first.
Can I use it commercially?
Yes, with conditions. MPL-2.0 is a weak copyleft licence: you can use it inside commercial and closed-source software, but if you distribute changes to its own files, you must publish those changes under the same licence.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Jellyfin Tizen's Samsung TV build boundary

Jellyfin Tizen is the Samsung Smart TV packaging project for Jellyfin. It is aimed at developers who need to produce an installable Tizen widget from Jellyfin Web and deploy that widget to an emulator or a physical Samsung TV. It is not the Jellyfin media server, and the documented process does not explain how to configure playback libraries, users, or server-side media discovery.

The central constraint is version coordination. The README recommends that the Jellyfin Web version match the server version, and its example selects the `release-10.10.z` branch rather than an unspecified development branch. A build can therefore combine code correctly with the package tooling but still represent the wrong server generation if the branches are mismatched. That choice should be made deliberately.

The project also depends on Samsung-specific infrastructure. Tizen Studio 4.6 or later, the TV SDK, and a Tizen certificate are required before the generated application can be installed. This narrows the audience to developers who already have, or can establish, access to Samsung's Tizen development environment. A general Jellyfin installation does not require this repository.

From Jellyfin Web dist to a Jellyfin WGT package

The repository is an intermediary build layer rather than the location of the complete interface. The first stage builds Jellyfin Web and creates `jellyfin-web/dist/`. The second stage points `jellyfin-tizen` at that directory, installs its npm dependencies, and runs the package's `postinstall` Gulp script to create `jellyfin-tizen/www/`.

That `www/` directory becomes the application content packaged for Tizen. The final commands build a `.buildResult` directory and package it as `Jellyfin.wgt`. Based on the documented sequence, the data flow is Jellyfin Web source, compiled `dist/`, copied or prepared interface content in `www/`, then a signed Tizen WGT package.

The dependency chain matters when files change. Changes under `jellyfin-web/` require rebuilding its `dist/` directory. Changes beneath that generated `dist/` directory require rebuilding the Tizen `www/` directory. Building only `jellyfin-tizen` cannot incorporate source changes that have not yet been reflected in those generated directories.

The root `package.json` identifies the project as `jellyfin-tizen`, uses ES module syntax, and defines `npm run build` as `gulp`. Its `postinstall` script also runs `gulp`. The README's `npm ci` command therefore performs interface preparation through the package lifecycle rather than merely downloading dependencies.

Tizen Studio, Node.js, and certificate setup

The documented prerequisites are Tizen Studio 4.6 or later with either its IDE or CLI, Git, and Node.js 20 or later. Certificate Manager must also be installed through the Tizen Studio Package Manager. The README points to Samsung documentation for installing the TV SDK, required extensions, and certificate creation.

A certificate profile is not an incidental packaging detail. The selected profile determines which devices can install the widget. For a physical TV, Developer Mode must be enabled and the TV connected through Device Manager or `sdb`. If installation requires a Samsung certificate, the television must also permit applications signed with that certificate.

The README notes that certificate troubleshooting may involve creating a Samsung certificate. That route also requires a Samsung account, and changing or creating the certificate requires rebuilding the WGT so that the package uses the certificate intended for installation. This adds an external administrative dependency that npm itself cannot resolve.

Build a Jellyfin Tizen application from source

Start by cloning a Jellyfin Web branch that corresponds with the Jellyfin server version. The example below uses the documented `release-10.10.z` branch.

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

Then clone the Tizen repository separately:

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

Build Jellyfin Web in production mode. `USE_SYSTEM_FONTS=1` makes the build discard unused fonts and reduce application size.

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

The expected result is a `jellyfin-web/dist/` directory. Use `npm run build:development` when the application must be built for debugging.

Move to the Tizen repository and point `JELLYFIN_WEB_DIR` at the generated distribution. Running `npm ci` also invokes the `postinstall` Gulp task.

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

The expected output is `jellyfin-tizen/www/`. For Jellyfin Web 10.10 and later, the README specifically directs developers to use `USE_SYSTEM_FONTS=1` during the Jellyfin Web build. It says not to combine that workflow with `DISCARD_UNUSED_FONTS=1`, which applies only to versions before Jellyfin Web 10.9.

Package Jellyfin WGT with the Tizen CLI

Before packaging, confirm that Certificate Manager contains the appropriate certificate profile for the destination device. The README excludes several source and metadata paths from the Tizen build and then packages the generated `.buildResult` directory.

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

The expected package is `Jellyfin.wgt`. This step converts the prepared web application into the Tizen widget format, but certificate compatibility still depends on the profile selected in Tizen Certificate Manager.

The absence of GitHub releases is relevant to how this project is obtained. The README documents cloning the repository and building it rather than downloading a named WGT release. There is no documented packaged release in the release listing, so a developer cannot assume that a matching prebuilt `Jellyfin.wgt` is available from GitHub releases.

Deploy Jellyfin WGT to an emulator or Samsung TV

For the documented first deployment, start a Tizen emulator and install the generated package. The example target is `T-samsung-5.5-x86`.

bash
tizen install -n Jellyfin.wgt -t T-samsung-5.5-x86

The README says to use `sdb devices` to list available targets. This is a useful first check when the documented target is unavailable or when another configured device has a different identifier.

On a physical TV, enable Developer Mode and connect the device through Tizen Studio's Device Manager or with `sdb`:

bash
sdb connect YOUR_TV_IP

If the selected certificate requires permission, Device Manager can permit the certificate directly. The CLI alternative shown by the README is:

bash
tizen install-permit -t UE65NU7400

The repository also documents copying certificate XML files to the TV's developer directory:

bash
sdb push ~/SamsungCertificate/<PROFILE_NAME>/*.xml /home/developer

After certificate permission is settled, install the package against the connected device:

bash
tizen install -n Jellyfin.wgt -t UE65NU7400

The README does not document an application rollback command or a documented process for configuring a Jellyfin server inside the generated widget. Verification should therefore focus first on installation and certificate acceptance, then proceed to the normal Jellyfin connection and playback flow available in the resulting application.

Maintenance, licensing, and rebuild cost for jellyfin-tizen

The repository is not archived, and its last push was on 2026-10-15. That is the only maintenance evidence available here, so it does not establish release cadence, long-term support policy, or the availability of future fixes.

Updating the client carries a rebuild cost across two repositories. A Jellyfin Web source change can require `npm ci --no-audit`, a new production build, a regenerated `dist/` directory, and another Tizen interface preparation pass. The WGT must then be packaged and installed again. Changes limited to the Tizen repository still require its generated `www/` content and final package to be rebuilt.

The repository is licensed under MPL-2.0. That identifier identifies the applicable open source license, but the README does not discuss contribution procedures or distribution practice. Anyone modifying or redistributing code should review the license text and applicable notices directly. No legal interpretation is needed to reach the build conclusion: package maintenance is tied to both source compatibility and the Tizen toolchain.

Editorial conclusion

Developers maintaining a dedicated Samsung TV deployment should adopt jellyfin-tizen when they can match the Jellyfin Web branch to the server and manage Tizen certificates. Contributors without Samsung development tooling should address package documentation first. The first verification should be whether the selected Jellyfin Web branch produces a complete `jellyfin-web/dist/` directory and whether the target TV accepts the certificate profile.

Frequently asked questions

What prerequisites are required to build jellyfin-tizen?

The README requires Tizen Studio 4.6 or later with the IDE or CLI, Git, and Node.js 20 or later. It also requires the TV SDK and Tizen certificates configured through Tizen Studio.

Which Jellyfin Web branch should I use for jellyfin-tizen?

The README recommends matching the Jellyfin Web version to the Jellyfin server version. Its example uses `release-10.10.z`, but it instructs builders to replace that branch with the one they intend to build.

What files are produced when building jellyfin-tizen?

Building Jellyfin Web produces `jellyfin-web/dist/`. Preparing the Tizen repository produces `jellyfin-tizen/www/`, and the Tizen packaging step is expected to produce `Jellyfin.wgt`.

How do I install Jellyfin Tizen on a physical Samsung TV?

The README requires Developer Mode and a connection through Device Manager or `sdb`. The certificate profile must also match or be permitted on the target TV before `tizen install` installs `Jellyfin.wgt`.

Official sources

  1. Issues
  2. jellyfin/jellyfin-tizen on GitHub
  3. License: MPL-2.0
  4. Project website
  5. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/jellyfin-jellyfin-tizen.svg)](https://hysenlabs.com/projects/jellyfin-jellyfin-tizen)

Was this useful?