Jellyfin
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:
- Choose your language
- Create an administrator account (separate from your seedbox login)
- Add media libraries pointing to your seedbox directories:
- Movies:
/home/USERNAME/data/Movies/ - TV Shows:
/home/USERNAME/data/TV/ - Music:
/home/USERNAME/data/Music/
- Movies:
- Configure remote access settings (keep defaults for seedbox use)
- 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.
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
rendergroup (contact support if needed) /dev/dri/renderD128must 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
- Seedbox for Plex and Jellyfin -- full guide to using a seedbox as a media server with Plex, Jellyfin, or Emby
- Seedbox -- seedbox plans and how they work
- Dedicated server -- dedicated servers for hardware transcoding
- Rclone tutorial -- mount seedbox storage remotely
- Downloading from seedbox -- file transfer methods