Plex and Jellyfin are the two dominant self-hosted media server platforms, letting you organize, stream, and manage your personal collection of movies, TV shows, music, and photos from a central machine to virtually any device. Plex is a polished, commercial product with a free tier and optional paid Plex Pass features, while Jellyfin is a fully free, open-source fork of Emby with no paywalls whatsoever. The critical mental model for both: they are client–server applications — the server indexes and transcodes media on one machine, and clients (apps on phones, TVs, browsers) connect to stream it; the quality of your experience is determined almost entirely by the server's hardware, your network bandwidth, and how well your media files are named. Understanding the difference between direct play, direct stream, and transcode is the single most important concept for tuning performance and hardware choices.
What This Cheat Sheet Covers
This topic spans 16 focused tables and 147 indexed concepts, 120 flashcards. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: Core Architecture and Concepts
The fundamental building blocks of both platforms — what each component does and how server, library, client, and cloud account fit together before you configure anything.
| Concept | Example | Description | |
|---|---|---|---|
Installed on a PC/NAS; UI at http://localhost:32400/web | • The server software that indexes media, fetches metadata, and handles transcoding • must be running on the host machine at all times for clients to stream | ||
Sign in at plex.tv and "claim" a server with a claim token | • Required to use Plex — the server links to your Plex.tv identity for authentication, relay routing, and remote access • no local-only mode without account | ||
http://server-ip:8096; no cloud account needed | • Fully self-hosted and account-free — no Plex.tv equivalent • all auth is local • metadata fetched from open internet sources (TMDB, TVDB, MusicBrainz). | ||
Movies library → /mnt/media/movies; TV Shows → /mnt/media/tv | • Named collection of folders monitored by the server • each library has a type (Movies, TV Shows, Music, Photos) that sets which scanner and metadata agent runs | ||
Plex Movie agent uses TMDB; Plex TV Series uses TMDB/TVDB | • The component that matches files to online databases and pulls in artwork, summaries, ratings, and cast • choice of agent affects matching accuracy and data sources | ||
Plex app on Roku, Fire TV, iOS, Android, Samsung TV | • Thin UI that requests streams from PMS • playback decisions (direct play vs. transcode) are negotiated between client capability and server settings | ||
Official Android, Android TV, Roku, WebOS, Xbox apps; or Swiftfin (iOS), Infuse | • Third-party and official clients connect to your server by IP/hostname • no single-sign-on cloud layer required | ||
Playback shows "Indirect" or "Relay" in dashboard | • Fallback when the client cannot reach the server directly • traffic routes through Plex.tv servers — limits bandwidth to ~2 Mbps and adds latency • always aim for direct | ||
PLEX_CLAIM=claim-xxxxx env var in Docker | • One-time token generated at plex.tv/claim used to associate a new server install with your Plex account • expires after 4 minutes | ||
Found via ?X-Plex-Token= in browser URL when logged in | • Authentication token included in all API requests to PMS • used by third-party tools (Tautulli, Sonarr) to communicate with the server | ||
Emby splits into commercial Emby and forked open-source Jellyfin in 2018 | • Jellyfin was forked from Emby when Emby went closed-source • Emby offers a commercial middle-ground with Emby Premiere subscription for hardware transcoding and sync |