Erkennt anhand einer Video-Datei und gegebener Serie die Episoden-Nummer
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Fabian 3d91b8dddf Undo individual files from the history
- Select single files (⌘/⇧ for several) in an expanded history entry;
  the button shows how many files will be reverted, or "Alle widerrufen"
  for a whole entry
- Swapped names are detected: reverting one file automatically includes
  the file that currently holds its old name, and the dialog says so
- Undo logs keep a per-file "undone" flag; partly reverted entries show
  "… – n davon widerrufen", reverted files are greyed out; the log is
  marked done once every file is back
- Newer-conflict check now only considers the selected files

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-15 15:58:43 +02:00
.idea First version 2026-10-13 21:43:07 +02:00
episodefinder Undo individual files from the history 2026-10-15 15:58:43 +02:00
packaging Redesign GUI in native macOS style, add app icon 2026-10-15 14:52:06 +02:00
tests Undo individual files from the history 2026-10-15 15:58:43 +02:00
.env.example First version 2026-10-13 21:43:07 +02:00
.gitignore Ignore .DS_Store 2026-10-15 14:52:10 +02:00
pyproject.toml Add Qt GUI with queue, editable results and undo 2026-10-15 14:17:53 +02:00
README.md Undo individual files from the history 2026-10-15 15:58:43 +02:00

EpisodeFinder

Erkennt anhand des deutschen Tons, welche Episode einer Staffel in einer Video-Datei steckt, und benennt die Dateien um (Serie S02E05.mkv). Alles mit KI läuft lokal auf Apple Silicon:

  • Whisper (mlx-whisper) transkribiert ein paar Ausschnitte pro Datei.
  • Untertitel-Methode: Die Transkripte werden mit Referenz-Untertiteln von OpenSubtitles verglichen.
  • Handlungs-Methode: Wo es keine Untertitel gibt, entscheidet ein lokales Sprachmodell (Qwen2.5-7B über mlx-lm) anhand der Inhaltsangaben aus Wikipedia bzw. TMDB.

Es wird nie etwas gelöscht. Duplikate kommen nach _Duplikate/, blockierende ungeklärte Dateien nach _Ungeklärt/, und jede Umbenennung lässt sich rückgängig machen.

Voraussetzungen

  • Mac mit Apple Silicon
  • brew install ffmpeg
  • API-Zugänge für TMDB und OpenSubtitles (in der App unter Einstellungen)

App

dist/EpisodeFinder.app starten:

  1. Mit + (⌘N) eine Staffel hinzufügen – oder einen Ordner aufs Fenster ziehen.
  2. Mit ▶︎ (⌘R) die Warteschlange starten.
  3. Ergebnis prüfen: Zeilen abwählen oder die Episode per Doppelklick ändern.
  4. Umbenennen. ⇧⌘Z zeigt alle bisherigen Umbenennungen; widerrufen lassen sich ganze Einträge oder einzelne Dateien. Protokoll mit ⌘L.

Beim ersten Lauf werden die Modelle geladen (ca. 6 GB, Hugging-Face-Cache).

Daten liegen in ~/Library/Application Support/EpisodeFinder (Cache, Undo-Protokolle, settings.json mit den Zugangsdaten).

Die App kann auch ohne Fenster laufen:

EpisodeFinder.app/Contents/MacOS/EpisodeFinder --cli match "<Ordner>" --serie "…" --staffel 2
EpisodeFinder.app/Contents/MacOS/EpisodeFinder --selftest

Entwicklung

.venv/bin/pip install -e ".[dev]"
.venv/bin/episodefinder match "<Ordner>" --serie "Game of Thrones" --staffel 2   # Probelauf
.venv/bin/episodefinder-gui
.venv/bin/python -m pytest

App bauen

Das App-Symbol erzeugt packaging/make_icon.py (schon erledigt, nur nach Änderungen nötig).

cd packaging && ../.venv/bin/pyinstaller --noconfirm --distpath ../dist --workpath ../build EpisodeFinder.spec
../dist/EpisodeFinder.app/Contents/MacOS/EpisodeFinder --selftest