Gallery vs. Jellyfin — Feature Comparison
Audit date: 2026-09-26
Jellyfin is a free, open-source media server forked from Emby. It is the closest architectural peer to Gallery: both are self-hosted, both cover movies/TV/music/photos, and neither requires a subscription for any feature.
Table of Contents#
Feature Comparison#
Quick reference for every feature in this document. The table has three groups: features where the two products are on par, features where Gallery leads, and features where Jellyfin leads. The sections after the table explain the last two groups in detail. ⚠️ means partial support.
| Feature | Gallery | Jellyfin |
|---|---|---|
| On par | ||
| Movies / TV series libraries | ✅ | ✅ |
| Music library | ✅ (beta flag) | ✅ |
| Photo / video albums | ✅ | ✅ |
| Podcast support | ✅ (beta flag) | ✅ (via plugin) |
| Audiobook support | ✅ (beta flag) | ✅ |
| HLS adaptive bitrate streaming | ✅ | ✅ |
| Server-side transcoding | ✅ | ✅ |
| Hardware-accelerated transcoding | ✅ (NVENC, QSV, AMF, VideoToolbox) | ✅ |
| HDR handling (HDR10, HLG, HDR10+, Dolby Vision) | ✅ (preserve for capable clients, or tone-map to SDR) | ✅ (tone-mapping) |
| Multiple quality tiers | ✅ (8K → 240p) | ✅ |
| Direct / remux playback modes | ✅ | ✅ |
| Subtitle support (SRT, VTT, ASS, SSA, TTML) | ✅ | ✅ |
| Multi audio track selection | ✅ | ✅ |
| Resume playback | ✅ | ✅ |
| Intro / credits detection and skip | ✅ (Chromaprint, built in) | ✅ (Media Segments API; detection via plugin) |
| Scrub preview thumbnails (trickplay) | ✅ (admin can regenerate per item, season, series, or library) | ✅ (built in since 10.9) |
| Playlists | ✅ | ✅ |
| Favorites | ✅ | ✅ |
| User management | ✅ | ✅ |
| Parental controls (content-rating limits, block unrated) | ✅ (policies per user or group, with per-title allow/deny lists) | ✅ |
| Time-of-day access restrictions | ✅ | ✅ (access schedules) |
| OIDC / SSO authentication | ✅ (built in) | ✅ (via jellyfin-plugin-sso) |
| TV sign-in without a keyboard | ✅ (device code + QR) | ✅ (Quick Connect) |
| Multi-account switching on TV | ✅ (per-account PIN lock) | ✅ |
| Scheduled library scans | ✅ | ✅ |
| Real-time file watching (auto-import of new files) | ✅ | ✅ |
| EXIF metadata extraction | ✅ | ✅ |
| TMDB / TVDB metadata integration | ✅ | ✅ |
| MusicBrainz integration | ✅ | ✅ |
| Watch Together (SyncPlay) | ✅ | ✅ |
| Mobile app (iOS / Android) | ✅ | ✅ |
| Apple TV / Android TV apps | ⚠️ In development (gallery-tv, no official release yet). See the TV feature audit. |
✅ (Swiftfin, Android TV) |
| Offline downloads on mobile | ✅ | ✅ (via Finamp for music) |
| Dark / light mode | ✅ | ✅ |
| Advanced search | ✅ (AND terms, saved searches) | ✅ |
| Playback speed control | ✅ | ✅ |
| Active sessions / transcodes dashboard | ✅ | ✅ |
| Scheduled tasks | ✅ | ✅ |
| Chromecast (web UI) | ⚠️ Experimental (custom receiver app) | ✅ |
| Chromecast (mobile app) | ⚠️ Experimental (Google Cast SDK) | ✅ |
| No subscription required for any feature | ✅ | ✅ |
| Multiple versions of one movie or series (for example 4K and 1080p) with a version picker | ✅ | ✅ |
| Gallery ahead (see details) | ||
| Fine-grained RBAC (100+ permissions, per-library roles) | ✅ | ⚠️ Basic admin/user model, limited per-library toggles |
| User group management | ✅ | ❌ |
| Self-hosted MFA and passwordless login (passkeys, TOTP, email OTP) | ✅ | ⚠️ Community plugins only |
| Admin-enforced authentication policy | ✅ | ❌ |
| Audit log and login history | ✅ | ⚠️ Activity logs only |
| Email delivery and self-service password reset | ✅ | ❌ |
| AI-powered content generation (Ollama / OpenAI) | ✅ | ❌ |
| YouTube / yt-dlp import and sync | ✅ | ❌ |
| Magic share links with passwords, expiry, and access limits | ✅ | ⚠️ Rudimentary sharing |
| Per-album permissions and sharing | ✅ | ❌ |
| Geotagged photo map and timeline views | ✅ | ❌ |
| Book library with full metadata (OpenLibrary) | ✅ | ⚠️ Minimal book support |
| DASH streaming | ✅ | ❌ (HLS only) |
| Per-item download restrictions | ✅ | ❌ |
| Offline H.265 transcode jobs | ✅ | ❌ |
| Multiple metadata sources per media type | ✅ | ❌ |
| OpenTelemetry / distributed tracing | ✅ | ⚠️ Basic logging only |
| In-app log viewer and performance dashboard | ✅ | ⚠️ Log files only |
| Banner / announcement system | ✅ | ❌ |
| Admin queue management | ✅ | ❌ |
| Feature flags for whole product areas | ✅ | ❌ |
| Jellyfin ahead (see details) | ||
| Roku, Fire TV, Kodi, Samsung, and LG apps | ❌ | ✅ |
| DLNA / UPnP server | ❌ (not planned, by design) | ✅ (official plugin) |
| Collections / smart collections | ❌ | ✅ |
| Automatic subtitle download | ❌ | ✅ (via plugins) |
| Plugin / extension ecosystem | ❌ | ✅ |
| Kodi integration | ❌ | ✅ |
| Lyrics display | ❌ | ✅ |
| Live TV and DVR | ❌ | ✅ |
| External metadata override (NFO / XML sidecar files) | ❌ | ✅ |
| Trailers and extras | ❌ | ✅ |
| HDR / Dolby Vision badges in the UI | ❌ | ✅ |
| Built-in backup and restore | ❌ | ✅ (since 10.11) |
Gallery Ahead of Jellyfin#
| Feature | Notes |
|---|---|
| Fine-grained RBAC | Gallery has 100+ discrete permissions with per-library roles (Manager / Editor / Contributor / Viewer / Scanner). Jellyfin uses a basic admin/user model with limited per-library access toggles. |
| User group management | Groups with propagated role assignments across libraries and playlists. Jellyfin has no group concept. |
| Self-hosted MFA and passwordless login | Passkeys (WebAuthn), TOTP with recovery codes, and email OTP are built in. Jellyfin has no built-in second factor; community plugins fill the gap. |
| Admin-enforced authentication policy | Admins choose which sign-in methods are allowed or required and can grant per-user MFA bypasses. |
| Audit log and login history | Admin audit log for permission, sharing, deletion, and account changes, plus a login event trail (successes and failures, all methods including SSO). Jellyfin has activity logs but no comparable audit trail. |
| Email delivery and self-service password reset | SMTP, Mailgun, Postmark, Resend, and SendGrid providers; forgotten-password reset links with configurable timeout; enforceable password policy. |
| AI-powered content generation | Automatic title, description, and tag generation via Ollama (self-hosted) or OpenAI. Jellyfin has no AI features. |
| YouTube / yt-dlp import and sync | Download and cron-scheduled sync of YouTube playlists into albums (YouTube is the only supported platform today). Not available in Jellyfin. |
| Magic share links | UUID-based sharing links with optional passwords, expiration dates, and per-link access limits (resettable). Jellyfin sharing is more rudimentary. |
| Per-album permissions and sharing | Album-level user and group permissions independent of server roles, plus item linking between albums without duplicating files. |
| Geotagged photo map and timeline views | Map and date timeline of photo/video libraries, each toggleable by feature flag. Jellyfin has no built-in map view. |
| Book library with full metadata | OpenLibrary integration for author photos, ISBNs, and cover art, plus audiobook chapter tracking. Jellyfin’s book support is minimal. |
| DASH streaming | Gallery serves both HLS and DASH. Jellyfin transcodes to HLS only; DASH is an open feature request. |
| Per-item download restrictions | Individual items can have downloads enabled or disabled regardless of library-level settings. |
| Offline H.265 transcode jobs | Server-side H.265 encode queue for optimized mobile downloads. |
| Multiple metadata sources per media type | TMDB + TVDB simultaneously for cinema; MusicBrainz for music; OpenLibrary for books. |
| OpenTelemetry / distributed tracing | Production-grade observability with structured logs and trace IDs. Jellyfin has basic logging only. |
| In-app log viewer and performance dashboard | Tail and export server logs and view resource usage from the admin panel; frontend errors can be forwarded to the server log (feature flag). |
| Banner / announcement system | Server-wide notifications targeted by role or user, with scheduling. |
| Admin queue management | Thumbnail, scan-after, and web-import queues are all inspectable, retryable, and cancellable from the UI. |
| Watch Together host controls | Both servers have built-in synchronized playback. Gallery adds host control, host transfer, and heartbeat maintenance. |
| Feature flags | Admins can switch whole product areas (Cinema, Music, Podcasts, Audiobooks, Map, Timeline) on or off. |
Jellyfin Ahead of Gallery (Gaps)#
High Priority Gaps#
| Gap | Notes |
|---|---|
| Smart TV / streaming box coverage | Jellyfin has official and community apps for Roku, Fire TV, Apple TV, Android TV, Kodi, and Samsung/LG smart TVs. Gallery’s TV app (gallery-tv) targets tvOS and Android TV, but has no official release yet. There are no plans listed for Roku, Fire TV, Kodi, Samsung, or LG apps. The TV feature audit lists the feature gaps inside the TV app itself (subtitle rendering, device capabilities, next-episode autoplay, skip intro). |
| Stable casting | Jellyfin’s Chromecast support is mature. Gallery’s Chromecast support (web and mobile) is experimental. |
Medium Priority Gaps#
| Gap | Notes |
|---|---|
| Collections / smart collections | Jellyfin groups items into collections (box sets), and community plugins can auto-populate them by rules. Gallery has only manually curated playlists and no collection concept. |
| Automatic subtitle download | Jellyfin can fetch subtitles from OpenSubtitles and other providers via plugins. Gallery uses embedded or locally present files only. |
| Plugin / extension ecosystem | Jellyfin has a rich community plugin library (metadata agents, subtitle providers, notification integrations, etc.). Gallery uses fixed integrations only. |
| Kodi integration | Jellyfin has a first-class Kodi add-on for two-way library sync and playback. |
| Lyrics display | Jellyfin shows synced (LRC) and embedded lyrics with auto-scroll, has a lyrics editor, and can pull lyrics from plugins. Gallery has no lyrics support. |
Low Priority Gaps#
| Gap | Notes |
|---|---|
| Live TV and DVR | Jellyfin supports antenna and HDHomeRun tuners for live broadcast TV and recording. |
| External metadata override | Jellyfin allows NFO/XML sidecar files to override scraped metadata. Gallery does not. |
| Trailers and extras | Jellyfin can attach trailers, featurettes, and extras to movies. |
| HDR / Dolby Vision badges in the UI | Jellyfin surfaces HDR format, Dolby Vision profile, and audio codec badges. Gallery detects HDR type and uses it for playback decisions, but does not display format badges. |
| Built-in backup and restore | Jellyfin 10.11 added backup of its database and configuration from the dashboard. Gallery has no built-in backup; back up the /config volume externally. |
Not planned (by design)#
| Difference | Notes |
|---|---|
| DLNA / UPnP server | Jellyfin provides DLNA through an official plugin (no longer in the core server since 10.9). This is a real gap for people with older TVs, receivers, and consoles that have no app. Gallery will not add DLNA or UPnP. The protocol is legacy (the DLNA certification body dissolved in 2017), and its unauthenticated multicast discovery has a long record of security problems. Common guidance is to disable it. Gallery’s answer for the living room is native TV apps and Chromecast, which do not reach devices that have neither. This will not change. |
Previously listed, now closed#
| Former gap | Status |
|---|---|
| Casting from mobile | The mobile app now supports Google Cast through the same custom receiver as the web UI. Still experimental. |
| Parental controls | Gallery now has content-rating policies (per media type, block-unrated, allow/deny lists) plus time-of-day restrictions. |
| Multi-profile households | Not planned. Gallery uses server-level accounts only, as Jellyfin does. The TV app has an account switcher with per-account PIN lock. |
| Multi-version media | Listed in error. Gallery groups several files under one movie or series, with a “Select Version” dropdown showing resolution and duration. |
| Photo face detection | Removed. Jellyfin has no built-in face detection. |
Summary Verdict#
Gallery and Jellyfin are the closest structural peers in the self-hosted media server space. Both are free, self-contained, and cover the same broad media types. Gallery has closed most of the family-safety gaps (rating policies, time windows). The client gaps are narrowing: the gallery-tv app (tvOS and Android TV) has no official release yet, and Chromecast is experimental. The remaining divergences are:
Choose Gallery when:
- Fine-grained, per-library access control is required (multi-user households or shared servers with real permission boundaries)
- Built-in passkeys, TOTP, email OTP, and enforceable sign-in policy matter, with an audit trail of who changed what
- AI-assisted metadata enrichment and tagging is valuable
- YouTube archival and playlist sync is a workflow
- Magic-link sharing with access limits is important
- Observability and production-grade logging matters
Choose Jellyfin when:
- Released, mature TV apps are required today, or you need Roku, Fire TV, Samsung, LG, or Kodi
- Stable Chromecast casting is a daily use case
- DLNA compatibility with existing renderers is needed (Gallery will not add this)
- A large plugin ecosystem is important
- Automatic subtitle downloading, lyrics, or trailers and extras are must-haves
- Live TV and DVR are needed
- Built-in backup and restore is important
Note that Gallery’s Music, Podcasts, and Audiobooks libraries are still flagged beta and are off by default until an admin enables them.