Blockbusterr

Blockbusterr

Docker app from Mahcks' Repository

Overview

Blockbusterr automates content discovery for self-hosted media libraries. It discovers movies and shows from supported providers, applies configurable filters and scoring, then sends accepted titles to Radarr, Sonarr, Jellyseerr, or Seerr.

Blockbusterr

[!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.

GitHub release Container Documentation License Discord

A completed Blockbusterr job run showing its decision flow and media results

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.

Where it fits

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.

Features

  • 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.

Integrations and compatibility

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!

Quick start

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.1

Open 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

See it in use

Jobs

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.

Configured Blockbusterr discovery jobs

Rules

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.

Reusable movie rules in Blockbusterr

Activity Entries

Every automated decision is recorded in Activity Entries, including the title, source, outcome, score, rank, timestamp, and the reason behind the decision.

Blockbusterr Activity Entries with posters and outcomes

Settings

Settings keeps provider health, delivery targets, scoring, ranked selection, repeat handling, delivery limits, backup, and recovery in one place.

Blockbusterr connection settings and system readiness

Job lifecycle

  1. Fetch candidates from the job's selected source.
  2. Normalize provider data to a movie or show identity.
  3. Apply the assigned rules and universal title exceptions.
  4. Skip titles already present or blocked by repeat handling.
  5. Score and rank the remaining candidates when scoring is enabled.
  6. Enforce job, ranked-selection, and rolling delivery limits.
  7. Add to Radarr or Sonarr, or submit a Jellyseerr or Seerr request.
  8. 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.

Documentation

Development

git clone https://github.com/Mahcks/blockbusterr.git
cd blockbusterr
make dev

Contributions are welcome. Please open an issue or pull request, or join the Discord community.

License

MIT, made for the self-hosted media community.

Install Blockbusterr on Unraid in a few clicks.

Find Blockbusterr in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Blockbusterr Review the template variables and paths Click Install

Requirements

Keep the WebUI on a trusted LAN, behind a VPN, or behind an authenticated HTTPS reverse proxy. Leave the custom container user, PUID, and PGID unset so a future v2 upgrade can repair legacy data ownership before dropping privileges.

Related apps

Details

Repository
ghcr.io/mahcks/blockbusterr:latest
Last Updated2026-09-13
First Seen2026-08-10

Runtime arguments

Web UI
http://[IP]:[PORT:9090]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

WebUI PortPorttcp

HTTP port for the Blockbusterr WebUI and API.

Target
9090
Default
9090
Value
9090
App dataPathrw

Persistent configuration, credentials, SQLite history, repeat state, and upgrade backups.

Target
/app/data
Default
/mnt/user/appdata/blockbusterr
Value
/mnt/user/appdata/blockbusterr
TimezoneVariable

IANA timezone used for schedules, such as America/Chicago.

Target
TZ
Default
UTC
Value
UTC
Dry-run mode (v2 only)Variable

With the v2 beta tag, set true to evaluate jobs without sending additions or requests.

Target
BLOCKBUSTERR_DRY_RUN
Default
false
Value
false
Owner token (v2 only)Variable

With the v2 beta tag, optionally set a token of at least 32 characters. Sign in as blockbusterr.

Target
BLOCKBUSTERR_AUTH_TOKEN