Skip to content

Configuration

Blockbusterr can be configured via a YAML configuration file or through the Web UI.

The configuration file is located at config/config.yaml. Here’s a complete example:

server:
host: "0.0.0.0"
port: 9090
database:
path: "data/blockbusterr.db"
# Trakt Integration (Required)
trakt:
client_id: "your_trakt_client_id"
client_secret: "your_trakt_client_secret"
access_token: "" # Auto-populated after OAuth
refresh_token: "" # Auto-populated after OAuth
# TMDB Integration (Optional - for poster images)
tmdb:
api_key: "your_tmdb_api_key"
# Radarr Integration (Optional)
radarr:
enabled: true
url: "http://radarr:7878"
api_key: "your_radarr_api_key"
quality_profile_id: 1
root_folder: "/movies"
search_on_add: true
monitored: true
minimum_availability: "released" # announced, inCinemas, released, preDB
# Sonarr Integration (Optional)
sonarr:
enabled: true
url: "http://sonarr:8989"
api_key: "your_sonarr_api_key"
quality_profile_id: 1
root_folder: "/tv"
search_on_add: true
monitored: true
season_folder: true
series_type: "standard" # standard, daily, anime
# Jellyseerr Integration (Optional)
jellyseerr:
enabled: false
url: "http://jellyseerr:5055"
api_key: "your_jellyseerr_api_key"
# Integration Mode
integration:
mode: "direct" # direct or jellyseerr
# Jobs Configuration
jobs:
trending_movies:
enabled: true
schedule: "0 */6 * * *" # Every 6 hours
limit: 20
filters:
min_rating: 6.5
min_votes: 1000
max_runtime: 180
exclude_genres: ["Documentary"]
popular_shows:
enabled: true
schedule: "0 0 * * *" # Daily at midnight
limit: 15
filters:
min_rating: 7.0
min_votes: 500
FieldTypeDefaultDescription
server.hoststring"0.0.0.0"Host to bind the server to
server.portint9090Port to run the server on
FieldTypeDefaultDescription
database.pathstring"data/blockbusterr.db"Path to SQLite database file

Trakt is required for fetching trending, popular, and other list-based content.

FieldTypeRequiredDescription
trakt.client_idstringYesTrakt API client ID
trakt.client_secretstringYesTrakt API client secret
trakt.access_tokenstringAutoOAuth access token (auto-populated)
trakt.refresh_tokenstringAutoOAuth refresh token (auto-populated)
  1. Go to Trakt API Applications
  2. Create a new application
  3. Set redirect URI to http://localhost:9090/auth/trakt/callback
  4. Copy the Client ID and Client Secret

TMDB provides poster images for the preview feature.

FieldTypeRequiredDescription
tmdb.api_keystringNoTMDB API key for poster images

See TMDB Setup Guide for details.

FieldTypeDefaultDescription
radarr.enabledboolfalseEnable Radarr integration
radarr.urlstring-Radarr instance URL
radarr.api_keystring-Radarr API key
radarr.quality_profile_idint1Quality profile ID to use
radarr.root_folderstring-Root folder path
radarr.search_on_addbooltrueAutomatically search for movie
radarr.monitoredbooltrueMonitor the movie
radarr.minimum_availabilitystring"released"Minimum availability: announced, inCinemas, released, preDB
FieldTypeDefaultDescription
sonarr.enabledboolfalseEnable Sonarr integration
sonarr.urlstring-Sonarr instance URL
sonarr.api_keystring-Sonarr API key
sonarr.quality_profile_idint1Quality profile ID to use
sonarr.root_folderstring-Root folder path
sonarr.search_on_addbooltrueAutomatically search for episodes
sonarr.monitoredbooltrueMonitor the series
sonarr.season_folderbooltrueUse season folders
sonarr.series_typestring"standard"Series type: standard, daily, anime
FieldTypeDefaultDescription
jellyseerr.enabledboolfalseEnable Jellyseerr integration
jellyseerr.urlstring-Jellyseerr instance URL
jellyseerr.api_keystring-Jellyseerr API key
FieldTypeDefaultDescription
integration.modestring"direct"Integration mode: direct (Radarr/Sonarr) or jellyseerr

See Integration Modes for details.

Each job can have the following configuration:

FieldTypeDefaultDescription
enabledboolfalseEnable or disable the job
schedulestring-Cron schedule (e.g., "0 */6 * * *")
limitint10Maximum items to fetch
filtersobject-Filter configuration (see below)
scoringobject-Scoring configuration (see below)
  • trending_movies, trending_shows
  • popular_movies, popular_shows
  • box_office
  • anticipated_movies, anticipated_shows
  • favorited_movies, favorited_shows
  • played_movies, played_shows
  • watched_movies, watched_shows
  • collected_movies, collected_shows

Filters allow you to control what content gets added. All filter fields are optional.

filters:
# Rating filters
min_rating: 6.5 # Minimum Trakt rating (0-10)
max_rating: 10.0 # Maximum Trakt rating
# Vote filters
min_votes: 1000 # Minimum number of votes
# Runtime filters
min_runtime: 60 # Minimum runtime in minutes
max_runtime: 180 # Maximum runtime in minutes
# Release date filters
min_year: 2020 # Minimum release year
max_year: 2026 # Maximum release year
# Genre filters
include_genres: ["Action", "Sci-Fi"]
exclude_genres: ["Documentary", "Reality"]
# Keyword filters
include_keywords: ["superhero"]
exclude_keywords: ["christmas", "hallmark"]
# Language filters
include_languages: ["en", "fr"]
exclude_languages: ["hi"]
# Country filters
include_countries: ["us", "gb"]
exclude_countries: ["in"]
# Status filters (shows only)
allowed_statuses: ["continuing", "returning series"]

See Filters & Scoring for detailed explanation.

Jobs use standard cron syntax for scheduling:

┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of month (1 - 31)
│ │ │ ┌───────────── month (1 - 12)
│ │ │ │ ┌───────────── day of week (0 - 6) (Sunday to Saturday)
│ │ │ │ │
* * * * *

Examples:

  • "0 */6 * * *" - Every 6 hours
  • "0 0 * * *" - Daily at midnight
  • "0 12 * * 1" - Every Monday at noon
  • "*/30 * * * *" - Every 30 minutes

Override configuration using environment variables:

Terminal window
SERVER_PORT=9090
DATABASE_PATH=/app/data/blockbusterr.db
TRAKT_CLIENT_ID=your_client_id
TRAKT_CLIENT_SECRET=your_client_secret
RADARR_URL=http://radarr:7878
RADARR_API_KEY=your_api_key

Environment variables take precedence over configuration file values.