Create smart, rule-based playlists and collections in Jellyfin — for movies, shows, music, or anything your library holds. A single genre rule takes seconds; stack rules into groups and you can express almost anything. Either way, they keep themselves up to date. https://jellyfin-smartlists-plugin.dinsten.se
  • C# 75.1%
  • JavaScript 20.6%
  • HTML 4.1%
  • CSS 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Johan Yourstone e13de5aa19 fix: drop MaxHeight from the Resolution prefilter (#546)
On Jellyfin 12, MaxHeight is version-aware: an item is excluded when any
of its alternate versions is taller than the bound. The per-item rule
reads the primary version only, so a 1080p primary with a 2160p
alternate was dropped from Resolution = 1080p lists before evaluation.

Push down MinHeight only (version-aware MinHeight only widens the
candidate set). LessThan/LessThanOrEqual now stay per-item.

Fixes #546

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 22:23:59 +02:00
.agents/skills Drop the net9.0 (Jellyfin 10.11) target from main 2026-09-12 00:18:33 +02:00
.claude/skills Drop the net9.0 (Jellyfin 10.11) target from main 2026-09-12 00:18:33 +02:00
.github fix: replace bundled ImageSharp with Jellyfin's SkiaSharp for covers 2026-10-11 21:52:42 +02:00
dev fix: address AI review feedback (1 finding) 2026-09-12 15:03:03 +02:00
docs fix: replace bundled ImageSharp with Jellyfin's SkiaSharp for covers 2026-10-11 21:52:42 +02:00
images Update README and images for SmartLists plugin, enhancing feature descriptions and updating configuration visuals 2026-01-24 14:18:43 +01:00
Jellyfin.Plugin.SmartLists fix: drop MaxHeight from the Resolution prefilter (#546) 2026-10-11 22:23:59 +02:00
Jellyfin.Plugin.SmartLists.Tests fix: drop MaxHeight from the Resolution prefilter (#546) 2026-10-11 22:23:59 +02:00
.cctop-ignore Add .cctop-ignore file to exclude specific files from version control 2026-07-07 11:48:58 +02:00
.gitignore Document the test suite in the agent docs 2026-09-10 07:48:51 +02:00
AGENTS.md fix: replace bundled ImageSharp with Jellyfin's SkiaSharp for covers 2026-10-11 21:52:42 +02:00
CLAUDE.md fix: replace bundled ImageSharp with Jellyfin's SkiaSharp for covers 2026-10-11 21:52:42 +02:00
CONTRIBUTING.md 10.11.10.0 release (#209) 2025-11-24 07:38:16 +01:00
Jellyfin.Plugin.SmartLists.sln fix: correct user-specific date equality and bound regex matching 2026-08-13 19:43:04 +02:00
LICENSE Initial commit: Jellyfin Smart Playlist Plugin 2025-06-27 16:42:06 +02:00
README.md Drop the net9.0 (Jellyfin 10.11) target from main 2026-09-12 00:18:33 +02:00

Jellyfin SmartLists Plugin

Logo
Total GitHub Downloads GitHub Issues or Pull Requests Build and Release Jellyfin Version

Create smart, rule-based playlists and collections in Jellyfin — for movies, shows, music, or anything your library holds.

A single genre rule takes seconds; stack rules into groups and you can express almost anything. Either way, they keep themselves up to date. The plugin features a modern web-based interface for easy list management - no technical knowledge required.

Requires Jellyfin 12. Jellyfin 10.11 servers stay on v12.0.1.0, the last release built for them.

✨ Features

  • Modern Web Interface - A full-featured UI to create, manage and view status for smart playlists and collections
  • External Lists - Populate lists from MDBList, IMDb, Letterboxd, Trakt, TMDB, ListenBrainz, and Scrob — trending charts, watchlists, top lists, music playlists, and more
  • Flexible Rules - Build simple or complex rules with an intuitive builder
  • Automatic Updates - Playlists and collections refresh automatically on library updates, playback status changes, or via scheduled tasks
  • Refresh Status & Statistics - Monitor ongoing refresh operations with real-time progress, view refresh history, and track statistics for all your lists
  • Media Types - Works with all Jellyfin media types
  • End User Config Page - Let regular users manage their own smart lists from the home screen (requires Plugin Pages and File Transformation plugins)
  • Templates - Start from built-in templates - TV channel round-robin, Continue Watching, external-list imports, album roulette, and more
  • And more - View the documentation to see all features

🚀 Quick Start

  1. Install the Plugin: See installation instructions
  2. Access Plugin Settings: Click on "SmartLists" in the main sidebar under "Plugins" (or via Dashboard → My Plugins → SmartLists)
  3. Create Your First List: Use the "Create List" tab
  4. Example: Create a playlist or collection for "Unwatched Action Movies" with:
    • Media type: "Movie"
    • Genre contains "Action"
    • Is Played = False

⚙️ Configuration Interface

SmartLists features a modern web-based configuration interface with four main tabs:

📖 Documentation

View Full Documentation →

Complete guide with installation instructions, detailed field descriptions, operators, examples, advanced configuration, and more!

💬 Support & Feedback

  • Bug Reports & Feature Requests: Please use the Issues tab to report bugs or suggest new features.
  • Community Support & General Help: For support questions or general help, please use Discussions.

📦 How to Install

  1. Add this repository URL to your Jellyfin plugin catalog:
https://raw.githubusercontent.com/jyourstone/jellyfin-plugin-manifest/main/manifest.json
  1. Install the plugin
  2. Restart Jellyfin

Complete installation instructions can be found in the documentation.

🙏 Credits

This project is based on the original SmartPlaylist plugin created by ankenyr. You can find the original repository here. All credit for the foundational work and the core idea goes to him.

⚠️ Disclaimer

Much of the recent work on this project has been AI-assisted, but the repository, releases, and documentation are reviewed and maintained by the project owner. If you run into a bug or spot something inaccurate, please open an issue or discussion.