Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
1a05d51
Added Language.py
Entree3k Jun 19, 2024
99b073b
Added Languge.py
Entree3k Jun 19, 2024
ed37659
Update Language.py
Entree3k Jun 20, 2024
3a65a5b
Update README.md
Entree3k Jun 20, 2024
beb658f
Update Language.py
Entree3k Jun 20, 2024
9076dd6
Delete Dockerfile
Entree3k Jul 22, 2024
0c29a70
Delete start.sh
Entree3k Jul 22, 2024
2f70487
Delete template directory
Entree3k Jul 22, 2024
0daf80a
Delete edition-manager-for-plex.py
Entree3k Jul 22, 2024
5ab0028
Delete emp-all.bat
Entree3k Jul 22, 2024
af287e5
Delete emp-all.command
Entree3k Jul 22, 2024
11ce251
Delete emp-new.command
Entree3k Jul 22, 2024
074777f
Delete emp-reset.bat
Entree3k Jul 22, 2024
ef1b026
Delete emp-new.bat
Entree3k Jul 22, 2024
e85ab70
Delete emp-reset.command
Entree3k Jul 22, 2024
fae57b8
Delete requirements.txt
Entree3k Jul 22, 2024
15e049d
Delete modules/AudioCodec.py
Entree3k Jul 22, 2024
5d6712a
Delete modules directory
Entree3k Jul 22, 2024
4108f2d
Update config.ini
Entree3k Jul 22, 2024
4046817
Add files via upload
Entree3k Jul 22, 2024
8031fce
Rename edition-manager-for-plex.py to edition-manager.py
Entree3k Jul 22, 2024
79e674f
Create dockerfile
Entree3k Jul 22, 2024
fe0b495
Rename dockerfile to Dockerfile
Entree3k Jul 22, 2024
870526a
Delete compose/edition-manager-for-plex-reset directory
Entree3k Jul 22, 2024
57a3c80
Delete compose/edition-manager-for-plex directory
Entree3k Jul 22, 2024
a1f468d
Create compose.yml
Entree3k Jul 22, 2024
9820efa
Update compose.yml
Entree3k Jul 22, 2024
d30a0fb
Update Dockerfile
Entree3k Jul 22, 2024
1d1cabf
Add files via upload
Entree3k Jul 22, 2024
8367628
Update edition-manager.py
Entree3k Jul 22, 2024
036f948
Update edition-manager.py
Entree3k Jul 22, 2024
ae34bdf
Update config.ini
Entree3k Jul 23, 2024
f0005bb
Update compose.yml
Entree3k Jul 23, 2024
73cd891
Update Dockerfile
Entree3k Jul 23, 2024
fa966e7
Update README.md
Entree3k Jul 23, 2024
a47c5e4
Update README.md
Entree3k Jul 23, 2024
8e8da77
Update README.md
Entree3k Jul 23, 2024
c8cde95
Update README.md
Entree3k Jul 23, 2024
3e9b9e5
Update edition-manager.py
Entree3k Jul 24, 2024
58aa1bd
Added new modules
Entree3k Jul 24, 2024
0449c18
Update README.md
Entree3k Jul 24, 2024
23a7212
Update README.md
Entree3k Jul 24, 2024
9726480
Update README.md
Entree3k Sep 5, 2024
747a823
Add files via upload
Entree3k Sep 5, 2024
41b347e
Update config.ini
Entree3k Mar 13, 2025
57a393c
Update edition-manager-gui.py
Entree3k Mar 13, 2025
36c15d7
Update requirements.txt
Entree3k Mar 13, 2025
439f1c7
Update edition-manager.py
Entree3k Mar 13, 2025
97689da
Update edition-manager.py
Entree3k Mar 13, 2025
9a1f08c
Update Language.py
Entree3k Mar 13, 2025
1727a78
Create Edition Manager Modules.md
Entree3k Mar 13, 2025
9aa5130
Update README.md
Entree3k Mar 13, 2025
1c791c4
Update README.md
Entree3k Mar 18, 2025
c254d09
Add files via upload
Entree3k May 24, 2025
fcc9c67
Update requirements.txt
Entree3k May 24, 2025
59c397a
Removed - cache_ttl
Entree3k May 24, 2025
3a4d7d5
Update edition-manager-gui.py
Entree3k Aug 19, 2025
e482ed9
Create Edition Manager GUI.md
Entree3k Aug 20, 2025
ee02eb5
Update README.md
Entree3k Aug 20, 2025
1448920
Add files via upload
Entree3k Sep 11, 2025
2c4692f
Add files via upload
Entree3k Oct 22, 2025
e027243
Update Edition Manager GUI.md
Entree3k Oct 22, 2025
94f5dc6
Update README.md
Entree3k Oct 23, 2025
6cc159d
Update README.md
Entree3k Oct 23, 2025
e3bfa28
Update README.md
Entree3k Oct 23, 2025
5bd3f98
Delete compose.yml
Entree3k Oct 23, 2025
de914fe
Delete Dockerfile
Entree3k Oct 23, 2025
db95061
Delete edition-manager-gui.bat
Entree3k Oct 23, 2025
de6072b
Add files via upload
Entree3k Oct 23, 2025
c9fb9fd
Update config.ini
Entree3k Oct 23, 2025
f06daa1
Update README.md
Entree3k Oct 23, 2025
1f8a022
Add files via upload
Entree3k Nov 3, 2025
e0d2edc
Add files via upload
Entree3k Nov 3, 2025
162061e
Add files via upload
Entree3k Nov 3, 2025
0185228
Update README.md
Entree3k Nov 5, 2025
e95adf3
Update README.md
Entree3k Nov 5, 2025
8f866d9
Add files via upload
Entree3k Nov 6, 2025
3b9701c
Add files via upload
Entree3k Nov 6, 2025
1853af4
Add files via upload
Entree3k Nov 6, 2025
54f62f8
Update Edition Manager Modules.md
Entree3k Nov 9, 2025
3c6b762
Update Edition Manager GUI.md
Entree3k Nov 9, 2025
c1ca91d
Update README.md
Entree3k Nov 9, 2025
b8eceac
Update README.md
Entree3k Nov 9, 2025
fe352e3
Add files via upload
Entree3k Nov 9, 2025
7778fb0
Delete edition-manager-gui.py
Entree3k Nov 9, 2025
a428856
Delete edition-manager-gui.sh
Entree3k Nov 9, 2025
80159ed
Delete edition-manager-gui.pyw
Entree3k Nov 9, 2025
5bdde21
Delete edition-manager.py
Entree3k Nov 9, 2025
ed8b970
Update config.ini
Entree3k Nov 9, 2025
cbc27e0
Add files via upload
Entree3k Nov 9, 2025
69a00c8
Create file_delete.txt
Entree3k Nov 9, 2025
aa9d0d8
Add files via upload
Entree3k Nov 9, 2025
b36f75b
Delete assets/file_delete.txt
Entree3k Nov 9, 2025
ff715ed
Update messages.txt
Entree3k Nov 10, 2025
c40c316
Add files via upload
Entree3k Nov 10, 2025
8bf5c70
Update messages.txt
Entree3k Nov 11, 2025
ec04e06
Update README.md
Entree3k Nov 11, 2025
c633a72
Add files via upload
Entree3k Nov 13, 2025
19c9275
Add files via upload
Entree3k Nov 13, 2025
d19f630
Update README.md
Entree3k Nov 13, 2025
dfefd57
Update Edition Manager GUI.md
Entree3k Nov 13, 2025
e7f5acb
Fixed issue where it wasn't reading from config
Entree3k Nov 29, 2025
1a1d2f6
Added short code patterns for Cut editions
Entree3k Nov 29, 2025
c6f88bd
Update config.ini
Entree3k Feb 28, 2026
36d7c9b
Add files via upload
Entree3k Feb 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 0 additions & 19 deletions Dockerfile

This file was deleted.

208 changes: 208 additions & 0 deletions Edition Manager GUI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@

# Edition Manager GUI - User Guide

This is just a basic guide on how to use the Edition Manager GUI

## What the app does

Edition Manager scans your Plex movie libraries and writes a smart **Edition Title** built from metadata (e.g., cut, resolution, dynamic range, audio codec, language, boutique label, rating, etc.). You can run it on all movies, a single movie, or restore/undo changes using the built‑in backup tools.

## Quick start

1. **Open Settings** (top right of the main window)

2. Enter your **Plex Server URL** (e.g., `http://127.0.0.1:32400`) and **Token**

3. Click **Test Connection**. If successful, optionally use **Library Picker** to skip whole libraries

5. Visit the **Modules** tab to reorder/enable the tags you want in the Edition Title

6. (Optional) Tune **Language**, **Rating**, **Performance**, and **Appearance**

7. Click **Save**

8. Back on the main screen, choose an action: **Process All Movies**, **Process One Movie**, **Reset All Movies**, **Backup Editions**, or **Restore Editions**

## Main window

<img width="652.6666666666667" height="498.6666666666667" alt="edition_manager" src="https://github.com/user-attachments/assets/8a0b22ae-66ba-45d8-921b-41764e8b34e0" />

- **Actions**

- **Process All Movies**: Run Edition Manager on every movie in un‑skipped libraries

- **Process One Movie**: Opens a poster grid with results (title/year/library); double‑click a match to process that item only

- **Reset All Movies**: Clears the Edition Title for all processed movies

- **Backup Editions**: Saves current titles to a JSON file for safekeeping

- **Restore Editions**: Restores titles from a prior backup

- **Settings**: Opens the configuration dialog

- **Progress**

- Shows a busy indicator while work is running, then a percentage and completion status

- **Status Log**

- Real‑time output from the engine. Use **Cancel** to stop the current task, or **Clear Status** to wipe the log view

## Settings

<img width="478.6666666666667" height="392" alt="settings" src="https://github.com/user-attachments/assets/f938cbfc-5bd9-4197-81d0-ae5b8549fbe1" />

Settings are organized into tabs. All changes are saved to a `config.ini` in the app’s `config/` folder when you click **Save**

### Server

- **Server URL** - Your Plex HTTP URL

- **Token** - Plex token with library read/write permissions

- **Skip Libraries** - Semicolon‑separated list. Click **Library Picker…** to select movie libraries to skip

- **Webhook (toggle)** - When enabled, the GUI starts a minimal webhook server so _newly added movies_ can be auto‑processed

- **Tools** — **Test Connection** checks reachability and lists sections; **Library Picker…** helps build the skip list

### Modules

<img width="478.6666666666667" height="392.6666666666667" alt="modules" src="https://github.com/user-attachments/assets/6a9d39f2-ac8a-43c1-8023-63ae383a34c0" />

- **Drag to reorder**; **check to enable**. Enabled modules run top‑to‑bottom and compose the Edition Title in that order.

- Modules include: AudioChannels, AudioCodec, Bitrate, ContentRating, Country, Cut, Director, Duration, DynamicRange, FrameRate, Genre, Language, Rating, Release, Resolution, ShortFilm, Size, Source, SpecialFeatures, Studio, VideoCodec, Writer

### Language

<img width="480" height="392.6666666666667" alt="language" src="https://github.com/user-attachments/assets/27fff059-bb2e-4bb4-b475-ea0ceec8f224" />

- **Excluded Languages** — Comma‑separated list; any matching audio track languages will be ignored when selecting a primary language tag.

- **Skip Multiple Audio Tracks** — If checked, movies with more than one audio track are skipped by the Language module to avoid ambiguity.


### Rating

<img width="478.6666666666667" height="390.6666666666667" alt="rating" src="https://github.com/user-attachments/assets/ae63c8b8-e9f6-4b81-94bd-1de4a30cf1a2" />

- **Source** — Choose **IMDB** (via TMDb) or **Rotten Tomatoes**

- **Rotten Tomatoes Type** — **Critics** or **Audience** (only used when source is Rotten Tomatoes)

- **TMDb API Key** — Required for IMDB source

### Performance

<img width="478.6666666666667" height="390.6666666666667" alt="performance" src="https://github.com/user-attachments/assets/96d43924-de65-44f7-ae24-bccdcb795566" />

- **Hardware** — Shows detected CPU threads

- **Library Size** — Small / Medium / Large presets

- **Apply Recommendation** — Fills in optimized **Max Workers** and **Batch Size** based on CPU and chosen size

- **Max Workers** — Parallel movies processed at once
- **Batch Size** — Movies per round before reporting progress

### Appearance

<img width="478.6666666666667" height="390.6666666666667" alt="appearance" src="https://github.com/user-attachments/assets/04c1753f-971c-4b0d-a5cc-826d8bc06f15" />

- **Primary Highlight Color** — Pick a brand color for buttons, progress, and accents
- **Dark Mode** — Toggle a dark UI theme.

## Webhook auto‑processing (optional)

When **Webhook** is enabled in Settings, the GUI launches a small local server. Wire your Plex **webhook** to POST new‑item events to the app. The GUI filters duplicates and stale events and queues the movie for processing in the background. A minimal health endpoint is also available.

- Health: `GET /healthz` → `{ "ok": true }`

- Webhook target: `POST /edition-manager` with Plex payload

> Tip: Only **movie** `library.new` events added within a few minutes are processed. This prevents spam and old replays.

## How to set up the Webhook in Plex

1. **Enable the Webhook Server in Edition Manager:**

- Go to **Settings → Server** and toggle **Webhook** ON.

- Note the server address shown in the log, e.g. `http://<your-local-ip>:5000/edition-manager`.
- `<your-local-ip>` is the IP of the device running the Script
2. **Open Plex Settings:**

- In Plex Web, click the **Settings** icon → **Server** → **Webhooks**

3. **Add the Edition Manager webhook:**

- Click **Add Webhook** and paste your Edition Manager endpoint URL (for example, `http://<your-local-ip>:5000/edition-manager`).

- Click **Save Changes.**

4. **Test the Webhook:**

- Add a new movie to Plex.
- In Edition Manager, check the **Status Log** — you should see an entry like:

```
[Webhook] Received new movie event: Inception (2010)
[Webhook] Queued for automatic processing.
```

5. **Check Health Endpoint:**

- Visit `http://<your-local-ip>:5000/healthz` in your browser. You should see:

```json
{ "ok": true }
```

6. Edition Manager will now automatically process any newly added movies as they appear in your Plex library.

## How Edition Titles are built

Each enabled module returns a short, human‑readable tag (when available). The tags are de‑duplicated and joined with `·` to form the final Edition Title. Examples:

- `Dolby Vision · HDR10 · 4K · 5.1 · DTS‑HD MA · Director's Cut`

- `1080p · AAC · 24fps · French · Criterion`


If a module can’t determine a value for a movie, it simply contributes nothing for that movie.

## Tips & good practices

- **Backup before large runs** with **Backup Editions** so you can undo easily.

- **Start small**: test with **Process One Movie** to confirm the title format before running on your entire library.

- **Prioritize signal**: Put your favorite tags (e.g., **Release** boutique labels or **DynamicRange**) at the top of the Modules list.

- **Language clarity**: Add your native language to **Excluded Languages** if you prefer Edition Titles to only highlight non‑native tracks.

- **Ratings**: If you choose **Rotten Tomatoes**, set **Critics** or **Audience** to match your preference; for IMDB, add a TMDb API key.

- **Performance**: Use **Apply Recommendation** first; adjust **Max Workers** up/down if your Plex server is busy with other tasks.

- **Appearance**: Pick a primary color that contrasts well in your theme; enable **Dark Mode** if you usually run Plex at night.

## Troubleshooting

- **Connection failed** in Settings → Server

- Verify URL, token, and network; confirm Plex responds at `/library/sections`.

- **No posters in search** (Process One Movie)

- Ensure the GUI can reach your Plex server and the token has access to library images.

- **Nothing happens on new items** (Webhook)

- Confirm the **Webhook** toggle is on and check Health Endpoint

- **Edition Titles look wrong**

- Re‑order modules so the most important tags appear first; disable modules you don’t need. Then **Reset All Movies** and re‑run.
Loading