Open-source web app for users to request movies and TV shows, with approval workflows for Jellyfin, Plex, and Emby libraries.
jon4hz/jellysweep
Smart cleanup tool for Jellyfin that marks and removes old, unwatched movies and TV shows based on viewing stats and user requests.
- Stars
- 260
- Forks
- 22
- Open issues
- 45
- Last commit
- 2 days ago
What is it?
Jellysweep scans your Jellyfin library and, using filters you define per library, decides which movies and TV shows are no longer needed. It checks Jellyseerr for requests and Jellystat or Streamystats for viewing history, and it can protect favorites and items used by Tunarr channels. Eligible items are marked for deletion by adding tags in Sonarr or Radarr, so the process stays visible in tools you already use.
Users can ask to keep specific content through the built-in web interface, and admins approve or decline those requests. Affected users can be notified by email, ntfy, or web push. After a configurable grace period the items are deleted. Dry-run mode is enabled by default, so you can review what would be marked before any deletion happens.
Cleanup can be tuned for TV series: delete whole series, keep the first N episodes, or keep the first N seasons. Disk usage thresholds shorten the grace period when storage runs low. Jellysweep also creates Jellyfin collections listing media scheduled for removal.
Key features
- 01Filters per library based on content age, release date, last stream time, and size
- 02Tag-based control through Sonarr and Radarr
- 03Disk usage thresholds that shorten the deletion grace period
- 04Selective TV cleanup modes that keep the first N episodes or seasons
- 05User keep requests with admin approval and notifications by email, ntfy, or web push
- 06Jellyfin authentication or OIDC/SSO login for the web interface
Use cases
- Freeing storage on a home Jellyfin server by removing content nobody has watched for months
- Keeping a Jellyfin library tidy while letting users request exceptions through the web interface
- Trimming long TV series down to their early seasons or episodes to save space
Quick start
- 1
Create a compose.yml file with the Jellysweep service definition
- 2
Create config.yml before starting the container
vim ./config.yml - 3
Start the service with Docker Compose
docker compose up -d
Things to know
- Requires access to Sonarr, Radarr, Jellystat or Streamystats, and Jellyseerr.
- Always test with dry-run mode first, since it deletes media files.
In collections
Topics
FAQ
- What is jellysweep?
- Smart cleanup tool for Jellyfin that marks and removes old, unwatched movies and TV shows based on viewing stats and user requests. Jellysweep scans your Jellyfin library and, using filters you define per library, decides which movies and TV shows are no longer needed. It checks Jellyseerr for requests and Jellystat or Streamystats for viewing history, and it can protect favorites and items used by Tunarr channels. Eligible items are marked for deletion by adding tags in Sonarr or Radarr, so the process stays visible in tools you already use.
- Is jellysweep free to use? What license does it have?
- jellysweep is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
- Is jellysweep still maintained?
- Actively maintained. The last commit to jellysweep was on Nov 6, 2026.
- What can I use jellysweep for?
- Freeing storage on a home Jellyfin server by removing content nobody has watched for months Keeping a Jellyfin library tidy while letting users request exceptions through the web interface Trimming long TV series down to their early seasons or episodes to save space
- How do I install jellysweep?
- Create a compose.yml file with the Jellysweep service definition Create config.yml before starting the container: vim ./config.yml Start the service with Docker Compose: docker compose up -d
- Where can I get jellysweep?
- The source code and installation instructions are on GitHub: https://github.com/jon4hz/jellysweep
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Ombi is a self-hosted media request tool that lets users ask for movies, music and TV shows and syncs with Plex, Emby and Jellyfin.
A library maintenance tool for Plex, Jellyfin and Emby that uses rules to collect unwatched or unrequested media and remove it after a grace period.
Self-hosted web app to trim video, add subtitles, and export clips or GIFs from Plex, Jellyfin, or local files.
A download manager for the Servarr ecosystem that automatically cleans up stalled, blocked, and malicious torrents in Sonarr, Radarr, and similar apps.
A companion app for Sonarr and Radarr that automatically finds, downloads and upgrades subtitles for your TV shows and movies.