Home
Softono
jellyfin-helper

jellyfin-helper

Open source C#
23
Stars
0
Forks
1
Issues
0
Watchers
1 week
Last Commit

About jellyfin-helper

🤖 Jellyfin plugin with ML-powered per-user recommendations, watch activity insights, automated media cleanup (trickplay, subtitles, symlinks, .strm), Overseerr/Jellyseerr request management, codec/health statistics, growth trends, trash bin, backup/restore & multi-instance Radarr/Sonarr. 8-tab dashboard, 8 languages.

Platforms

Web Self-hosted Windows

Languages

C#

Jellyfin Helper

Jellyfin Helper Logo

A Jellyfin plugin that provides automated cleanup tasks, media library statistics, ML-powered smart recommendations, user activity insights, health checks, and Arr stack integration - all from a single, multi-tab dashboard.

GitHub Release Tests .NET Jellyfin License Languages Live Demo

Ko-Fi

Live Demo

Try the interactive demo →

Explore the full 8-tab dashboard with realistic sample data - no Jellyfin server required.


Features

Feature Description
8-Tab Dashboard Overview, Codecs, Health, Trends, Discover, Settings, Arr, Logs - all accessible directly from the Jellyfin sidebar as a single plugin page
Trickplay Cleaner Automatically finds and removes orphaned .trickplay folders whose corresponding media file no longer exists. Frees disk space from stale image extraction data
Empty Folder Cleaner Deletes now-empty media folders that no longer contain video files (e.g. after manual cleanup). Skips known placeholder folders (Radarr/Sonarr), metadata-only folders, and music libraries
Subtitle Cleaner Detects and removes orphaned .srt/.ass/.vtt subtitle files that no longer have a matching video. Uses ISO 639 language-code detection to avoid false positives
Link Repair Scans for broken .strm files and broken symlinks, then automatically repairs them by locating the renamed or moved target media file in the parent directory of the original target
Seerr Cleanup Connects to your Overseerr/Jellyseerr/Seerr instance and removes media requests whose underlying files are no longer available. Keeps your request list clean and in sync with actual media
Seerr Discovery Personalized external content discovery via your Seerr instance. Scores TMDb candidates per user using the ensemble ML strategy, suggests not-yet-in-library media with one-click request submission, parental rating enforcement, and automatic exclusion of items already in Radarr/Sonarr. It can optionally be displayed on the Jellyfin home screen as a Custom Tab when used with the Custom Tab and File Transformation plugins
Statistics & Trends Per-library disk usage, video codec, audio codec, resolution, dynamic range, and container format analysis - extracted from Jellyfin MediaStream metadata.
Growth Timeline Cumulative media growth visualization with daily/weekly/monthly/quarterly/yearly bucketing. Hover any point to see the exact file count and size delta since that date
Library Insights Top-10 largest media directories and recently added/changed items (last 30 days) per library, with per-library size breakdown. Displayed in the Trends tab with 15-min in-memory cache
Health Checks Detects videos without subtitles (including embedded streams), missing artwork, missing NFO files, and orphaned metadata directories
Arr Integration Compare your Jellyfin library with up to 3 Radarr + 3 Sonarr instances to find items only in Arr, only in Jellyfin, or in both
Backup & Restore Export/import the full plugin state (configuration, growth timeline, baseline data, Arr instances) as a validated JSON file with XSS/injection protection
Log Viewer Plugin-specific logs with level/source filtering, auto-refresh (10s), and download as .log file. Isolated from Jellyfin's main log to reduce noise
Trash / Recycle Bin Cleanup tasks move files to a timestamped trash folder instead of permanently deleting them. Configurable retention period auto-purges expired items
8 Languages Full UI translations: English, German, French, Spanish, Portuguese, Chinese, Turkish, Swedish
Smart Recommendations ML-powered per-user recommendations using ensemble scoring (heuristic + learned + neural MLP blend). Analyses watch history to build genre, actor, director and studio affinity profiles, then scores unwatched candidates using 31 features - children with restricted profiles only see age-appropriate recommendations. Incremental training runs only when TaskMode=Activate, with ranking-based evaluation and pre-computed collaborative filtering pipeline - pure C# implementation with zero external ML dependencies
User Activity Per-item and per-user watch activity tracking with play count, completion percentage, favorites detection, and genre distribution - displayed in the new Discover tab
Security 5-min statistics cache, 30s rate limiting, path traversal protection, XSS escaping, backup payload validation with size limits and injection detection, parental rating enforcement in recommendations
Unsaved Settings Alert Warns before navigating away when the settings form has unsaved changes (dirty-tracking via snapshot comparison), with Discard / Save & Continue / Cancel options

All tasks default to Dry Run mode - nothing is deleted until you explicitly activate them.

Compatibility: Jellyfin 10.11.10+ · .NET 9.0


Installation

From Repository (Recommended)

  1. In Jellyfin, go to Dashboard → Plugins → Repositories
  2. Add this repository URL:
    https://raw.githubusercontent.com/JellyPlugins/jellyfin-helper/main/manifest.json
  3. Go to Catalog and install Jellyfin Helper
  4. Restart Jellyfin

Manual Installation

  1. Download the latest release package from Releases
  2. Extract the package and copy all files into your Jellyfin plugin directory (e.g. /config/plugins/JellyfinHelper/)
  3. Restart Jellyfin

Quick Start

  1. Open Jellyfin Helper from the sidebar - the last scan loads automatically
  2. Go to the Settings tab to configure tasks, libraries, trash, and language
  3. Review Dry Run results in the Jellyfin scheduled tasks log
  4. Switch tasks to Activate when ready
  5. The Helper Cleanup scheduled task runs weekly (Sunday 3:00 AM) or trigger it manually

Documentation

Resource Description
CONTRIBUTING.md Architecture, design patterns, build system, API reference, configuration, testing
CHANGELOG.md Detailed version history
Live Demo Interactive dashboard demo

Origin

Based on jellyfin-trickplay-folder-cleaner by @Noir1992, inspired by this community script. This fork evolved into an independent project with significant additions.

License

GNU General Public License v3.0 - see LICENSE.

Acknowledgements

Who Contribution
@Noir1992 Original plugin author
@K-Money Initial testing
@n00bcodr Jellyfin-Enhanced – inspiration for plugin features