MediaLab TV for Jellyfin — guide

Installation

You need Jellyfin Server 12.2 or newer and a MediaLab Works account with a license that covers the plugin (an active subscription, a lifetime license within its update window, the Jellyfin bundle or the free 30-day trial).

From your plugin repository (recommended). Jellyfin then installs and updates the plugin by itself.

  1. In your MediaLab Works account open Licenses → Jellyfin plugin repository and click Create address. Copy it: it is private (it contains a token), so do not share it; you can regenerate or revoke it at any time.
  2. In Jellyfin open Dashboard → Plugins → Repositories, click +, give it a name (for example MediaLab Works), paste the address and save.
  3. In Dashboard → Plugins → Catalog find MediaLab TV, click Install, then restart Jellyfin.

The repository lists only the plugins your licenses cover, and only the versions they allow. Its download links are signed and expire after a few hours, so Jellyfin always reads a fresh list.

From the public catalog. https://medialab.works/jellyfin/manifest.json lists every released MediaLab Works plugin with its public build; medialab Server adds it by itself. You can add it the same way to install a plugin before you have a key: the plugin then asks for the license, or starts the trial, on its License page. With a lifetime license whose update window has ended, keep to your private repository, which offers only the versions your license allows.

Manually, from a zip file.

  1. In Account → Licenses download jf-tvapp_x.y.z.zip (the SHA-256 of the file is shown next to the button).
  2. Extract it into a new folder MediaLab TV_x.y.z.0 inside the Jellyfin plugins folder:
    • Linux (package): /var/lib/jellyfin/plugins/
    • Docker (official image): /config/plugins/ in the config volume
    • Windows: %ProgramData%\Jellyfin\Server\plugins\
  3. Restart Jellyfin.

License activation

  1. Open the plugin page in Dashboard → Plugins → MediaLab TV and click License.
  2. Paste your license key and click Activate with key. The plugin contacts the license server, binds the key to this Jellyfin server and shows the license as Active.
  3. No key yet? On the same page enter your e-mail and start the 30-day free trial (card needed, nothing to pay today) or buy a license; the plugin activates itself when the payment is done.

The license is checked once a day and at every Jellyfin start. Without internet the plugin keeps working for 7 days after the last successful check. Without a valid license the plugin stops its work and only its License page keeps working (trial, key, renewal); nothing is deleted, and everything resumes as soon as the license is valid again. Move license (release this server) on the same page frees the key for another server.

Updates and rollback

  • From the repository: Jellyfin shows new versions in Dashboard → Plugins and can update the plugin automatically; restart Jellyfin to load the new version.
  • From the plugin's License page: with a valid license, Install update installs the newest version your license allows and Roll back to x.y.z goes back to the previous version (for example if something stopped working after an update). Restart Jellyfin after either. Both packages are checked against the checksum published by the license server.
  • A lifetime license receives the versions released during its update window; after it, the plugin keeps working on the last version it may use.
  • After a rollback, if your plugin repository is added in Jellyfin, Jellyfin's scheduled task Update Plugins (at start-up and daily) installs the newest version again. To stay on the previous version for a while, remove the triggers of that task in Dashboard → Scheduled Tasks and add them back later.

Source code

The GPL-3.0 source code of each version is in Account → Licenses (Source code), next to the download, as a .tar.gz archive made from the exact commit of that version.

Branding

Open MediaLab TV in the Jellyfin dashboard menu.

  • App name: the title on the TV (default "MediaLab TV").
  • Short name: shown in the server's device list and as the name of the app saved on the TV.
  • Line under the name and footer line: optional (for example your website and how to reach support). An empty footer shows "Unofficial app, compatible with Jellyfin servers" in the TV's language.
  • Colors: the accent (buttons, focus) and the background, as #rrggbb. The text color is chosen automatically so it stays readable.
  • Language: automatic (the TV browser's language), English or Romanian.
  • Logo: PNG or SVG, at most 512 KB; a square image looks best. SVG files with scripts are refused.
  • Buttons: "Sign in with your phone" and "New account (from the phone)".

The preview shows the result before you click Save.

After sign-in

  • "After sign-in, open": the MediaLab TV interface (the default: banner, rows, title pages, its own player and the skip buttons) or Jellyfin Web.
  • "Remember the password on TVs" (off by default): the TV keeps only the server's sign-in token, not the password; turn this on only for TVs that keep losing the token. A password saved by version 1.1 is used once, if needed, then deleted.
  • On the TV, the profile menu switches the TV mode (chosen by itself on Tizen, webOS, Android TV, Google TV and Philips TVs) and signs out.

Address for TVs

  • /MediaLabTv/ on your server address: always works.
  • Your own path, for example /web/tv/ (the default path is tv), served directly by the plugin: the address bar keeps /web/tv/, nothing is written into Jellyfin's files and nothing has to be redone after Jellyfin updates. A base URL set in Jellyfin is respected. A path that already exists in Jellyfin's web interface is never covered: choose another one.

On each TV, open the address once in the browser and save it as the start page or a favorite.

Sign-in with the phone and new accounts

Both use Jellyfin's own Quick Connect: turn it on in Dashboard → General.

  • Sign in with your phone: the TV shows a 6-digit code. A signed-in user approves it on the phone, in the Jellyfin app (Settings → Quick Connect). With Quick Connect by MediaLab installed, the TV also shows a QR code that opens the approval page.
  • New account (from the phone): with Registration by MediaLab, the TV shows a QR code to the sign-up page and a code to type in the form. When the account becomes active (after the admin's approval or, with Cashier by MediaLab, after the payment), the TV signs in by itself.

Troubleshooting

  • The TV shows "Service unavailable": the license is not valid, or the server has not reached medialab.works for more than 7 days. Check the plugin's License page.
  • "Sign in with your phone" is missing: Quick Connect is turned off in Jellyfin (Dashboard → General).
  • The short address shows Jellyfin's own page: that path already exists in the web interface; choose another path.
  • A video does not play in the TV browser: check the playback settings for that user in Jellyfin (maximum streaming bitrate, transcoding allowed); the server transcodes what the browser cannot play.

The build is public; using the plugin requires a license or the free 30-day trial.