1 Configuration
Xena Rathon edited this page 2026-06-28 19:10:43 -04:00

Configuration

How settings resolve (layering)

Every setting is read in this order — first hit wins:

  1. environment variable (ideal for Docker)
  2. settings.json (what the GUI reads & writes)
  3. config.py (classic manual setup — copy config.py.example)
  4. built-in default

So the GUI, CLI, and Docker share one source of truth and never drift.

Settings reference

Setting Default What it does
PLEX_URL http://localhost:32400 Your Plex address
PLEX_TOKEN X-Plex-Token
DTDD_API_KEY DoesTheDogDie API key
PLEX_LIBRARY_TYPES ["movies"] "movies", "tv_shows"
PLEX_LIBRARIES ["Movies"] Named libraries (filtered by type); empty/None = all matching
TV_WARNING_LEVELS ["series","season","episode"] Which TV levels to write. Drop "episode" for far fewer API calls
MIN_YES_VOTES 5 Min "yes" votes to include a warning
MIN_YES_RATIO 0.7 Min yes/(yes+no) ratio
SHOW_SAFE_TOPICS False Also list the "safe" topics
INCLUDE_TOPICS None Only show these topics (overrides exclude)
EXCLUDE_TOPICS None Hide these topics
WARNING_LAYOUT inline inline, lines, or categorized
USE_CATEGORY_ICONS True Emoji per category in the categorized layout
SHOW_TIMESTAMPS True Append the first scene time (needs subscriber timecodes)
SHOW_CUES False Show skip range (start → safe) instead of just the time
SEPARATOR / WARN_PREFIX / SAFE_PREFIX / TOPIC_DELIMITER How the block looks
LANGUAGE None Translate topic names (es, fr, de, ja, …)
API_DELAY 1.0 Seconds between DTDD calls
CACHE_TTL 604800 Cache lifetime (7 days)
DRY_RUN False Preview without writing

Topic filtering

INCLUDE_TOPICS / EXCLUDE_TOPICS use the plain-English topic names from DTDD (case-insensitive). List every name with python plex_warnings.py --list-topics, or browse them in the GUI's Topics tab. If both are set, include wins.

# config.py
INCLUDE_TOPICS = ["a dog dies", "a cat dies", "someone is sexually assaulted"]
EXCLUDE_TOPICS = ["there is copaganda"]

Environment variables (Docker)

Every setting above is also an env var of the same name. Lists are comma-separated:

PLEX_LIBRARY_TYPES=movies,tv_shows
INCLUDE_TOPICS=a dog dies,a cat dies
SCHEDULE=86400      # scheduled CLI image only: seconds between re-runs