Skip to content

Features Guide

Jellyfin Enhanced bundles dozens of features into one convenient plugin. This guide covers all available features and how to use them.


Header Shortcuts

JE shortcuts share a single header row with Jellyfin's controls. Random gets first priority, and other enabled shortcuts stay visible while there is room. Tap More (โ€ขโ€ขโ€ข) for the remaining shortcuts. As the window widens, shortcuts return to the header automatically.

The More menu uses labeled buttons. On short screens, previous/next buttons show the remaining actions without scrolling. Close it by choosing an action, clicking outside, or pressing Escape.

JE shortcuts fitting beside Jellyfin's native controls

Remaining shortcuts in the More menu on a phone

Live header resizing from desktop to a small phone

Random Button

Random button picking a title

The dice button (or R) opens a random movie or show from your library. In the Enhanced panel's Random Button tab you can limit it to unwatched items, choose whether movies and/or shows are eligible, and narrow the pool under Random Source:

  • Use the playlist or collection I'm viewing - on a playlist or collection page, the pick comes from that container's items (movies, shows or episodes) instead of the whole library.
  • Everywhere else, pick from - pin one of your playlists or collections so every press draws from it, whatever page you are on.

If the chosen source has nothing eligible (empty, all watched, or deleted), the button falls back to the whole library and says so in a toast. The admin default for the "current playlist/collection" behaviour is under Random Button on the plugin configuration page.


Content Management

Hidden Content System

Hidden content management panel

Per-user content hiding with server-side storage and granular filtering controls.

Features:

  • Hide specific movies/series from all browsing surfaces
  • Hidden state stored server-side per-user
  • Survives browser/device changes
  • Management panel with search and bulk operations
  • Granular filter toggles for different surfaces
  • Undo functionality with toast notifications

Surfaces with Filtering:

  • Library views
  • Discovery pages
  • Search results
  • Calendar view
  • Next Up section
  • Continue Watching section
  • Recommendations
  • Requests page

How to Hide Content:

  1. Navigate to any item detail page
  2. Click the hide button (visibility_off icon)
  3. Choose hide scope:
    • Global - Hide everywhere
    • Episode - Hide this episode only
    • Show - Hide entire series
    • Next Up - Hide from Next Up only
    • Continue Watching - Hide from Continue Watching only
  4. Confirm the action

Management Panel:

Access via: - Enhanced panel โ†’ Settings โ†’ Hidden Content - Sidebar navigation (if enabled; Jellyfin 12: user profile menu instead) - Custom tab (if configured)

Management Features:

  • View all hidden items
  • Search hidden content
  • Unhide individual items
  • Unhide all items at once
  • Group by series/movies
  • Filter by scope

Configuration:

  1. Open Enhanced panel (press ?)
  2. Go to Settings tab
  3. Find Hidden Content section
  4. Enable/disable the feature
  5. Configure filter toggles:
    • Show hide buttons on Seerr items
    • Show hide buttons in library views
    • Show hide buttons on detail pages
    • Filter library views
    • Filter discovery pages
    • Filter search results
    • Filter calendar
    • Filter Next Up
    • Filter Continue Watching
    • Filter recommendations
    • Filter requests page
  6. Choose integration method:
    • Plugin Pages (requires Plugin Pages plugin; Jellyfin 12: user profile menu instead of sidebar)
    • Custom Tabs (requires Custom Tabs plugin)

Remove from Continue Watching / Next Up

A lightweight, non-destructive way to tidy the home screen. It adds a Remove option to an item's "โ‹ฏ" action-sheet menu for items in the Continue Watching and Next Up rows, hiding the item from that row without touching your playback position or watched state.

The Remove option in an item's menu

How It Works:

  1. Open an item's "โ‹ฏ" menu in the Continue Watching or Next Up row
  2. Click Remove from Continue Watching / Remove from Next Up
  3. The item disappears from that row โ€” your progress is left untouched

Highlights:

  • Works on both Continue Watching and Next Up items, each removed from its own row
  • Also appears in Jellyfin's long-press / multi-select menu, so touch devices with no "โ‹ฏ" button can remove items. Selecting a mix of rows (and other items) only ever removes the Continue Watching / Next Up ones
  • Removing several at once shows a confirmation listing each item and the row it will be removed from
  • Hidden state is stored server-side, per-user, so it applies across all your devices and survives reloads
  • Undoable: removed items appear in the Hidden Content management page with an "Add back" button, and simply resuming a hidden item unhides it automatically
  • Works on its own โ€” it does not require the full Hidden Content feature to be enabled
  • Also applies to home screens rendered by the Home Screen Sections plugin, including its combined Continue Watching / Next Up row

Bulk removal confirmation listing each item and its row

Enable it:

  • Open the Enhanced panel (press ?) โ†’ Settings โ†’ Add Remove from Continue Watching & Next Up Buttons

Admin: Other Users' Hidden Content

Admin viewing another user's hidden content

Administrators can review (and optionally manage) what other users have hidden, from the same Hidden Content page. Admin-only and enforced server-side; regular users never see it.

Features:

  • User-filter dropdown to switch between My hidden content and any user who has hidden something
  • Another user's list is read-only by default, with a "Viewing: OtherUser" badge
  • An Edit toggle (when enabled) to unhide items for that user, or add new ones
  • Add items by searching the library and Seerr, so you can hide titles that aren't in the library yet
  • An admin never overwrites an item the user hid themselves

Configuration:

In Dashboard โ†’ Plugins โ†’ Jellyfin Enhanced โ†’ Pages โ†’ Hidden Content โ†’ Admin Controls, the Let admins view and manage other users' hidden content toggle enables the whole feature (the user-filter dropdown and the Edit toggle). On by default; turn it off to keep hidden lists private.


Playback & Controls

Advanced Keyboard Shortcuts

Comprehensive hotkeys for navigation, playback control, and more.

Shortcuts

Default Shortcuts:

Global:

  • / - Open Search
  • Shift+H - Go to Home
  • D - Go to Dashboard
  • Q - Quick Connect
  • R - Play Random Item

Player:

  • A - Cycle Aspect Ratio
  • I - Show Playback Info
  • S - Subtitle Menu
  • C - Cycle Subtitle Tracks
  • V - Cycle Audio Tracks
  • + - Increase Playback Speed
  • - - Decrease Playback Speed
  • R - Reset Playback Speed
  • B - Bookmark Current Time
  • P - Open Episode Preview
  • O - Skip Intro/Outro

Customization:

  1. Press ? to open the Enhanced panel
  2. Go to Shortcuts tab
  3. Click on any key to set a custom shortcut
  4. Changes save automatically per user

Smart Bookmarks

Bookmark markers on the video timeline

Save timestamps and jump to specific moments with visual timeline markers.

Features:

  • Create bookmarks during playback with B key
  • Visual markers on video timeline
  • Add custom labels to bookmarks
  • Sync bookmarks across duplicate items (same TMDB/TVDB ID)
  • Manage all bookmarks from Custom Tabs interface
  • Export/import bookmark data

Usage:

  1. While watching, press B at any moment
  2. Add an optional label (e.g., "Epic scene")
  3. Bookmark appears as marker on timeline
  4. Click marker to jump to that timestamp

Bookmark Management:

  • Access via Custom Tabs plugin
  • View all bookmarks across library
  • Clean up orphaned bookmarks
  • Detect and merge duplicates
  • Adjust time offsets for synced bookmarks

Custom Pause Screen

Beautiful overlay with media info when you pause a video.

Pause Screen

Displays:

  • Media title and logo
  • Year, rating, runtime
  • Plot/description
  • Current progress with time remaining
  • Spinning disc animation
  • Blurred backdrop

Smart Playback

Intelligent playback features for better viewing experience.

Features:

  • Auto-pause - Pause when switching browser tabs
  • Auto-resume - Resume when returning to tab
  • Auto-skip intros/outros - Seamless binge-watching, driven by Jellyfin's own media segments (requires a segment provider such as Intro Skipper)
  • Playback speed control - Adjust speed with keyboard shortcuts
  • Auto Picture-in-Picture - Enter PiP mode when switching tabs and leave it when you come back. Browsers that open their own automatic PiP on tab switch (such as Edge and Chrome) keep control of that window; JE only closes a PiP window it opened itself

Configuration: Enable/disable in Enhanced panel โ†’ Settings tab

How auto-skip works:

Auto-skip reads the media segments Jellyfin already stores for the item (the same data the native Skip Intro button uses) and seeks straight to the segment's end boundary.

  • It skips to the exact end of the intro/outro segment, honouring the offsets the segment provider detected.
  • It works in every language โ€” nothing depends on the skip button's English label.
  • It works even with Jellyfin's own media-segment action set to None, where no skip button ever appears.
  • If you seek back into an intro you just skipped, it stays put instead of yanking you forward again. Rewind to before the segment and play through it and it skips again, matching Jellyfin's native behaviour.

Note

Recap, Preview and Commercial segments are left to Jellyfin's own per-segment-type actions (Playback settings), which can prompt or skip them independently. The Enhanced toggles only cover intros and outros. Jellyfin stores media segments per item, not per version, so an item with multiple versions whose timings differ may see boundaries taken from the primary version.

Customizable Subtitles

Fine-tune subtitle appearance with presets and custom colors.

Presets:

  • Multiple font families
  • Size options (small, medium, large, extra large)
  • Background opacity
  • Text effect: Auto, None, Shadow, Outline or Outline + Shadow
  • Position adjustments

Custom Colors:

  • User-configurable text color with alpha support
  • User-configurable background color with alpha support
  • Live preview in settings
  • Per-user customization

Text effect:

  • Auto (default) keeps the long-standing behaviour: a soft shadow when the background is transparent, nothing when a background box is shown.
  • None, Shadow, Outline and Outline + Shadow apply that effect regardless of background. The outline is a black stroke that scales with the font size.
  • Admins can pick the default for new users with Default Subtitle Text Effect in the plugin settings.
  • The text effect takes the place of Jellyfin's own Drop shadow subtitle setting, so the two never stack. To use Jellyfin's drop shadow instead, turn on Disable Custom Subtitle Styles.

Usage:

  1. Open Enhanced panel โ†’ Settings
  2. Find Subtitle Presets section
  3. Select your preferred preset options
  4. Or use Custom Colors section:
    • Choose text color
    • Adjust text alpha
    • Choose background color
    • Adjust background alpha
    • Preview changes live
  5. Changes apply immediately

How it applies

Jellyfin draws text subtitles in one of two ways, decided by its Subtitle styling setting (in Jellyfin User Preferences โ†’ Subtitles). Jellyfin Enhanced styles both.

Jellyfin Subtitle styling What Jellyfin uses What Jellyfin Enhanced applies
Custom Its own subtitle element Text color, background, size, font, text effect and position
Native The browser's built-in captions Text color, background, size, font and text effect. Position is not available
Auto Custom on Firefox, Safari (including the iOS app), Edge and TV platforms (Tizen 5+, webOS, PS4). Native on Chrome The same as whichever mode Auto picks
  • The position grid only takes effect in Custom mode, because the browser's native captions cannot be repositioned. The Enhanced panel shows a note when Subtitle styling is not set to Custom.
  • A secondary subtitle track is styled the same way as the primary one. Both share one position and stay stacked without overlapping. Near the top of the screen, two lines take more height, so keep the position below the top edge.
  • Styling behaves the same on Jellyfin 10.11 and 12. The only difference is how VobSub subtitles are handled, described below.

Subtitle formats that cannot be styled

Jellyfin Enhanced can only style subtitles that Jellyfin draws as text. These formats are drawn as images or by Jellyfin's own renderer, so their look comes from the subtitle track itself and Jellyfin Enhanced cannot change it. Jellyfin's own Subtitle Appearance settings do not apply to them either:

Format Why it cannot be styled
ASS / SSA Jellyfin renders these on a canvas using the fonts, colors, size and position written in the subtitle file
PGS (Blu-ray) Bitmap images. There is no text to restyle
VobSub / DVD subtitles Bitmap images. Jellyfin 12 draws them in the browser; Jellyfin 10.11 has the server burn them into the video
Burned-in subtitles Drawn into the video by the server (for example when a transcode is needed), so they cannot be changed in the browser

If styling does not apply, check which subtitle track is playing. Choosing a text-based track (for example SRT) restores full styling. The Enhanced panel shows a warning when the current video uses one of these formats.

Turning it off

  • For yourself: in the Enhanced panel โ†’ Settings, enable Disable Custom Subtitle Styles, then reload the page. Jellyfin Enhanced then leaves subtitles alone and your Jellyfin User Preferences โ†’ Subtitles settings apply unchanged. Jellyfin Enhanced never changes those saved settings. It only styles the subtitles while a video plays.
  • For all users: in the plugin settings, enable Disable Custom Subtitle Styles by default, save, then use Overwrite everyone's personal settings in Quick Actions. The default only applies when a user's settings are first created, so users who already have saved settings keep their own value until you overwrite them.

Discovery & Integration

Seerr Search Integration

Search, request, and discover media directly from Jellyfin's search interface.

Seerr search results

Features:

  • Search Seerr from Jellyfin search bar
  • Further result pages load ahead as you scroll the row (see Seamless Scrolling)
  • Results respect each user's parental controls (see Parental Ratings)
  • Request movies and TV shows
  • View request status (pending, approved, available)
  • Auto-add requested media to watchlist
  • Sync Seerr watchlist to Jellyfin

Setup:

  1. Open plugin settings โ†’ Seerr tab
  2. Check "Show Seerr Results in Search"
  3. Enter Seerr URL(s) (one per line)
  4. Enter Seerr API Key (from Seerr Settings โ†’ General)
  5. Click "Test Connection"
  6. Enable optional features:
    • Add Requested Media to Watchlist
    • Sync Seerr Watchlist to Jellyfin
  7. Click Save

Requirements:

  • Seerr instance with API access
  • "Enable Jellyfin Sign-In" enabled in Seerr
  • Jellyfin users imported into Seerr

Jellyfin Sign-In

Icon States:

Icon State Description
active Active Seerr is successfully connected, and the current Jellyfin user is correctly linked to a Seerr user.
Results from Seerr will load along with Jellyfin and requests can be made.
noaccess User Not Found Seerr is successfully connected, but the current Jellyfin user is not linked to a Seerr account.
Ensure the user has been imported into Seerr from Jellyfin. Results will not load.
offline Offline The plugin could not connect to any of the configured Seerr URLs.
Check your plugin settings and ensure Seerr is running and accessible. Results will not load.

Seerr Item Details

Seerr recommendations and similar items on a detail page

View recommendations and similar items on detail pages.

Features:

  • Recommended items section
  • Similar items section
  • Request directly from recommendations
  • Exclude items already in library
  • Real-time request status indicators
  • Support for 4K requests
  • TV season selection

Setup:

  1. Configure Seerr integration (see above)
  2. Check "Show Seerr Recommendations and Similar items"
  3. Optional: Enable "Exclude already in library items"
  4. Click Save

Discovery Pages:

  • Genre-based discovery
  • Network-based discovery
  • Person-based discovery (actors, directors)
  • Tag-based discovery
  • All with TV/Movies/All filtering

ARR links on an item detail page

Quick access to Sonarr, Radarr, and Bazarr (admin only).

Features:

  • Direct links to item pages in Sonarr/Radarr
  • Bazarr subtitle management links
  • Display *arr tags as clickable links
  • Filter and customize tag display

Streaming Provider Lookup

See where else your media is available to stream.

Elsewhere

Features:

  • Multi-region support
  • Buy, rent, and stream options
  • Provider logos and links
  • Powered by TMDB data

Usage:

  1. Enable in Enhanced panel โ†’ Settings
  2. Select your region
  3. View providers on item detail pages

User Reviews

User reviews section on an item detail page

Jellyfin users can write their own reviews for movies, series, seasons, and episodes. Reviews are stored server-side and visible to all users.

Features:

  • Write a review with a star rating (1-5) and optional text, or just a rating with no text
  • Reviews appear in a dedicated "Reviews" section on item detail pages, listed before TMDB reviews
  • Edit or delete your own review at any time
  • Average user rating chip displayed next to TMDB/RT ratings in the item media info bar
  • Average user rating also shown as a poster tag (person_heart icon) on library cards when rating tags are enabled
  • Admin moderation โ€” admins can delete any user's review
  • Optional: star ratings given in a review can also be saved as the user's Jellyfin rating on the item, so scrobblers and Letterboxd/Trakt-style sync tools that read Jellyfin user data pick them up

How to write a review:

  1. Open any movie, series, season, or episode detail page
  2. Scroll to the Reviews section
  3. Click Add Review
  4. Select a star rating (optional) and write your review text (optional โ€” a rating alone is valid)
  5. Click the save icon

Setup (admin):

  1. Go to Dashboard โ†’ Plugins โ†’ Jellyfin Enhanced
  2. Navigate to the Enhanced Settings tab
  3. Enable "Show User Reviews"
  4. Optionally enable "Show User Rating on Posters" to display the average rating as a poster tag
  5. Optionally disable "Show User Rating Dash" to hide the โ€” placeholder on posters when no ratings exist yet
  6. Optionally enable "Also save review star ratings as the user's Jellyfin rating" to mirror each review's 1-5 star rating (scaled to Jellyfin's 0-10) onto the user's Jellyfin rating for that movie or series. Off by default because it overwrites a rating the user may have set elsewhere. Deleting a review (or removing its stars) clears the Jellyfin rating only if it still matches the review's rating, so a rating changed elsewhere in the meantime is kept. Season/episode reviews are not mirrored
  7. Click Save

Note

The poster tag requires the user to also have Rating Tags enabled in the Enhanced panel (Settings tab).

Admin moderation:

Admins see a delete button on all reviews, not just their own. A confirmation dialog is shown before deletion. The action is logged and the section refreshes automatically.


Activity Feed

Activity Feed page

Shows recently watched, favorited, and reviewed titles across the server, so users can see what others are up to. Each viewer only ever sees activity for items they themselves have library access to - someone else's activity on a library you can't see never appears.

Features:

  • Recently watched (full playback completions)
  • Recently favorited
  • Recently reviewed (see User Reviews above)
  • Optional live "who's watching now" section, powered by the same data as the Active Streams Widget
  • Per-viewer filtering: hidden or disabled review authors are excluded the same way they are in the Reviews section
  • Reachable as a sidebar page (Plugin Pages; Jellyfin 12: user profile menu instead), a home-page tab (native or Custom Tabs), or both

Setup:

  1. Go to Dashboard โ†’ Plugins โ†’ Jellyfin Enhanced
  2. Navigate to the Extras tab
  3. Enable "Enable Activity Feed"
  4. Choose what to show: Show recently watched, Show recently favorited, Show recently reviewed, Show Active Streams section
  5. Choose how it's reachable - pick one or more:
    • Add Activity as a native Home tab - no external plugin needed
    • Use Plugin Pages - adds a sidebar link (requires Plugin Pages; Jellyfin 12: user profile menu instead)
    • Use Custom Tabs - adds a home-page tab via Custom Tabs instead of the native one
  6. Click Save

Note

Turning the feature off does not delete any recorded activity - it just stops recording and stops showing the feed. Turning it back on picks up from where it left off.


Catch Up

A card-deck page for quickly sorting the library: each unwatched movie or show appears as a poster card and one gesture records what the viewer thinks of it. It is a fast way to find out which titles people have already seen.

Gesture Keyboard What it does
Swipe right โ†’ Marks the title watched
Swipe left โ† Dismisses it (hidden from that viewer's deck in this browser)
Swipe up โ†‘ Adds it to the watchlist - sets the title's Likes flag, the same flag Seerr watchlist sync uses
Swipe down โ†“ Opens the title's details page
Rewind button Backspace / Z Undoes the last action, including un-marking watched and removing the watchlist flag

Features:

  • Separate Movies and Shows decks, newest random batch first
  • Swiping right on a show asks which seasons were watched: tapping a later season selects every earlier one, and any individual season can be unticked before confirming
  • Works with touch, mouse and keyboard
  • Optional activity log: records who swiped what (title, action, time). Administrators see it in an Activity panel on the page itself - docked beside the deck on wide screens - with a feed (filter by user, one or more actions, or title), a per-user summary and the most watched / dismissed / watchlisted titles. Non-admins never see the panel, and the endpoints refuse them
  • Each viewer only sees titles they have library access to; watched and watchlist changes are written to that viewer's own Jellyfin account

Setup:

  1. Go to Dashboard โ†’ Plugins โ†’ Jellyfin Enhanced
  2. Navigate to the Extras tab
  3. Enable "Enable Catch Up"
  4. Leave "Record Catch Up activity" on if you want the admin Activity panel, or turn it off to record nothing
  5. Choose how it's reachable - pick one or more:
    • Add Catch Up as a native Home tab - no external plugin needed
    • Use Plugin Pages - adds a sidebar link (requires Plugin Pages; Jellyfin 12: user profile menu instead)
    • Use Custom Tabs - adds a home-page tab via Custom Tabs instead of the native one
  6. Click Save

Note

The activity log is stored as catchup-log.jsonl in the plugin's configuration folder and is size-bounded (about 5 MB per file, two files kept). Item names in the log are looked up from the library on the server, never taken from the browser.


TMDB Reviews

Display user reviews from TMDB on item pages.

Features:

  • Full review text
  • Author information
  • Rating scores
  • Review dates
  • Expandable/collapsible reviews

Setup: Enable "Show TMDB Reviews" in Dashboard โ†’ Plugins โ†’ Jellyfin Enhanced โ†’ Elsewhere Settings tab.

See Elsewhere Features for full details.


Visual Enhancements

Quality Tags

Quality, genre, language, age rating and score badges on posters

Display quality information (4K, HDR, Atmos) directly on posters.

Supported Tags:

  • Resolution: 8K, 4K, 1080p, 720p, 480p, LOW-RES
  • Video Format: AV1, HEVC, H265, VP9, H264
  • Video Features: HDR, Dolby Vision, HDR10+, 3D
  • Audio: ATMOS, DTS-X, TRUEHD, DTS, Dolby Digital+, 7.1, 5.1
  • Media Stubs: BluRay, HD DVD, DVD, VHS, HDTV, Physical (for physical media files)

Preferred audio language:

By default the sound tag describes the best audio track in the file. Set a preferred language (admin default under Media Tags, or per user in the Enhanced panel's Quality Tags options) and it describes the best track in that language instead โ€” a film whose English track is Atmos but whose German dub is plain AC3 reads AC3 for a German-preferring user. Titles with no audio in the language fall back to their best track. Admins can also let the tag follow each user's Jellyfin audio language preference, and users can pick "My Jellyfin audio language" themselves.

Genre Tags

Genre tags on posters

Identify genres with themed icons on posters.

Features:

  • Material Design icons for each genre
  • Circular badges that expand on hover
  • Show up to 3 genres per item
  • Customizable position

Language Tags

Language tags (country flags) on posters

Display available audio languages as country flags on posters.

Features:

  • Country flag icons from flagcdn.com
  • Show up to 3 unique languages
  • Positioned bottom-left by default
  • Also displays on item detail pages
  • Series and season cards show every language found across their episodes. A language that is missing from some episodes (a dub that only covers part of the show) is drawn dimmed with a dashed outline, and its flag's title/alt text adds "not on all episodes"; a plain flag means every episode has that audio. Full-series languages are listed first. Specials don't count against a series' full languages, and tracks without a language tag are ignored. Differently tagged copies of one language (eng / en, fre / fr-FR) count as the same dub; two regional variants that sit side by side in one episode (es-419 and es-ES) are judged separately. Requires the server-side tag cache (on by default); in the legacy per-page mode the card reflects one representative episode as before
  • Regional variants get their own flag when the audio track is explicitly tagged with a region: pt-BR shows the Brazilian flag while pt / pt-PT keep the Portuguese one, es-419 / es-MX (Latin-American Spanish) show the Mexican flag, zh-Hant maps to the Taiwanese flag, and so on. Media tagged with just a base language (pt, es, zh) keeps its default flag โ€” a regional variant is never guessed

Tagging matters

Region detection relies on the language tag stored in your media file (pt-BR, es-MX, pobโ€ฆ). Tracks tagged with only a base language code can't be told apart, so they show the language's default flag.

Audio languages on item detail pages link to Jellyfin's list of items with that language.

Features:

  • Backed by Jellyfin tags written by the Sync Audio Language Tags to Jellyfin scheduled task (movies and series)
  • A regional track gets two tags: a base tag (JE Language: English) and a regional tag (JE Language: English (United States))
  • A regional language links to its regional tag; a base language links to the base tag
  • Series use the union of languages across their episodes
  • A language without a matching tag on the item is shown as plain text
  • Tags for languages an item no longer has are removed on each sync

Rating Tags

Show TMDB and Rotten Tomatoes ratings on posters and in player.

Ratings

Features:

  • TMDB star ratings
  • Rotten Tomatoes critic scores (fresh/rotten icons)
  • Stacked vertically on posters
  • Optional OSD display during playback
  • Color-coded by rating value
  • Choose where they appear, per item type (movies, series, seasons, episodes) and per home row (Continue Watching, Next Up). Untick Episodes to keep ratings off every episode card, including Next Up and Continue Watching; untick a row to hide them only in that row (on the home screen, and the Next Up shelf on a series page). Rating chips and your own review chip are hidden together on an excluded card. Admins set the defaults; each user can change them under Show Rating Tags in the Enhanced panel.

Age Rating Tags

Show the item's parental / age rating (PG-13, R, TV-MA, FSK 12, BBFC 15, ...) as a badge on posters.

Features:

  • Reads the rating Jellyfin already has for the item (no extra lookups)
  • Episodes and seasons fall back to their series' rating
  • Colour-coded per rating board, using the same colour table as Colored Ratings
  • Customizable position; defaults to the bottom-right corner and stacks with Rating Tags when both share a corner
  • Off by default โ€” enable it per user in the Enhanced panel (Settings tab), or set the admin default under Display โ†’ Media Tags

Note

Spoiler Guard keeps the badge: a series' or movie's age rating reveals nothing about the plot, and the details page shows it regardless. While Spoiler Guard is hiding ratings, unwatched episodes (and unstarted seasons) of a guarded series show the series' rating rather than their own, since an episode rated higher than its show can hint at what happens in it.

Native Poster Tags (Experimental)

Show your Media Tags in native Jellyfin apps that can't run Jellyfin Enhanced's web overlays, such as the official Android TV app. The server draws each user's tags into the poster images it sends to those apps, so they appear without any change to the app.

What gets drawn:

  • Quality, genre, language, rating (with the user-review chip) and age rating tags, matching the web look as closely as a static image allows
  • Movies, series, seasons, episodes, collections and videos, on their primary images (posters, and episode thumbnails in landscape layout)
  • Each user's own tag choices, corners, quality categories and order, preferred audio language, priority languages and rating item-type scope, the same settings the web overlays use
  • Spoiler Guard is respected: guarded items use the same spoiler-safe tag data as the web, and tags are drawn on top of the blurred image

Which apps:

  • Native apps, for example Jellyfin for Android TV, Jellyfin for Tizen, Swiftfin, Findroid and Streamyfin
  • Apps that already run Jellyfin Enhanced's web overlays keep the original posters so tags are never drawn twice: Jellyfin Web, Jellyfin Media Player, Jellyfin Desktop, Jellyfin for WebOS and Jellyfin for Android (the phone app). Admins can add more names in the settings
  • An app that builds poster addresses without Jellyfin's image tag, or asks Jellyfin to draw its own watched or unplayed-count indicator into the image, keeps the original posters

Setup:

  1. Go to Dashboard โ†’ Plugins โ†’ Jellyfin Enhanced โ†’ Display โ†’ Media Tags
  2. Turn on Enable Native Poster Tags (Experimental) at the bottom
  3. Click Save
  4. Every user now gets their tags in native apps; anyone who doesn't want them can turn off Show Tags in Native Clients in the Enhanced panel's UI Settings
  5. Reopen the library, or restart the app, on the TV or phone

See Enhanced Settings - Native Poster Tags for every setting.

Limitations:

  • Static layout. There is no hover, so hover-only details (genre names, Hide Tags on Hover) don't apply. Tag size follows the poster's width rather than the size the app displays it at
  • No row or page context. The server only sees an image request, not where it is shown. The Continue Watching and Next Up rating scopes are not applied (the per-item-type scopes are), Disable Tags on Search Page has no effect, and the tags also appear wherever the app reuses the poster, such as its details page
  • Posters are re-downloaded after a change. Turning the feature on, changing your tag settings, or a change to an item's tag data gives its posters a new address, so the app downloads them again
  • First-view CPU cost. Each poster is drawn the first time it is viewed at a given size, which uses some server CPU; a big home screen on a fresh cache can mean a short burst of work. Drawn posters are cached in memory and in Jellyfin's cache folder
  • Apps may need a refresh. Native apps cache poster addresses, so a change shows after reopening the library or restarting the app
  • With Server-Side Tag Cache off, changed tag data can take up to an hour to show on a poster an app has already downloaded
  • Original artwork files are never modified

People Tags

People tags on cast cards

Display age and birthplace information for cast members.

Features:

  • Current age or age at death
  • Age at item release
  • Birthplace with country flag
  • Deceased indicator (grayscale + cross)
  • Caching for performance

Displays:

  • Age chips (top-left of cast cards)
  • Birthplace banner (bottom of cast cards)
  • Deceased styling (grayscale filter)

Awards

Expanded awards panel listing wins and nominations

Show award wins and nominations on item detail pages and person pages, sourced from Wikidata by TMDB id.

Features:

  • Expandable banner below the Reviews section, showing total wins and nominations
  • Full per-category breakdown when expanded: award name, Won/Nominated, year, and who it went to (or which title it was for, on a person's page)
  • Recognized award-body icons (Oscars, Golden Globes, BAFTA, Emmys, SAG, Critics' Choice, National Board of Review, Saturn Award, Kids' Choice Awards, Toronto Film Critics, Cannes/Palme d'Or) shown next to each entry โ€” anything not in that list still shows correctly, just without a logo
  • Works on movies, TV shows, and person (cast/crew) pages โ€” a person's page shows their full career award history, not just one title's
  • No API key required โ€” Wikidata's public data endpoint is free and keyless

Setup:

  1. Go to Dashboard โ†’ Plugins โ†’ Jellyfin Enhanced
  2. Navigate to the Display tab
  3. Enable "Show Awards Banner"
  4. Click Save

Note

Coverage depends entirely on what's recorded in Wikidata for that title or person โ€” very well-covered for major releases and prestige awards, thinner for obscure titles or lesser-known award bodies. A title/person with no award data on Wikidata simply shows no banner.


Personal Scripts

These are optional scripts from the developer's personal collection.

๐Ÿ“ก Active Streams Widget

A live stream counter in the Jellyfin header that shows who is currently playing and what they're watching.

Features:

  • Stream counter icon in the header, colour-coded by state
  • Click to open a panel listing every active session
  • Poster thumbnails and user avatars per session
  • Direct Play vs Transcoding badges with codec and bitrate details
  • Playback progress bar with current position and total duration
  • Playing / Paused state badge per session
  • Clickable title links to the item detail page
  • Admin-only broadcast button to message all active sessions
  • Polls every 15 seconds; updates automatically while the panel is open

Header icon states:

Icon State
play_circle (no badge) No active streams
person + badge 1 One stream playing
group + badge count Multiple streams
pause_circle + badge count All streams paused
Red icon Failed to fetch sessions

Session card details:

Each card in the panel shows:

  • Poster thumbnail (series poster for episodes, movie poster for films)
  • Title and episode info (S01E01 ยท Episode Name)
  • Playing / Paused badge
  • Progress bar with elapsed / total time
  • Playback badges: Direct Play or Transcoding, video codec, bitrate, resolution, framerate
  • Transcode reason (e.g., "Video Codec Not Supported") when applicable
  • User avatar, username, client name, and device name
  • IP address (admins only)

Broadcast (admin only):

Admins see a megaphone icon (๐Ÿ“ฃ) in the panel header. Click it to open the broadcast form:

Field Required Notes
Title No May not display on all clients (web UI typically ignores it)
Message Yes Always visible; sent to every active session
Timeout Yes Seconds before the notification auto-dismisses (default: 10)

Setup:

  1. Go to Dashboard โ†’ Plugins โ†’ Jellyfin Enhanced
  2. Navigate to the Other Settings tab
  3. Enable "Active Streams Widget"
  4. Optional: Enable "Show to all users" to make the widget visible to non-admin users

Note

By default the widget is admin-only. Non-admin users see a read-only view (no broadcast button, no IP addresses) when "Show to all users" is enabled.

๐ŸŽจ Colored Activity Icons

Replace default activity icons with Material Design icons.

Colored Activity Icons

Features:

  • Custom colors for each activity type
  • Material Design icon set
  • Better visual distinction

Configuration:

Enable in Enhanced panel โ†’ Settings โ†’ Extras

๐ŸŽช Colored Ratings

Color-coded backgrounds for ratings on detail pages.

Colored Ratings

Features:

  • Different colors per rating type
  • Value-based color gradients
  • Supports TMDB, IMDb, Rotten Tomatoes

Configuration: Enable in Enhanced panel โ†’ Settings โ†’ Extras

๐Ÿ–ผ๏ธ Login Image Display

Show user profile images on manual login page.

Login Image

Features:

  • Display user avatars
  • Cleaner login interface
  • Automatic fallback to text

Configuration:

Enable in Enhanced panel โ†’ Settings โ†’ Extras

๐Ÿงฉ Plugin Icons

Replace default plugin icons with Material Design icons.

Plugin Icons

Features:

  • Custom icons for popular plugins
  • Add custom config page links
  • Improved dashboard aesthetics

Configuration: Enable in Enhanced panel โ†’ Settings โ†’ Extras

๐ŸŽญ Theme Selector

Choose from multiple Jellyfin theme color variants.

Theme Selector

Features:

  • Multiple color palettes (Aurora, Jellyblue, Ocean, etc.)
  • Randomize theme daily option
  • Quick theme switching

Configuration:

  1. Enable in Enhanced panel โ†’ Settings โ†’ Extras
  2. Select theme from dropdown
  3. Optional: Enable "Randomize Daily"

Customization

๐ŸŽจ Custom Styling with CSS

Extensive CSS customization options. See CSS Customization Guide for more details.

Available Customizations:

  • Pause Screen CSS
  • Quality Tags CSS
  • Genre Tags CSS
  • Language Tags CSS
  • Rating Tags CSS
  • Rating Tag OSD CSS
  • People Tags CSS
  • ARR Tag Links CSS
  • Enhanced Panel CSS

๐Ÿ–ผ๏ธ Custom Branding

Upload your own logos, banners, and favicon.

Features:

  • Custom Jellyfin logo (header)
  • Custom splash banners (light/dark themes)
  • Custom favicon (browser tab icon)
  • Files stored in plugin config folder
  • Survives Jellyfin updates

Setup:

  1. Go to Dashboard โ†’ Plugins โ†’ Jellyfin Enhanced
  2. Navigate to Other Settings tab
  3. Find Custom Branding section
  4. Upload your custom images:
    • Icon Transparent (header logo)
    • Banner Light (dark theme splash)
    • Banner Dark (light theme splash)
    • Favicon (browser icon)
  5. Click Save
  6. Force refresh browser Ctrl+F5

Requirements:

  • Requires file-transformation plugin
  • Recommended image formats: PNG, SVG
  • Files stored in: /plugins/configurations/Jellyfin.Plugin.JellyfinEnhanced/custom_branding/

๐ŸŒ Internationalization

Multi-language support with community translations and automatic caching.

Supported Languages:

Translation status

How It Works:

  • Automatically detects Jellyfin user profile language
  • Fetches latest translations from GitHub on first load
  • Caches translations for 24 hours in localStorage
  • Per-version caching with automatic cleanup
  • Falls back to bundled translations if offline
  • Language code normalization (including region variants)

Translation Cache Refresh:

  • Server-side scheduled task runs on plugin startup
  • Automatically signals all clients to clear cached translations
  • Ensures fresh translations after plugin updates
  • No manual intervention required

Manual Cache Refresh:

  1. Open Enhanced panel (press ?)
  2. Go to Settings tab
  3. Find translation settings
  4. Click "Refresh Translation Cache" button

Contributing Translations:

See the Contributing Translations section for details.