**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.
DynamiX is an automation tool for dynamically managing Plex collections pinning. It pins and unpins library collections based on configurable time blocks, ensuring fresh and relevant content is featured. As of 1.2.0, it is also able to rename files dynamically to handle seasonal pre-roll videos! This repository includes the Python script and its packaged .exe
version for easier execution. It is important to note that CURRENTLY this tool does not actually create collections, that feature will be available soon!
Find the latest release of the .exe on the releases page https://github.com/TheImaginear/dynamiX/releases
plexapi
, requests
, and ttkbootstrap
.exe
File (Windows Only Right Now) (Recommended for Non-Developers)script.exe
from the Releases Page.script.exe
to launch the application.git clone https://github.com/YourUsername/DynamiX.git
cd DynamiX
pip install -r requirements.txt
python src/script.py
1a. Grab the latest docker image:
docker pull clharrel/dynamix:latest
1b. Grab it from the Repo Page:
(https://hub.docker.com/repository/docker/clharrel/dynamix/general)
Upon the first run, the application will prompt you to fill in required configuration details:
http://<server_ip>:32400
).Movies, TV Shows
).The following files are generated and updated dynamically:
config.json
- Stores the main configuration settings.used_collections.json
- Tracks recently pinned collections to avoid immediate repeats.user_exemptions.json
- Maintains a list of collections manually exempted by the user.If you would like to manage your existing pre-roll videos
To access the Plex API, you need a valid token. Follow these steps to retrieve it:
Get Info
button (3-dot menu) and choose View XML
.X-Plex-Token=
.script.exe
or python src/script.py
).The running program:
Dynamic Exclusions list updated in the GUI:
User-Set Exemptions:
Server Configuration Tab:
Settings Tab:
Pre-Roll Manager:
Automatically Updates Home Screen, Shared Home, and/or library screen:
Tab | Description |
---|---|
Plex Server | Configure Plex server URL and API token. Display server name for confirmation. |
Settings | Configure libraries, time blocks, season blocks, and pinning settings. |
Logs | View real-time activity logs for debugging and monitoring. |
Dynamic Exclusions | Manage collections that are temporarily excluded after being pinned. |
User Exemptions | Manually exempt specific collections from being pinned. |
Pre-Roll Manager | Handle Pre-Roll Videos by date blocks |
Customize the number of collections pinned during specific times of the day. For example:
Day | Time Block | Start Time | End Time | Limit |
---|---|---|---|---|
Monday | Morning | 06:00 | 12:00 | 3 |
Monday | Evening | 18:00 | 22:00 | 5 |
Manually exempt specific collections from being pinned using the User Exemptions tab.
Required libraries are listed in requirements.txt
:
plexapi
requests
ttkbootstrap
Install them with:
pip install -r requirements.txt
We welcome contributions! Please follow these steps:
git checkout -b feature-branch-name
git push origin feature-branch-name
See the full contributing guidelines in CONTRIBUTING.md.
This project is licensed under the MIT License. See the LICENSE file for details.
If you encounter issues, please open a ticket in the Issues section.
For general questions and feedback, feel free to reach out!