Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

plexmatch

Gleicht eine Plex-Filmbibliothek gegen eine vorgegebene Liste ab (MDBList, IMDb-CSV, Trakt-JSON oder Freitext) und markiert jeden Eintrag als vorhanden, fehlt oder unsicher. Zusaetzlich gibt es eine Ansicht "nur in Plex" fuer alles, was in der Bibliothek liegt, aber nicht auf der Liste steht.

Zwei Varianten, gleiche Logik:

Datei Plattform Oberflaeche
PlexMatchGUI.ps1 Windows 10/11, Windows PowerShell 5.1 native WPF-Fenster
plexmatch.py Windows / Linux / Unraid, Python 3.8+ lokaler Webserver, Browser-GUI

Keine externen Module, keine Pakete, keine Cloud. Alles laeuft lokal gegen die Plex-API.


Windows-GUI

  1. PlexMatchGUI.ps1 und Start-PlexMatch.cmd in denselben Ordner legen.
  2. Einmalig die Datei entsperren, falls sie aus dem Browser kam:
Unblock-File .\PlexMatchGUI.ps1
  1. Start-PlexMatch.cmd doppelklicken.
  2. Server-URL und Token eintragen, Bibliotheken laden, Liste angeben, Abgleich starten.

Der Starter ruft gezielt System32\WindowsPowerShell\v1.0\powershell.exe mit -STA auf. Unter PowerShell 7 laeuft das Skript nicht, dort fehlt der STA-Modus fuer WPF.

Web-GUI

python3 plexmatch.py --port 8099

Danach http://<host>:8099 im Browser. Optionen:

  • --host Bind-Adresse, Standard 0.0.0.0
  • --port Port, Standard 8099
  • --open oeffnet den Browser automatisch

Auf Unraid laeuft das Skript mit dem Plugin "Python 3 for Unraid" direkt im Terminal oder als User-Script.


Plex-Token finden

  1. In Plex Web einen beliebigen Film oeffnen.
  2. Im Drei-Punkte-Menue Get Info, dann View XML.
  3. In der Adresszeile des neuen Tabs steht X-Plex-Token=... am Ende.

Listenquellen

MDBList — Listen-URL einfuegen, der /json/-Endpunkt wird automatisch angehaengt:

https://mdblist.com/lists/benutzer/listenname

Bei privaten Listen die API-Route mit eigenem Key verwenden:

https://api.mdblist.com/lists/benutzer/listenname/items?apikey=DEINKEY

IMDb-CSV — Export aus einer IMDb-Liste oder den Ratings, Spalten Const, Title, Year. Ueber Datei oeffnen einlesen.

Freitext — eine Zeile pro Film, alle drei Formen funktionieren gemischt:

tt0111161
Der Pate (1972)
Dune;2021

HTML — laedt eine Quelle statt JSON eine Webseite aus, zieht plexmatch als Notnagel alle imdb.com/title/tt...-IDs heraus und dedupliziert sie.


Matching

  1. IMDb-ID aus den Plex-GUIDs. Gelesen werden das aktuelle Guid-Array und das alte com.plexapp.agents.imdb://-Format. Das ist sprachunabhaengig und trifft "The Godfather" auf einen als "Der Pate" gescannten Film.
  2. Titel + Jahr als Fallback. Der Titel wird normalisiert: Akzente und Umlaute aufgeloest, fuehrende Artikel entfernt, Satzzeichen und &/+ vereinheitlicht, "Part"/"Teil" gestrichen.
  3. Optional Jahr +/-1 tolerieren, fuer Filme mit abweichendem Erscheinungsjahr.

Statuslogik:

Status Bedeutung
vorhanden IMDb-Treffer, oder Titel+Jahr, oder eindeutiger Titel ohne Jahresangabe
unsicher Titel mehrdeutig, mehrere Kandidaten in der Bibliothek
fehlt kein Treffer
nur Plex in der Bibliothek, nicht auf der Liste

Die Statuszeile meldet, wie viele Plex-Filme keine IMDb-ID haben. Diese laufen ausschliesslich ueber Titel+Jahr und sind die haeufigste Fehlerquelle. Wenn die Zahl hoch ist, hilft ein "Refresh Metadata" auf der Bibliothek.


Export

Jede Ansicht laesst sich einzeln exportieren:

  • CSV mit allen Spalten, Semikolon-getrennt, Excel-tauglich
  • IMDb-IDs als reine Textliste, direkt als Radarr-Import verwendbar
  • Titel mit Jahr in Klammern

Einstellungen

Variante Pfad
Windows-GUI %APPDATA%\PlexMatch\settings.json
Web-GUI ~/.plexmatch.json, ueberschreibbar mit PLEXMATCH_CONFIG

Der Token wird nur gespeichert, wenn das Haekchen gesetzt ist. Die Windows-GUI legt ihn per DPAPI ab, entschluesselbar nur mit demselben Windows-Benutzerkonto. Die Web-GUI speichert im Klartext mit chmod 600.


Lizenz

MIT, siehe LICENSE.

About

Compare your Plex movie library against MDBList, IMDb or Trakt lists and see what's missing. Windows WPF GUI and web GUI, no dependencies.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages