๐ Jellysleep
November 23, 2025 ยท View on GitHub
Sleep timer plugin for Jellyfin that automatically stops playback after a specified time or episodes.
โจ Features
- Timer-based Sleep: Set sleep timers for 15 minutes, 30 minutes, 1 hour, or 2 hours
- Episode-based Sleep: Stop playback after the current episode ends
- Per-user, Per-device: Each user session can have its own independent sleep timer
- Auto-pause: Automatically pauses playback when the timer expires
- Web Interface: Easy-to-use sleep timer controls directly in the Jellyfin web player
๐ Table of Contents
๐ฑ Supported Devices
This plugin works by injecting custom JavaScript into Jellyfin's web interface. It is compatible with:
- โ Jellyfin Web UI (browser access)
- โ Jellyfin Android App (uses embedded web UI)
- โ Jellyfin iOS App (uses embedded web UI)
- โ Jellyfin Desktop Apps (Flatpak, etc. - uses embedded web UI)
- โณ๏ธ Streamyfin (work in progress)
- โ Android TV App (uses native interface, cannot be modified)
- โ Other native apps that don't use the web interface
๐ฆ Installation
Requirements
This plugin requires the following plugins to be installed as well:
- Jellyfin-JavaScript-Injector
- jellyfin-plugin-file-transformation (optional, but recommended)
Install Plugin
- Open your Jellyfin server's admin dashboard
- Navigate to Plugins โ Catalog
- Click the Add Repository button
- Add this repository URL:
https://raw.githubusercontent.com/jon4hz/jellyfin-plugin-jellysleep/main/manifest.json - Find Jellysleep in the plugin catalog and install it
- Restart your Jellyfin server
- Enable the plugin in Plugins โ My Plugins
๐ Usage
Once installed and enabled, you'll see a sleep timer button (moon icon) in the Jellyfin web player controls. Click it to:
- Set a duration-based timer (15min, 30min, 1h, 2h)
- Set an episode-based timer (stops after current episode)
- Cancel active timers
๐ ๏ธ Development
Building
dotnet build
Packaging
make package
The plugin follows Jellyfin's plugin architecture and integrates with the session management system to track playback state and automatically pause content when timers expire.
๐ License
GPLv3