dynamiX

**DynamiX** is an automation tool for dynamically managing Plex collections. It pins and unpins library collections based on configurable time blocks, ensuring fresh and relevant content is featured. This repository includes the Python script and is packaged `.exe` version for easier execution.

109
4
Python

dynamiX – Plex Recommendations Manager

Version: 2.0.0

A web-based automation tool for dynamically managing Plex collections pinning and seasonal pre-rolls.
Pins and unpins library collections based on configurable time blocks, seasonal schedules, manual overrides, and even handles pre-roll video management.


🚀 Features

  • Web UI & PWA
    Accessible at port 1166, with offline support via service worker (manifest.json).
  • Multi-threaded Pinning
    Speed up pinning loops by handling libraries in parallel.
  • Dynamic Pinning
    Schedule by time blocks, seasonal/holiday blocks, and “always-pinned” collections.
  • Pin by Library
    Pin on any combination of home/shared home/recommended and optionally generate seperate sets of pins for home and library recommended.
  • Pre-Roll Management
    Automatically rename pre-roll videos based on date blocks (see settings → Pre-Roll).
  • Exclusions & Exemptions
    Avoid re-pinning recently pinned items and manually exempt specific collections.
  • Quick-Add & Manual Blocks
    Fast holiday presets or fully custom date ranges for pinning and pre-rolls (managed seperate).
  • HTTP Basic Auth
    Optional for secure local or public deployments.
  • Update Notifications
    Checks GitHub for new releases (auto-update is stubbed out for now).

Preview

  • All-New Dashboard
    image

  • Settings
    image
    image
    image
    image
    image

  • Exclusions
    image

  • Exemptions
    image

  • Logs
    image

📦 Installation

Prerequisites

  • Python 3.8+
  • Plex server URL & Token ([How to find your token][plex-token])

Setting Up Pre-Rolls

  1. Make sure all of your Pre-Rolls are in one folder with no other media
    image
  2. Point Plex to that path ending with /PlexMainPreRoll.mp4 For Example:
P:\Movie Roll\PlexMainPreRoll.mp4

image
3. Point dynamix to the folder (DO NOT Include /PlexMainPreRoll.mp4 here)
image

  1. Set your default pre-roll and configure some season blocks
    image

From the Releases Page

  1. Get the Latest Release
  2. Unzip the package
  3. Open a command prompt and navigate to the dynamiX folder
  4. Run the main script to start
    pip install -r requirements.txt 
    
  5. Run the main script to start
    py dynamixmain.py
    
  6. Visit http://127.0.0.1:1166/

Through Docker

Get the Latest Release

docker pull clharrel/dynamix:latest

docker run -d --name dynamix -p 1166:1166 `
  -v "${PWD}\config.json:/app/config.json" `
  -v "${PWD}\user_exemptions.json:/app/user_exemptions.json" `
  -v "${PWD}\used_collections.json:/app/used_collections.json" `
  -v "${PWD}\run_state.json:/app/run_state.json" `
  -v "${PWD}\logs:/app/logs" `
  clharrel/dynamix:latest