Jellyfin-Roulette

October 25, 2025 ยท View on GitHub

plugin banner

Version Jellyfin .NET License

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

  1. Open Jellyfin Dashboard โ†’ Plugins โ†’ Repositories
  2. Click Add and enter:
    • Repository Name: Jellyfin-Roulette
    • Repository URL: https://raw.githubusercontent.com/ztffn/Jellyfin-Roulette/main/manifest.json
  3. Go to Catalog tab
  4. Find Jellyfin-Roulette and click Install
  5. Restart Jellyfin server
  6. Hard refresh your browser: Ctrl + Shift + R (Windows/Linux) or Cmd + Shift + R (Mac)

Option 2: Manual Installation

  1. Download Jellyfin.Plugin.Roulette.dll from Releases
  2. Create plugin directory:
    mkdir -p /path/to/jellyfin/config/plugins/Jellyfin-Roulette_1.0.2.0/
    
  3. Copy the DLL to the directory
  4. Restart Jellyfin
  5. Hard refresh your browser

Need help? See the Troubleshooting guide. Or open an Issue

๐ŸŽฐ Usage

  1. Navigate to any playlist in Jellyfin
  2. A modal appears with two buttons:
    • ๐Ÿฟ Surprise Me! - Triggers slot animation and selects random unwatched item
    • ๐ŸŽž๏ธ Show List - Opens normal playlist view
  3. Click "Surprise Me!" to watch the animation
  4. 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