A Tinder-style app for managing your Plex media library. Swipe through movies and TV shows to keep, block, or clean up your collection.
- Swipe gestures — right to keep, left to block (deletes files, prevents re-addition), down for super keep
- Cast display — top 3 actors from TMDb on every movie, show, and discover card
- Plex watched status — see which movies/shows you've already watched in Plex
- Trailer & IMDb links — tap to watch trailers on YouTube or view on IMDb
- Search & filter — search by title, filter by genre, year range, and minimum rating
- Swipe statistics — see totals for kept, blocked, super kept, skipped across movies, shows, and discover
- Calendar view — upcoming releases from Radarr and Sonarr with monitoring/downloaded status
- Plex integration — refresh libraries from your phone
- Radarr & Sonarr — manage movies and TV shows
- Discover — find new content via TMDb; Dislike adds movies and shows to the matching Radarr/Sonarr Import List Exclusions, while Skip hides without excluding
- Quality settings — configure quality profiles and root folders
- Undo protection — 10-second window before destructive actions
- History — track all decisions; Show Again removes a Discover Import List Exclusion before restoring the item
- Web GUI — desktop interface with card and grid views, all features mirrored
1.3.4 requires an API token on configured servers. Read Security and upgrade notes before updating. Set an explicit private BACKEND_HOST, use protected transport, run one backend worker, and connect each client with the existing token. Web login is session-scoped, not persistent across all tabs/browser restarts.
git clone https://github.com/PIR8-Software/tv-tenderr.git
cd tv-tenderr
./setup.sh
# Edit .env with your credentials
.venv/bin/python backend.py- User Guide — complete usage instructions for app and web GUI
- Setup Guide — installation and configuration
- Card-based interface with swipe gestures
- Movies, Shows, and Discover modes
- Settings for all service connections
- Dark theme matching Radarr/Sonarr aesthetic
- Card view (swipe) and Grid view (browse)
- Full feature parity with Android app
tv-tenderr/
├── backend.py # FastAPI server
├── android/ # Android app (Kotlin)
├── web/ # Web GUI (HTML/CSS/JS)
├── data/ # Local data storage
├── .env.example # Environment template
└── setup.sh # Installation script
GET /api/movies— list all moviesGET /api/shows— list all showsPOST /api/movies/{id}/keep— keep a moviePOST /api/movies/{id}/block— block a movie (deletes files, adds import list exclusion — prevents re-addition from lists)GET /api/discover/movies— discover new moviesGET /api/discover/shows— discover new showsPOST /api/discover/{tmdbId}/dislike— hide a Discover item and add its Radarr/Sonarr Import List ExclusionPOST /api/discover/{tmdbId}/hide— skip/hide a Discover item without adding an exclusionPOST /api/discover/{tmdbId}/unhide— Show Again: remove its Import List Exclusion, then restore it to DiscoverPOST /api/plex/refresh— refresh Plex librariesGET /api/config— get configurationPOST /api/config— update configuration
- Python 3.10+
- Radarr instance with API key
- Sonarr instance with API key
- Plex server with token
- TMDb API key (free at themoviedb.org)
GNU Affero General Public License v3.0
This software is free and open source under the AGPL-3.0 license. You are free to use, modify, and distribute it. If you run this software as a network service, you must provide the source code to your users.





