Important
Blockbusterr v2.0.1 fixes connection setup and saving settings in v2. latest follows stable releases; latest-beta follows prereleases. Read the documentation and release notes. Upgrading from v1? Back up your complete data directory and follow the upgrade guide.
Automated media discovery with rule-based decision making for self-hosted libraries.
Blockbusterr follows trends, lists, and watchlists from the providers you already use. It evaluates every movie or show against your rules, ranks the candidates, and sends the winners to Radarr, Sonarr, Jellyseerr, or Seerr.
Rather than importing everything from a trending list or watchlist, Blockbusterr evaluates every candidate using reusable rules, scoring, repeat handling, delivery limits, and title exceptions before deciding whether it belongs in your library. Every decision is recorded so you can see exactly why a title was accepted, skipped, or rejected.
New here? Start with the 60-second quick start or browse the complete documentation.
Blockbusterr is designed to automate discovery without turning your library into a firehose. Every candidate passes through the same repeatable decision process before anything is delivered.
Blockbusterr is the discovery and decision layer in a homelab media stack. It does not replace your request manager, *arr applications, download client, or media server.
Instead, it sits between discovery and delivery, deciding which titles should reach the rest of your stack.
flowchart LR
A[TMDB / Simkl / Trakt / MDBList / Letterboxd] --> B[Blockbusterr]
B --> C[Rules and scoring]
C --> D[Radarr / Sonarr]
C --> E[Jellyseerr / Seerr]
E --> D
D --> F[Download client]
F --> G[Media server, such as Plex / Jellyfin / Emby]
One discovery provider is enough. Mix providers when you want different jobs to serve different purposes, such as trending movies, a personal watchlist, family-safe shows, or a tightly curated public list.
Pair Blockbusterr with Maintainerr to create a complete library lifecycle. Blockbusterr discovers suitable content; Maintainerr can remove or unmonitor stale and unwatched media. Repeat handling and title exceptions prevent removed titles from immediately returning.
- Preview-first jobs: inspect candidates and rule decisions before enabling delivery.
- Reusable rules: assign a movie or show policy to many jobs, or create a job-specific copy.
- Lists and watchlists: follow Trakt, TMDB, MDBList, and experimental public Letterboxd sources.
- Recipes and custom jobs: start from a safe built-in recipe or configure the complete discovery flow yourself.
- Decision history: every title has an outcome, reason, score, source, and Job Run.
- Ranked selection: let participating jobs compete for a shared number of movie or show slots.
- Delivery safeguards: combine delivery budgets, previews, repeat handling, and title exceptions.
- Two delivery paths: add directly to Radarr and Sonarr, or request through Jellyseerr or Seerr.
- Portable configuration: export shareable jobs and rules separately from credentialed backups.
- Single-container deployment: compiled frontend assets, the API, and SQLite are bundled together in one lightweight Docker image with no required external database.
| Role | Services | Notes |
|---|---|---|
| Discovery | TMDB, Simkl, Trakt | Trending, popular, anticipated, history-based jobs, lists, and watchlists vary by provider |
| Curated lists | MDBList | Public lists and the API-key owner's watchlist; also provides a bridge for imported IMDb and Letterboxd lists |
| Experimental lists | Letterboxd | Public lists only; direct scraping is opt-in and may stop working if Letterboxd changes its site |
| Direct delivery | Radarr, Sonarr | Adds movies and shows using the selected quality profile, root folder, monitoring behavior, and other delivery settings |
| Request delivery | Jellyseerr and Seerr | Submits requests through the configured application user or optional request credentials |
| Downstream playback | Plex, Jellyfin, Emby, and other media servers | Compatible with any media server using a Radarr/Sonarr-managed library; Blockbusterr does not communicate with the media server directly |
Trakt is optional. Personal Trakt and TMDB watchlists require account authorization; public discovery only needs the provider's application credentials.
Blockbusterr is media-server agnostic. Its delivery boundary is Radarr, Sonarr, Jellyseerr, or Seerr; your existing media stack handles downloading and playback after that.
Want support for another discovery provider, list source, direct delivery target, or request manager? Feature requests and pull requests are always welcome!
docker volume create blockbusterr-data
docker run -d \
--name blockbusterr \
--restart unless-stopped \
-p 9090:9090 \
-v blockbusterr-data:/app/data \
ghcr.io/mahcks/blockbusterr:v2.0.1Open http://localhost:9090, connect one discovery provider and one delivery target, then create and preview a job.
Blockbusterr has no login requirement by default. Keep it on a trusted LAN, behind an authenticated reverse proxy or VPN, or set BLOCKBUSTERR_AUTH_TOKEN to a random value of at least 32 characters. The username is blockbusterr.
Read the quick start · Installation options · Unraid, TrueNAS SCALE, and Portainer · Upgrade from v1
Each job owns its source, media type, schedule, delivery behavior, and assigned rules. Built-in recipes are created disabled so they can be reviewed and previewed first.
Movie and show rule sets can require or block countries, languages, genres, keywords, networks, years, runtimes, ratings, votes, and provider IDs. Title exceptions apply across jobs.
Every automated decision is recorded in Activity Entries, including the title, source, outcome, score, rank, timestamp, and the reason behind the decision.
Settings keeps provider health, delivery targets, scoring, ranked selection, repeat handling, delivery limits, backup, and recovery in one place.
- Fetch candidates from the job's selected source.
- Normalize provider data to a movie or show identity.
- Apply the assigned rules and universal title exceptions.
- Skip titles already present or blocked by repeat handling.
- Score and rank the remaining candidates when scoring is enabled.
- Enforce job, ranked-selection, and rolling delivery limits.
- Add to Radarr or Sonarr, or submit a Jellyseerr or Seerr request.
- Record the complete decision flow in Activity Entries and Job Runs.
Removing an item from a source list never deletes media that Blockbusterr already delivered.
- Jobs and recipes
- Rules and title exceptions
- Integration modes
- Configuration reference
- Real-world examples
- API reference
git clone https://github.com/Mahcks/blockbusterr.git
cd blockbusterr
make devContributions are welcome. Please open an issue or pull request, or join the Discord community.
MIT, made for the self-hosted media community.




