An all-in-one JavaScript toolkit for Jellyfin, featuring a customizable Media Slider builder, music player, Netflix-style pause screen, Netflix-like HoverVideo, quality labels on cards, DiceBear avatar generator, and a sleek notification panel.
- 🖼️ Screenshots
- ✨ Features
- 🙏 Acknowledgment to BobHasNoSoul
- ⚙️ Installation
- 🎵 Synchronized Lyrics Script
- 🎬 Trailer Scripts
- 📄 License
-
User-specific slider lists (per-profile row configuration)
-
Automatic slider list refresh (keeps rows up to date without manual reloads)
-
Customizable Jellyfin API integration for sliders (endpoint/behavior tuning)
-
Manual positioning controls for better theme compatibility
-
GMMP Music Player
-
Pause Screen + Smart Pause, including Netflix-style age rating badges
-
Avatar Generator (DiceBear-powered)
-
600+ pre-made avatars with a built-in avatar picker
-
Netflix-style “Who’s Watching?” profile chooser
-
Global Quality Badges across Jellyfin (consistent quality labels)
-
Netflix-style hover trailer module (or a lighter popover alternative)
-
Newly Added Content & Notifications module
-
Studio Hubs (Disney+ style)
-
Enhanced Home Screen cards
-
Trailer & theme video downloader / NFO helper (trailers sourced from TMDB)
-
Lyrics downloader module
-
Netflix-style details overlay used by the enhanced home cards
-
Advanced Settings Panel to enable/disable and manage all modules in one place
The concept of the JMS slider, as well as its integration into Jellyfin’s index.html, was entirely conceived by BobHasNoSoul. The JMS concept is entirely built on that structure. I would like to thank him for his contribution: https://github.com/BobHasNoSoul
- Log in to your Jellyfin admin dashboard.
- Go to the Plugins section.
- Open the Catalog tab.
- Add a new repository with this URL:
https://raw.githubusercontent.com/G-grbz/Jellyfin-MonWUI-Plugin/main/manifest.json
- Install JMS-Fusion.
- Restart Jellyfin.
- Refresh homepage with Ctrl + F5.
- Extract the archive
- Run
install.batas admin - Clear browser cookies
Uninstall: run uninstall.bat as admin.
git clone https://github.com/G-grbz/Jellyfin-MonWUI-Plugin
cd Jellyfin-MonWUI-Plugin/Resources/slider/Run installer:
sudo chmod +x install.sh && sudo ./install.shClear browser cookies.
listUpdate updates lists at intervals.
Edit .env for configuration.
itemLimit:Max item countgarantiLimit:Minimum guaranteed per content typelistLimit:Max stored old listslistRefresh:Refresh interval (ms)listcustomQueryString:Custom Jellyfin API parameters
sudo chmod -R a+rw /usr/share/jellyfin/web/slider/list && \
sudo chmod -R a+rw /usr/share/jellyfin/web/slider/listUpdateInstall deps:
cd /usr/share/jellyfin/web/slider/listUpdate && npm install dotenv node-fetchRun:
node updateList.mjsUninstall:
sudo chmod +x /usr/share/jellyfin/web/slider/uninstall.sh && sudo sh /usr/share/jellyfin/web/slider/uninstall.shA standalone script to fetch synchronized lyrics from lrclib.net.
Requirements: curl, jq, find
Filename format: 'artist' - 'track title'
Install:
curl -fsSL -o trailers.sh "https://raw.githubusercontent.com/G-grbz/Jellyfin-MonWUI-Plugin/main/Resources/slider/lrclib.sh"
chmod +x lrclib.shUsage:
sh lrclib.sh /Path/To/MusicOverwrite:
sh lrclib.sh /Path/To/Music --overwriteTwo scripts:
trailers.sh→ downloads MP4 trailerstrailersurl.sh→ adds trailer URL into NFO files
Both use TMDb.
- Use
trailers.shfor offline MP4 trailers - Use
trailersurl.shfor online streaming trailers (no downloads)
- Movies + Series support
- Multilanguage trailer lookup
- Metadata refresh
- Summary report
curl,jq- plus
yt-dlp+ optionalffprobefortrailers.sh
(Commands for major distros included in original text.)
curl -fsSL -o trailers.sh "https://raw.githubusercontent.com/G-grbz/Jellyfin-MonWUI-Plugin/main/Resources/slider/trailers.sh"
curl -fsSL -o trailersurl.sh "https://raw.githubusercontent.com/G-grbz/Jellyfin-MonWUI-Plugin/main/Resources/slider/trailersurl.sh"
chmod +x trailers.sh trailersurl.sh(Full table retained, only English content preserved.)
Download trailers:
JF_BASE="http://server:8096" \
JF_API_KEY="KEY" \
TMDB_API_KEY="TMDB" \
COOKIES_BROWSER=chrome \
MIN_FREE_MB=2048 \
ENABLE_THEME_LINK=1 \
OVERWRITE_POLICY=if-better \
./trailers.shAdd only URL:
JF_BASE="http://server:8096" \
JF_API_KEY="KEY" \
TMDB_API_KEY="TMDB" \
./trailersurl.sh(Service + timer examples retained.)
Copyright (c) 2026 G-grbz
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This software is provided “as is”, without warranty of any kind. Use it at your own risk.
















