0.16.1-1 release snapshot

This commit is contained in:
2026-04-29 08:35:24 +00:00
parent 6115090da1
commit 901a3b1ad7
269 changed files with 127336 additions and 1 deletions
+68
View File
@@ -0,0 +1,68 @@
# Audiobooks
Die Seite `Audiobooks` ist der spezialisierte AAX-Workflow.
## Ablaufübersicht
Die Oberfläche ist in drei Bereiche gegliedert:
1. `Audiobooks Upload`
2. `Audiobook Jobs`
3. `Audiobook Output Explorer`
## 1) Audiobooks Upload
Der Upload verarbeitet ausschließlich AAX-Dateien.
Direkt nach Upload passieren im Hintergrund:
- Probe/Metadatenanalyse (ffprobe)
- Anlage eines RAW-Ordners per `Audiobook RAW Template`
- Ablage der AAX-Datei im RAW-Pfad
- Initiale Jobkonfiguration (Format, Kapitel, Metadaten)
Wichtige Parameter:
- Zielformat (`m4b`, `mp3`, `flac`)
- optionaler Sofortstart
Toolabhängigkeit:
- `ffprobe_command` für Metadaten/Kapitel
- `ffmpeg_command` für Encode/Cover-Extraktion
## 2) Audiobook Jobs
Jobkarten zeigen Zustand, Fortschritt und verfügbare Aktionen.
Typische Aktionen:
- `Starten`
- `Abbrechen`
- `Retry`
- `Löschen`
- `Im Ripper` (Kontextwechsel)
Die Karten werden regelmäßig aktualisiert und durch WebSocket-Ereignisse ergänzt.
## 3) Audiobook Output Explorer
Read-only Explorer des Audiobook-Outputpfads:
- Ordner-/Dateistruktur
- Zeitstempel/Größen
- schnelle Ergebnisprüfung ohne Dateisystemwechsel
## Pfad- und Template-Logik
| Bereich | Gesteuert durch |
|---|---|
| RAW-Ablage | `raw_dir_audiobook` + `audiobook_raw_template` |
| Finale Ausgabe | `movie_dir_audiobook` + `output_template_audiobook` |
| Dateiformat | Jobkonfiguration (`m4b`, `mp3`, `flac`) |
## Typische Probleme
- Upload wird abgelehnt: Eingabedatei ist keine AAX-Datei.
- Start schlägt fehl: `ffmpeg`/`ffprobe` nicht aufrufbar.
- Unerwartete Pfade: Templates enthalten ungültige oder zu generische Platzhalter.
+108
View File
@@ -0,0 +1,108 @@
# Converter
Die Seite `Converter` verarbeitet bereits vorhandene Dateien (Video, Audio, ISO) ohne Laufwerks-Rip.
## Betriebsmodell
Der Converter arbeitet auf dem Eingangspfad `converter_raw_dir`:
- Uploads landen dort
- Explorer-Aktionen arbeiten dort
- daraus werden Converter-Jobs erstellt
Wichtig:
- Upload erzeugt nicht automatisch einen Job.
- Joberstellung erfolgt explizit über Auswahl im Explorer.
## Datei-Explorer
Der Explorer zeigt den kompletten Baum unter `converter_raw_dir`.
Aktionen:
| Aktion | Wirkung |
|---|---|
| `Upload` | Dateien werden in den Raw-Baum geschrieben |
| `Ordner erstellen` | legt Unterordner im Raw-Baum an |
| `Umbenennen` | benennt Datei/Ordner im Raw-Baum um |
| `Verschieben` | verschiebt innerhalb des Raw-Baums |
| `Löschen` | entfernt Datei/Ordner dauerhaft |
| `Scannen` | synchronisiert Explorer und DB-Zuordnungen |
Upload-Regeln:
- Dateiendung muss in `Erlaubte Datei-Endungen*` enthalten sein
- bei Verstoß wird der Upload abgelehnt
## Joberstellung aus Explorer-Auswahl
Es gibt zwei Audio-Strategien:
1. `Ein Job pro Datei`
2. `Gemeinsamer Job (Audio)`
Verhalten:
- Video/ISO werden grundsätzlich als Einzeljobs angelegt.
- Audio kann als Shared-Job mit mehreren Eingabedateien erzeugt werden.
Shared-Audio-Job:
- hält mehrere `inputPaths`
- kann vor Start erweitert/reduziert werden (nur Audio-Dateien)
## Job-Konfiguration
Vor Start je Job einstellbar:
- `converterMediaType` (`video`, `audio`, `iso`)
- `outputFormat`
- Metadaten
- Track-/Titelwahl (bei video/iso)
- Pre-/Post-Encode-Skripte und Ketten
Spezifika:
- Video/ISO laufen durch Mediainfo/Review ähnlich zum Disc-Flow.
- Audio kann direkt mit Formatoptionen konfiguriert werden.
## Ausgabe-Pfade
### Video/ISO
- Root: `converter_movie_dir`
- Dateiname: `Output-Template (Video)`
- Endung: aus gewähltem Output-Format
### Audio
- Root: `converter_audio_dir`
- Dateiname/Ordner: `Output-Template (Audio)`
- bei Shared-/Folder-Job: Ausgabe als Ordnerstruktur mit Trackdateien
## Queue und Start
Converter-Jobs laufen über dieselbe Pipeline-/Queue-Logik:
- sofortiger Start wenn Limits frei
- sonst Queue-Eintrag
Parallelität richtet sich nach den globalen Encode-Limits in `Settings`.
## Auto-Scan (Polling)
Mit aktiviertem Polling:
- `converter_raw_dir` wird zyklisch gescannt
- neue Dateien erscheinen automatisch im Explorer
Relevante Settings:
- `Auto-Scan (Polling)`
- `Polling-Intervall (Sekunden)`
## Abgrenzung zu Audiobooks
- `Converter`: beliebige Audio/Video/ISO-Dateien
- `Audiobooks`: dedizierter AAX-Workflow mit Kapitel-/Audiobook-Metadaten
+35
View File
@@ -0,0 +1,35 @@
# Database (Expert)
`/database` ist die Recovery- und Expertensicht für Fälle, in denen Dateisystem und Historie nicht mehr sauber zusammenpassen.
## Zugriff
- direkte Route: `/database`
- nicht Teil der Standardnavigation
## Bereich `Gefundene RAW-Einträge`
Dieser Bereich listet RAW-Verzeichnisse ohne zugeordneten Historie-Job.
Aktionen:
- `RAW prüfen`: scannt konfigurierte RAW-Wurzeln
- `Job anlegen`: erstellt aus einem orphan RAW einen neuen Historie-Job
## Was bei `Job anlegen` passiert
- RAW-Pfad wird als Importquelle registriert
- Job wird in die Historie geschrieben
- anschließende Analyse läuft als RAW-basierter Einstieg (ohne klassischen Disc-Read)
Typischer Einsatz:
- manuelle Dateioperationen außerhalb der UI
- Migrationen
- Wiederherstellung nach abgebrochenen Läufen
## Sicherheits- und Betriebsregeln
- Aktionen wirken direkt auf produktive Historie/Dateipfade.
- Vor Import oder Löschung immer Pfad und Ziel prüfen.
- Diese Seite nur für Recovery-Szenarien nutzen, nicht für normalen Tagesbetrieb.
+58
View File
@@ -0,0 +1,58 @@
# Downloads
Auf `Downloads` werden ZIP-Archive für Historie-Artefakte erstellt und bereitgestellt.
## Was heruntergeladen werden kann
Ein Download-Eintrag referenziert immer einen Historie-Job und genau ein Ziel:
- `RAW`
- `Output`
Erzeugt wird ein ZIP-Archiv im Download-Verzeichnis des Backends.
## Statusmodell
| Status | Bedeutung |
|---|---|
| `queued` | Eintrag erstellt, wartet auf Verarbeitung |
| `processing` | ZIP wird gerade gebaut |
| `ready` | Archiv fertig, Download-Link aktiv |
| `failed` | Erzeugung oder Zugriff fehlgeschlagen |
## Eintrag anlegen
Startpunkt ist die `Historie`:
1. Job öffnen.
2. Download einreihen.
3. Ziel (`RAW` oder `Output`) wählen.
4. Status in `Downloads` verfolgen.
## Wichtige Laufzeitdetails
- Wenn bereits ein passendes, aktuelles Archiv existiert, kann der Eintrag wiederverwendet werden.
- Nach Backend-Neustart werden unterbrochene `queued`/`processing`-Einträge geprüft und fortgesetzt.
- Fehlt eine erwartete ZIP-Datei bei `ready`, wird der Eintrag auf `failed` gesetzt.
## Download auslösen
Bei Status `ready`:
- Download-Button lädt die ZIP direkt aus `/api/downloads/:id/file`.
## Einträge entfernen
`Löschen` entfernt:
- Queue-Metadaten
- zugehörige Archivdatei
Nicht erlaubt:
- Löschen während `queued`/`processing`
## Echtzeitaktualisierung
Die Seite reagiert auf `DOWNLOADS_UPDATED` per WebSocket.
Dadurch sind Statuswechsel ohne Reload sichtbar.
+89
View File
@@ -0,0 +1,89 @@
# Historie
`Historie` ist die Kontroll- und Nachbearbeitungsoberfläche für alle bereits angelegten Jobs.
## Hauptansicht
Filter und Arbeitsmittel:
- Suche (Titel, IMDb, Kontextbegriffe)
- Statusfilter
- Mediumfilter
- Sortierung
- Listen-/Grid-Layout
Jeder Eintrag zeigt auf einen Blick:
- Titel, Jahr, Poster
- Status und Zeitstempel
- RAW-/Output-Verfügbarkeit
- Medien- und ggf. Containerhinweise
## Detaildialog: Was dort zusammenläuft
Der Detaildialog bündelt:
- Metadaten (Film oder Serie)
- Jobstatus und Fehlertexte
- RAW-/Output-Pfade
- Encode-Plan und Trackauswahl
- ausgeführte Kommandodetails
- Prozesslog (`Tail` oder vollständig)
Bei Seriencontainern wird disk-/child-orientiert dargestellt, nicht nur als Einzeljob.
## Nachbearbeitungsaktionen und Wirkung
| Aktion | Typischer Einsatz | Technische Wirkung |
|---|---|---|
| `OMDb neu zuordnen` | falsches Match, Titel/Jahr korrigieren | Metadatenfelder werden neu geschrieben; Folder-Rename wird best effort angestoßen |
| `Review neu starten` | neue Track-/Titelbewertung nötig | Mediainfo/Review wird aus RAW neu aufgebaut |
| `RAW neu encodieren` | neuer Encode aus vorhandenem RAW | startet Encode ohne neuen Laufwerks-Rip |
| `Encode neu starten` | gleiche bestätigte Auswahl erneut fahren | letzter bestätigter Plan wird geladen, optional mit Bereinigung unvollständiger Ausgabe |
| `Retry Rippen` | Rip/Analyse neu anstoßen | neuer Rip-Lauf, inkl. erneuter RAW-Phase |
Löschaktionen im Dialog:
- `RAW löschen`
- `Movie löschen`
- `Beides löschen`
- `Historieneintrag löschen`
## Löschvorschau und selektives Löschen
Vor endgültigem Löschen zeigt Ripster eine Vorschau mit:
- `RAW`-Kandidaten
- `Movie`-/Episoden-Kandidaten
- Related-Scope (Container/Kinder/verbundene Jobs)
Wichtige Punkte:
- Pfade sind selektierbar.
- Für RAW-Löschung muss bei Mehrfachkandidaten mindestens ein RAW-Pfad gewählt werden.
- Schutzlogik verhindert Löschungen außerhalb erlaubter Root-Verzeichnisse.
## Serien- und Multipart-Sicht in der Historie
### Serien
- Container zeigt aggregierten Zustand aus Child-Jobs.
- Disk-/Episode-Aktionen können child-spezifisch ausgeführt werden.
- `Im Ripper öffnen` hilft bei `Bereit zum Encodieren`-Kindern.
### Multipart
- gemeinsamer Container mit Disc-Childs
- Disc-Nummern bleiben pro Child nachvollziehbar
- Delete-Preview kann Related-Pfade gemeinsam auflösen
## Logs sinnvoll nutzen
- `Tail laden (800)` für schnellen Fehlerkontext
- `Vollständiges Log laden` für forensische Analyse
Empfehlung:
1. Erst Tail prüfen.
2. Bei Pfad-/Toolproblemen vollständiges Log laden.
3. Danach passende Wiederanlauf-Aktion wählen.
+34
View File
@@ -0,0 +1,34 @@
# GUI-Seiten
Dieses Kapitel ist das Bedienhandbuch für die Oberflächen im Alltag.
## Seitenüberblick
| Seite | Rolle im Betrieb | Typischer Einsatz |
|---|---|---|
| [Jobs](jobs.md) | zentrale Inbox | Gesamtlage prüfen und in Fachseite springen |
| [Ripper](ripper.md) | Live-Steuerung der Pipeline | Disc-Flow starten, Queue steuern, Review freigeben |
| [Audiobooks](audiobooks.md) | AAX-Spezialflow | Upload, Konfiguration und Encode von Audiobooks |
| [Settings](settings.md) | Konfiguration/Automatisierung | Pfade, Tools, Queue-Limits, Skripte, Cron |
| [Historie](history.md) | Nachbearbeitung und Kontrolle | Logs, Re-Encode, Löschvorschau, Recovery-Aktionen |
| [Converter](converter.md) | dateibasierte Konvertierung | Video/Audio/ISO ohne Disc-Rip verarbeiten |
| [Downloads](downloads.md) | ZIP-Exports | RAW/Output aus Historie bereitstellen |
| [Database (Expert)](database.md) | Recovery-Sicht | orphan RAW finden und importieren |
## Empfohlener Tagesablauf
1. `Jobs`: Statuslage und Auffälligkeiten prüfen.
2. `Ripper` oder `Converter`/`Audiobooks`: neue Arbeit starten.
3. `Historie`: Ergebnisse validieren und ggf. nachbearbeiten.
4. `Downloads`: Exporte für externe Übergabe erzeugen.
5. `Settings`: Regeln und Limits nur kontrolliert anpassen.
## Navigation
Direkt in der Top-Navigation:
- `Jobs`, `Ripper`, `Converter`, `Audiobooks`, `Settings`, `Historie`, `Downloads`
Nur per URL:
- `Database` unter `/database`
+54
View File
@@ -0,0 +1,54 @@
# Jobs
`Jobs` ist die zentrale Inbox über alle Jobarten und dient als schneller Einstieg in den Tagesbetrieb.
## Zweck der Seite
Die Liste vereinheitlicht:
- Disc-/Ripper-Jobs
- Converter-Jobs
- Audiobook-Jobs
Dadurch kannst du unabhängig von der Fachseite zuerst den Gesamtzustand prüfen.
## Filterlogik
### View-Filter
- `Alle Jobs`
- `Ripper-View`
- `Converter-View`
- `Audiobooks`
### Status-Filter
- `Alle`
- `Aktiv`
- `Fehler/Abbruch`
Zusätzlich:
- Freitextsuche
- Paginierung
## Was ein Jobeintrag zeigt
- Job-ID und Titel
- Statusbadge
- Jobtypbadge (z. B. Blu-ray, DVD, Converter Audio, Audiobook)
- Aktualisierungszeit
Die Ansicht wird periodisch aktualisiert und ergänzt sich mit WebSocket-Events.
## Schnellaktion pro Zeile
- `Im Ripper öffnen` für Disc-/Audiobook-nahe Jobs
- `Im Converter öffnen` für Converter-Jobs
So kommst du ohne Umwege in die Oberfläche mit den passenden Detailaktionen.
## Empfohlener Einsatz
1. In `Jobs` Störungen und Auslastung identifizieren.
2. Danach gezielt in `Ripper`, `Converter` oder `Historie` springen.
+168
View File
@@ -0,0 +1,168 @@
# Ripper
Die Seite `Ripper` ist die Live-Steuerung der Pipeline. Hier laufen Disc-Erkennung, Queue-Steuerung, Review und Encode-Start zusammen.
## Seitenaufbau und Betriebslogik
Die Bereiche erscheinen in dieser Reihenfolge:
1. `Hardware Monitoring`
2. `Job Queue`
3. `Skript- / Cron-Status`
4. `Job Übersicht`
5. `Disk-Information`
## 1) Hardware Monitoring
Zeigt kontinuierlich:
- CPU / RAM
- GPU (wenn verfügbar)
- freie Speicherstände konfigurierter Pfade
Nutzen im Betrieb:
- Engpässe vor Jobfehlern erkennen
- Pfadfüllstände vor Start großer Batchs prüfen
Gesteuert über `Settings`:
- `Hardware Monitoring aktiviert`
- `Hardware Monitoring Intervall (ms)`
## 2) Job Queue
Es gibt zwei operative Zonen:
- `Laufende Jobs`
- `Warteschlange`
Mögliche Queue-Einträge:
- Job-Startaktionen (`Start`, `Retry Rippen`, `RAW neu encodieren`, `Encode neu starten`, `Review neu berechnen`, `Audio CD starten`)
- Nicht-Job-Einträge (`Skript`, `Skriptkette`, `Warten`)
Wichtige Regeln:
- Queue-Reihenfolge ist per Drag-and-Drop änderbar.
- `Warten` blockiert nachfolgende Queue-Starts bis kein aktiver Prozess mehr läuft.
- `Skript` und `Skriptkette` werden als Queue-Einträge mitgeführt.
Parallelität kommt aus `Settings`:
- `Max. parallele Film/Video Encodes`
- `Max. parallele Audio CD Jobs`
- `Max. Encodes gesamt`
- optional `Audio CDs: Queue-Reihenfolge überspringen`
## 3) Skript- / Cron-Status
Zeigt Runtime-Aktivitäten:
- laufende Skripte
- laufende Ketten
- Cron-Ausführungen
- letzte abgeschlossene Aktivitäten
Aktionen:
- `Nächster Schritt` bei Ketten
- `Abbrechen`
- `Liste leeren`
## 4) Job Übersicht
Die Jobliste ist der zentrale Arbeitsbereich. Ein Klick öffnet den jeweiligen `Pipeline-Status`.
### Badges und Kontext
Neben Status/Fortschritt zeigt die Liste je nach Job:
- Serienkontext (`Serien-Container`, Staffel/Disk)
- Multipart-Kontext (`Multipart Movie`, Disc-Nr.)
- Queue-/Subjob-Kontext bei Serien-Episoden
### Zustandsabhängige Aktionen
| Zustand | Hauptaktion im Ripper | Ergebnis |
|---|---|---|
| `Medium erkannt`, `Bereit` | `Analyse starten` | startet MakeMKV-Analyse |
| `Metadatenauswahl` | `Metadaten öffnen` | Film/Serie auswählen, Provider festlegen |
| `Warte auf Auswahl` | Playlist/Titel/RAW-Entscheidung bestätigen | setzt Flow fort zur Prüfung |
| `Startbereit` | `Job starten` | startet Rip oder RAW-basierte Prüfung |
| `Bereit zum Encodieren` | `Encoding starten` | startet HandBrake mit bestätigter Auswahl |
| Laufend (`Analyse`, `Rippen`, `Encodieren`) | `Abbrechen` | setzt Job auf `Abgebrochen` |
| `Fehler`, `Abgebrochen` | `Retry Rippen` | neuer Rip-Anlauf |
Zusatzaktionen je nach Zustand und Jobtyp:
- `Review neu starten`
- `Encode neu starten`
- `RAW neu encodieren`
- `Aus Queue löschen`
### Review-Bereich (`Bereit zum Encodieren`)
Hier wird die effektive Encode-Entscheidung festgelegt:
- Titelwahl
- Audio-/Subtitle-Trackselektion
- User-Preset
- Pre-/Post-Encode-Skripte und Ketten
- HandBrake-Kommandovorschau
Ohne Bestätigung dieses Blocks startet kein produktiver Encode.
### RAW-Ordnerphasen (sichtbar über Logs/Details)
Der Ripper arbeitet mit drei RAW-Zuständen:
- `Incomplete_...` während unvollständigem Rip
- `Rip_Complete_...` nach erfolgreich abgeschlossenem Rip, vor Encode
- ohne Prefix nach erfolgreichem Encode
Das ist wichtig für Recovery und Delete-Vorschau.
## 5) Disk-Information
Zeigt aktuelle Laufwerksdaten:
- Device-Pfad
- Modell
- Disc-Label / Mount
Aktionen:
- `Laufwerk neu lesen`
- `Disk neu analysieren`
- Metadaten-Dialog öffnen
Hinweis:
- `Laufwerk neu lesen` ist nicht mehr an einen festen Pipeline-State gebunden.
## Wichtige Dialoge
### Metadaten auswählen
Im Dialog werden Film-/Serienmetadaten bestätigt.
Sonderfälle:
- Film-Duplikat: `Übernahme erzwingen` oder `Multipart movie`
- Serie: `Disc-Nummer` ist Pflicht
### Vorhandenes RAW erkannt
Wenn passendes RAW existiert, fordert der Dialog eine explizite Entscheidung:
- vorhandenes RAW verwenden
- RAW verwerfen/löschen und neu rippen
### Queue-Eintrag einfügen
Du kannst gezielt ab Position einfügen:
- Skript
- Skriptkette
- Wartezeit
+107
View File
@@ -0,0 +1,107 @@
# Settings
Die Seite `Settings` steuert alle Betriebsparameter von Ripster: Pfade, Tools, Queue-Limits, Metadatenquellen, Automatisierung.
## Tab-Überblick
| Tab | Hauptzweck |
|---|---|
| `Konfiguration` | globale und profilspezifische Laufzeitsettings |
| `Scripte` | einzelne Skripte verwalten und testen |
| `Skriptketten` | mehrstufige Abläufe aus Skript/Warten |
| `Encode-Presets` | wiederverwendbare HandBrake-Profile für Review |
| `Cronjobs` | zeitgesteuerte Ausführung von Skript/Kette |
## Tab `Konfiguration`
### Bedienprinzip
1. Werte ändern.
2. `Änderungen speichern`.
3. erst danach sind Werte für neue Aktionen wirksam.
Zusätzliche Bedienhilfen:
- `Neu laden` verwirft lokale Formzustände
- `Änderungen verwerfen` setzt auf zuletzt gespeicherten Stand
- `PushOver Test` validiert Benachrichtigungszugang sofort
### Was wirkt unmittelbar, was erst bei neuem Job?
- Queue-/Parallelität wirkt auf neue Queue-Entscheidungen und Pump-Läufe.
- Tool-/Pfad-/Template-Änderungen wirken vollständig auf neu gestartete Schritte.
- Bereits laufende Prozesse übernehmen Änderungen in der Regel nicht rückwirkend.
### Welche Bereiche im Alltag kritisch sind
| Bereich | Kritisch für |
|---|---|
| `Pfade` | wo RAW, finale Ausgaben, Converter/Audiobook-Dateien landen |
| `Tools` | ob Analyze/Rip/Encode ausführbar sind |
| `Metadaten` | Film-/Serienzuordnung und Episode-Mapping |
| `Queue-Limits` | Durchsatz und Reihenfolgeverhalten |
| `Monitoring` | Sichtbarkeit von Last und Speicherengpässen |
| `Benachrichtigungen` | PushOver-Ereignisse je Pipelinephase |
## Tab `Scripte`
Funktionen:
- anlegen, bearbeiten, löschen
- testen (`Test`)
- sortieren
Testausführung liefert:
- Exit-Code
- Dauer
- stdout/stderr
Wichtig:
- Nur erfolgreiche Skripte sollten in produktive Pre-/Post-Listen übernommen werden.
## Tab `Skriptketten`
Ketten bestehen aus Schritten:
- `Skript`
- `Warten`
Typischer Einsatz:
- externe Hooks vor/nach Encode
- gestaffelte Abläufe mit Pausen
In der Queue erscheinen Ketten als eigene Einträge und werden dort ausgeführt.
## Tab `Encode-Presets`
Ein Preset bündelt:
- optionales HandBrake-Preset (`-Z`)
- optionale Extra-Args
- Medienziel (Universell/Blu-ray/DVD/Sonstiges)
Im Ripper-Review kannst du Presets pro Job auswählen, statt Parameter jedes Mal neu zu setzen.
## Tab `Cronjobs`
Funktionen:
- Cronjob anlegen und bearbeiten
- Quelle wählen (`Skript` oder `Skriptkette`)
- Cron-Ausdruck prüfen
- `Jetzt ausführen`
- Job-Logs ansehen
- Aktivierung/Pushover toggeln
Empfehlung:
1. Skript/Kette manuell testen.
2. Dann Cron aktivieren.
3. Erste automatische Läufe aktiv im Runtime-Status kontrollieren.
## Verbindung zur Einstellungsreferenz
Die vollständige Wirkung jeder einzelnen Einstellung steht in [Einstellungsreferenz](../configuration/settings-reference.md).