Jump to content

Jellyfin

From Pulsed Media Wiki


Jellyfin is a free, open-source media server that organizes movies, TV shows, music, and photos into a browsable library and streams them to devices over the network. Jellyfin is a fork of Emby, created in 2018 after Emby moved parts of its codebase to a proprietary license.

Running Jellyfin on a seedbox means you can stream downloaded content directly without transferring files to your local machine first. A movie finishes downloading via rTorrent and is immediately available in your Jellyfin library.

Jellyfin runs entirely self-hosted. It does not phone home, does not require a cloud account, and does not collect telemetry. This matters for seedbox users, because the main alternative does the opposite.

Why Jellyfin instead of Plex

The short version: Plex requires a cloud account, collects extensive data about your server and viewing habits, has been breached, has banned hosting providers, has started selling user data to advertisers, and now charges $7/month for remote access to your own files. Jellyfin does none of these things.

What Plex collects

Plex Media Server phones home to 20+ Plex-controlled domains every time it runs. The mandatory data collection (which users cannot opt out of) includes:

  • Your IP address, email, and username
  • Device identifiers and connection types
  • Server configuration and network topology
  • Usage statistics: device type, duration, bit rate, media format, resolution

In June 2024, Plex deprecated its Privacy Preferences page entirely, absorbing previously optional data controls into the main privacy policy.

In March 2025, Plex's updated privacy policy explicitly states it sells personal data: hashed emails to advertising technology companies, advertising identifiers to ad partners, and device IDs and IP addresses for targeting.

Plex incident history

Year Event
2017 Attempted to remove all data collection opt-outs. Partially reversed after backlash.
2022 Data breach affecting 30 million users (emails, usernames, hashed passwords).
2022 A Plex vulnerability (CVE-2020-5741) was exploited to compromise a LastPass engineer's computer, leading to the LastPass corporate vault breach.
2023 "Discover Together" feature shared users' viewing habits with their contacts by default. Viewing histories were exposed to friends and family without meaningful consent.
2023 Plex blocked all media servers hosted at Hetzner, a major German hosting provider, as collective punishment for piracy on other servers.
2024 Privacy Preferences page deprecated. Granular opt-outs removed.
2025 Data sale to advertisers formalized in privacy policy. Remote streaming paywalled behind Plex Pass ($6.99/mo, up from $4.99). Lifetime pass jumped from $119 to $250.

Why this matters for seedbox users

A seedbox is private infrastructure. You chose it to keep your data off local ISP monitoring. Plex undoes that by linking your seedbox IP to your real email through mandatory cloud authentication, sending library metadata to Plex's servers for matching (enabled by default), and sharing usage data with a company that has 240+ content licensing deals with major studios.

Plex demonstrated in October 2023 that it will ban entire hosting providers. If your seedbox provider gets the same treatment Hetzner did, you lose access to your own media library.

Your "personal" media server requires Plex's cloud authentication to function. If Plex's servers go down, you cannot access your own files even on your local network, unless you have pre-configured a bypass setting.

Comparison table

Jellyfin Plex Emby
License Free, open-source (GPL-2.0) Proprietary (free tier + Plex Pass) Proprietary (free tier + Premiere)
Cloud account required No Yes (mandatory) Optional
Phones home No Yes, 20+ domains Limited
Data sold to advertisers No Yes (since March 2025) No
Hardware transcoding Free Plex Pass ($6.99/mo) Premiere only
Remote access Free Plex Pass ($6.99/mo) or Remote Watch Pass ($1.99/mo) Free
Can be blocked by vendor No (self-hosted) Yes (Hetzner banned Oct 2023) No
Works offline Yes Only with bypass configured Yes

Installing Jellyfin on a Pulsed Media seedbox

Pulsed Media seedboxes run PMSS, which includes a media stack installer. You do not need root access or system-level package installation.

Using install-media-stack.sh

Connect to your seedbox via SSH and run:

bash install-media-stack.sh

This installs Jellyfin along with Radarr, Sonarr, Prowlarr, and other media management tools into your home directory. All applications run under your user account and bind to 127.0.0.1.

The installer is idempotent. Running it again updates existing installations without losing configuration. Use --dry-run to see what it would do first:

bash install-media-stack.sh --dry-run

After installation, Jellyfin is accessible at:

https://SERVERNAME.pulsedmedia.com/public-USERNAME/jellyfin/

The connection is proxied through your per-user lighttpd process and protected by HTTPS.

First-time setup

On first access, Jellyfin shows a setup wizard:

  1. Choose your language
  2. Create an administrator account (separate from your seedbox login)
  3. Add media libraries pointing to your seedbox directories:
    • Movies: /home/USERNAME/data/Movies/
    • TV Shows: /home/USERNAME/data/TV/
    • Music: /home/USERNAME/data/Music/
  4. Configure remote access settings (keep defaults for seedbox use)
  5. Finish the wizard

Jellyfin scans the directories and fetches metadata from TheMovieDB and TheTVDB.

Organizing media for Jellyfin

Jellyfin works best with consistent naming:

Movies/
  Movie Name (2024)/
    Movie Name (2024).mkv

TV Shows/
  Show Name (2020)/
    Season 01/
      Show Name - S01E01 - Episode Title.mkv

If you use Radarr and Sonarr (also installed by install-media-stack.sh), they handle renaming and organization automatically.

Hardware transcoding

Transcoding converts video on the fly when a client device cannot play the original format. Without hardware acceleration, transcoding uses CPU and is slow for high-resolution content.

Intel VAAPI on shared seedboxes

If the seedbox server has an Intel CPU with integrated graphics, Jellyfin can use VAAPI for hardware-accelerated transcoding.

Requirements:

  • Server must have an Intel CPU with integrated graphics
  • Your user account must be in the render group (contact support if needed)
  • /dev/dri/renderD128 must be accessible

Configure Jellyfin to use VAAPI: Dashboard > Playback > Transcoding, set the hardware acceleration method to VAAPI.

Dedicated server for transcoding

For users who need reliable hardware transcoding for multiple simultaneous streams, a dedicated server from the MD series gives you full hardware access with no resource sharing. You get the entire CPU and iGPU for transcoding.

You can combine an MD dedicated server running Jellyfin with a separate seedbox for bulk storage. Use rclone to mount your seedbox storage on the dedicated server over SFTP:

rclone mount seedbox:/home/USERNAME/data/ ~/media/ --allow-other

Point Jellyfin's library at the mount point. Downloads happen on the seedbox (1-20 Gbps to peers), transcoding happens on the dedicated server (full hardware access), and you stream the result to your devices. This separates the download workload from the streaming workload.

When transcoding is not available

Not all seedbox servers have an Intel iGPU. In that case:

  • Use direct play whenever possible (most modern devices handle H.264 and H.265 natively)
  • Set Jellyfin client quality to "Original" to avoid transcoding
  • CPU fallback works for one or two simultaneous streams but will be slow for 4K content

Accessing Jellyfin remotely

Your Jellyfin instance is already accessible over the internet through the seedbox's HTTPS reverse proxy. No port forwarding or Dynamic DNS needed.

Client applications

Jellyfin has client apps for most platforms:

  • Web browser (no install needed)
  • Android and iOS (Jellyfin app)
  • Android TV, Fire TV, Apple TV
  • Desktop: Jellyfin Media Player (Windows, macOS, Linux)

Point any client at your seedbox URL and log in with the admin account you created during setup.

Sharing with others

Jellyfin supports multiple user accounts. Create accounts through Dashboard > Users. Each user can have their own library access, parental controls, and playback settings. All users connect to the same seedbox URL.

Troubleshooting

Problem Cause Fix
Jellyfin not loading Process crashed SSH in and run bash install-media-stack.sh to restart
"Unable to connect" Wrong URL Verify URL includes /public-USERNAME/jellyfin/ with trailing slash
Video buffering Bandwidth or transcoding Set client to "Original" quality. Check your local internet speed.
No metadata found Wrong folder structure Rename files to match naming convention. Rescan library in Dashboard.
Hardware transcoding fails No iGPU or wrong permissions Check if /dev/dri/renderD128 exists. Verify render group membership.
502 error lighttpd stopped Restart lighttpd from seedbox web GUI

See also