Jellyfin-Roulette
October 25, 2025 ยท View on GitHub
![]()
A Jellyfin plugin that plays a random item from your playlists.
Click a playlist, hit "Surprise Me," and watch as movie posters spin past before landing on your next unwatched item!
๐ฆ Features
- Slot machine animation - 3-second spin with dynamic speed and blur effects
- Smart filtering - Only shows unwatched items from your playlists
- Audio feedback - Synthesized tick sounds during animation (no external files)
- Confetti celebration - Visual effects when selection completes
- Dynamic resize - Container morphs from landscape (playlist) to portrait (movie poster)
- Keyboard navigation - Full support for Tab, Enter, Escape, and arrow keys (โ/โ for remote controls)
- Configuration panel - Customize animation timing, button text, audio volume, and more from Jellyfin dashboard
- Responsive design - Works on desktop and mobile
- Non-invasive - JavaScript injection pattern, doesn't modify Jellyfin core files
๐ฅ Preview
https://github.com/user-attachments/assets/7842878e-5216-4fef-ade5-87691595680a
๐ ๏ธ Installation
Option 1: Install via Plugin Repository (Recommended)
- Open Jellyfin Dashboard โ Plugins โ Repositories
- Click Add and enter:
- Repository Name:
Jellyfin-Roulette - Repository URL:
https://raw.githubusercontent.com/ztffn/Jellyfin-Roulette/main/manifest.json
- Repository Name:
- Go to Catalog tab
- Find Jellyfin-Roulette and click Install
- Restart Jellyfin server
- Hard refresh your browser:
Ctrl + Shift + R(Windows/Linux) orCmd + Shift + R(Mac)
Option 2: Manual Installation
- Download
Jellyfin.Plugin.Roulette.dllfrom Releases - Create plugin directory:
mkdir -p /path/to/jellyfin/config/plugins/Jellyfin-Roulette_1.0.2.0/ - Copy the DLL to the directory
- Restart Jellyfin
- Hard refresh your browser
Need help? See the Troubleshooting guide. Or open an Issue
๐ฐ Usage
- Navigate to any playlist in Jellyfin
- A modal appears with two buttons:
- ๐ฟ Surprise Me! - Triggers slot animation and selects random unwatched item
- ๐๏ธ Show List - Opens normal playlist view
- Click "Surprise Me!" to watch the animation
- After selection:
- ๐ฌ Play it! - Navigate to the selected item
- ๐ฒ Reroll - Try again for a different selection
- ๐๏ธ Show List - View the full playlist
โ๏ธ Configuration
Access configuration from Dashboard โ Plugins โ Roulette:
- Customize animation timing and effects
- Change button text (localization support)
- Adjust audio volume
- Configure confetti count
- Enable/disable focus trap
Tip: Enable browser sound to hear the satisfying audio ticks!
๐ Compatibility
- Jellyfin: 10.8.0 and above. (Including 10.11)
- Platform: Docker (Linux), Native Linux, Windows, macOS
- Browsers: Chrome, Firefox, Safari, Edge
- Mobile: Responsive design for all screen sizes
๐ License
MIT License - See LICENSE file for details
๐ Acknowledgments
Built with ๐ฒ for the Jellyfin Community using the jellyfin-plugin-template and inspired by jellyfin-plugin-custom-javascript injection pattern.
Repository: https://github.com/ztffn/Jellyfin-Roulette