1.0.0 docs
This commit is contained in:
@@ -42,13 +42,15 @@ Diese Funktion ist für eine Archivierung von gekauften Titeln. Das System ermit
|
||||
- Ausgabe als M4B, MP3 oder FLAC
|
||||
- Einzeldatei oder kapitelweises Splitten
|
||||
|
||||
### 🔄 Converter
|
||||
### 🔄 Converter (Beta)
|
||||
- Dateibaum und Datei-Explorer für das Converter-RAW-Verzeichnis
|
||||
- Upload, Ordner anlegen, Umbenennen, Verschieben und Löschen
|
||||
- Jobs aus Dateiauswahl erzeugen, Dateien bestehenden Jobs zuweisen oder daraus entfernen
|
||||
- Audio-/Video-Erkennung und automatische RAW-Scans per Polling
|
||||
- TMDB-Metadatenzuordnung für passende Video-Jobs
|
||||
|
||||
Der Converter ist noch nicht vollständig entwickelt und auch noch nicht vollständig geprüft. Er kann verwendet werden, es funktionieren aber ggf. nicht alle Funktionen vollständig!
|
||||
|
||||
### 🛠️ Automation, Betrieb und Verwaltung
|
||||
- Queue mit normalen Jobs sowie zusätzlichen `script`-, `chain`- und `wait`-Einträgen
|
||||
- Pre-/Post-Encode-Skripte und Skript-Ketten
|
||||
|
||||
+2
-2
@@ -114,9 +114,9 @@ Importiert einen RAW-Ordner als Job und triggert optional die Analyse des Import
|
||||
|
||||
---
|
||||
|
||||
## POST /api/history/:id/omdb/assign
|
||||
## POST /api/history/:id/metadata/assign
|
||||
|
||||
Weist OMDb-/Filmdaten nachträglich zu.
|
||||
Weist TMDb-Metadaten nachträglich zu oder aktualisiert bestehende Film-/Serien-Metadaten eines Jobs.
|
||||
|
||||
## POST /api/history/:id/cd/assign
|
||||
|
||||
|
||||
@@ -107,9 +107,9 @@ Erzwingt Rescan für ein konkretes Laufwerk.
|
||||
|
||||
---
|
||||
|
||||
## GET /api/pipeline/omdb/search?q=<query>
|
||||
## GET /api/pipeline/tmdb/movie/search?q=<query>
|
||||
|
||||
OMDb-Titelsuche.
|
||||
TMDb-Filmsuche.
|
||||
|
||||
**Response:**
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@ Features:
|
||||
|
||||
- Job-Liste/Detail inkl. Log-Tail
|
||||
- Orphan-RAW-Erkennung und Import
|
||||
- OMDb-Nachzuweisung
|
||||
- TMDb-Neuzuordnung
|
||||
- Dateilöschung (`raw|movie|both`)
|
||||
- Job-Löschung (`none|raw|movie|both`)
|
||||
|
||||
@@ -222,7 +222,7 @@ Vollständige API-Dokumentation: [Runtime Activities API](../api/runtime-activit
|
||||
- `audnexService.js` (Audnex-API für Audiobook-Metadaten)
|
||||
- `coverArtRecoveryService.js` (Cover-Art-Wiederherstellung)
|
||||
- `thumbnailService.js` (Vorschaubild-Generierung)
|
||||
- `omdbService.js` (OMDb-Metadaten-Suche)
|
||||
- `tmdbService.js` (Film-/Serien-Metadaten-Suche)
|
||||
- `logger.js` (rotierende Datei-Logs)
|
||||
|
||||
---
|
||||
|
||||
@@ -34,7 +34,7 @@ Historie:
|
||||
|
||||
- Job-Liste/Filter
|
||||
- Job-Details + Logs
|
||||
- OMDb-Nachzuweisung
|
||||
- TMDb-Neuzuordnung
|
||||
- Re-Encode/Restart-Workflows
|
||||
|
||||
### `ConverterPage.jsx`
|
||||
@@ -78,7 +78,7 @@ Expert-Modus:
|
||||
## Wichtige Komponenten
|
||||
|
||||
- `PipelineStatusCard.jsx` — Pipeline-Status-Anzeige mit Progress
|
||||
- `MetadataSelectionDialog.jsx` — OMDb-Metadaten-Auswahl
|
||||
- `MetadataSelectionDialog.jsx` — TMDb-Metadaten-Auswahl
|
||||
- `MediaInfoReviewPanel.jsx` — Track-Auswahl-Interface (Video/Audio/Untertitel)
|
||||
- `JobDetailDialog.jsx` — Job-Detailansicht mit Logs
|
||||
- `CronJobsTab.jsx` — Cron-Job-Verwaltung
|
||||
|
||||
@@ -9,7 +9,18 @@ Diese Seite beschreibt **jede** aktuelle Einstellung aus der Settings-GUI: was t
|
||||
- `Was passiert technisch?`: direkte Wirkung im Backend/Pipeline-Verhalten.
|
||||
- `Warum/Wann setzen?`: Praxisgrund inkl. typischem Einsatzzweck.
|
||||
|
||||
## Vollstaendige Feldliste
|
||||
## Wie diese Seite zu lesen ist
|
||||
|
||||
Wenn du nicht von oben bis unten lesen willst, helfen diese typischen Einstiegsfragen:
|
||||
|
||||
- Disc wird nicht sauber erkannt: zuerst `Laufwerk`
|
||||
- falsche Playlist- oder Titelauswahl: zuerst `Tools`
|
||||
- Ausgabe landet im falschen Ordner: zuerst `Pfade`
|
||||
- zu viele oder zu wenige parallele Jobs: zuerst `Tools`
|
||||
- Converter scannt nicht wie erwartet: zuerst `Converter`
|
||||
- Hardware oder Speicher fehlen im Monitoring: zuerst `Monitoring` und `Pfade`
|
||||
|
||||
## Vollständige Feldliste
|
||||
|
||||
## Kategorie: Benachrichtigungen
|
||||
|
||||
@@ -140,6 +151,7 @@ Diese Seite beschreibt **jede** aktuelle Einstellung aus der Settings-GUI: was t
|
||||
| `MakeMKV Key` | `makemkv_registration_key` | `string` | `leer` | Standard | Optionaler Registrierungsschlüssel. Wird beim Speichern nach ~/.MakeMKV/settings.conf synchronisiert. Darunter kann der aktuelle Betakey per API übernommen werden. | Wenn MakeMKV-Features ohne Trial-Limit genutzt werden sollen (inkl. Betakey-Usecase). |
|
||||
| `Mediainfo Kommando` | `mediainfo_command` | `string` | `mediainfo` | Expertenmodus | Pfad oder Befehl für mediainfo. | Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). |
|
||||
| `Minimale Titellänge (Minuten)` | `makemkv_min_length_minutes` | `number` | `60` | Standard | Filtert kurze Titel beim Rip. | Wenn kurze Bonus-/Trailer-Titel automatisch ausgefiltert werden sollen. |
|
||||
| `TMDb Runtime-Abzug für Playlistfilter (%)` | `playlist_tmdb_runtime_subtract_percent` | `number` | `0` | Standard | Zieht optional einen Prozentsatz von der TMDb-Laufzeit ab, damit Ripster bei problematischen Blu-rays leicht kürzere Hauptfassungen trotzdem als Playlist-Kandidaten zulässt. Eine Mindesttoleranz von 2 Minuten nach unten bleibt erhalten. | Wenn die Playlist-Analyse bei einzelnen Discs zu streng ist und der Hauptfilm knapp unter der TMDb-Laufzeit liegt. Beispiel: TMDb sagt 120 Minuten, die Disc liefert 116 bis 118 Minuten, aber die Fassung ist trotzdem korrekt. |
|
||||
| `HandBrake Kommando` | `handbrake_command` | `string` | `HandBrakeCLI` | Expertenmodus | Pfad oder Befehl für HandBrakeCLI. | Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). |
|
||||
| `Encode-Neustart: unvollständige Ausgabe löschen` | `handbrake_restart_delete_incomplete_output` | `boolean` | `true` | Standard | Wenn aktiv, wird bei "Encode neu starten" der bisherige (nicht erfolgreiche) Output vor Start entfernt. | Wenn bei Encode-Neustart alte, unvollstaendige Dateien sicher entfernt werden sollen. |
|
||||
| `Parallele Jobs` | `pipeline_max_parallel_jobs` | `number` | `1` | Standard | Maximale Anzahl parallel laufender Jobs. Weitere Starts landen in der Queue. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. | Wenn Durchsatz und CPU-Last fuer Videojobs ausbalanciert werden sollen. |
|
||||
|
||||
@@ -4,99 +4,148 @@ Diese Seite ist die Betriebs-Checkliste vor dem ersten produktiven Lauf.
|
||||
|
||||
## Ziel der Ersteinrichtung
|
||||
|
||||
Vor dem ersten Job müssen drei Dinge stabil sein:
|
||||
Vor dem ersten Job sollten fünf Bereiche sauber gesetzt sein:
|
||||
|
||||
1. Pfade stimmen (RAW, Output, Logs)
|
||||
2. Tools sind aufrufbar (MakeMKV, HandBrake, MediaInfo)
|
||||
3. Metadatenzugänge funktionieren (OMDb, optional TMDb/MusicBrainz)
|
||||
1. Pfade und Templates
|
||||
2. Laufwerk und Disc-Erkennung
|
||||
3. Metadatenzugang über TMDb
|
||||
4. Encode-Standards und Queue-Regeln
|
||||
5. optionale Automatisierung und Benachrichtigungen
|
||||
|
||||
## Empfohlene Reihenfolge
|
||||
|
||||
### 1) Basis in `Settings -> Konfiguration`
|
||||
### 1. Basis in `Settings -> Konfiguration`
|
||||
|
||||
Setze zuerst:
|
||||
Prüfe zuerst diese Kernfelder:
|
||||
|
||||
- `Raw-Ordner` und `Film-/Serien-Ordner`
|
||||
- RAW- und Zielordner für Blu-ray, DVD, CD, Audiobooks und Converter
|
||||
- `Log Ordner`
|
||||
- `TMDb Read Access Token`
|
||||
- `MakeMKV Kommando`, `HandBrake Kommando`, `Mediainfo Kommando`
|
||||
- `OMDb API Key`
|
||||
- `FFmpeg Kommando`, `FFprobe Kommando`, `cdparanoia Kommando`, `mkvmerge Kommando`, falls du die jeweiligen Workflows nutzt
|
||||
|
||||
Dann speichern.
|
||||
Danach speichern.
|
||||
|
||||
### 2) Profile pro Medium festziehen
|
||||
### 2. Pfade und Templates bewusst festlegen
|
||||
|
||||
Ripster löst viele Werte profilspezifisch auf (`bluray`, `dvd`, `cd`, `audiobook`).
|
||||
Wichtig für den Alltag:
|
||||
|
||||
Pflichtprüfung:
|
||||
- Film-Workflows nutzen `raw_dir_*`, `movie_dir_*` und `output_template_*`
|
||||
- Serien-Workflows nutzen zusätzlich `raw_dir_*_series`, `series_dir_*` und die Episode-/Multi-Episode-Templates
|
||||
- Audiobooks nutzen `raw_dir_audiobook`, `movie_dir_audiobook`, `audiobook_raw_template`, `output_template_audiobook`, `output_chapter_template_audiobook`
|
||||
- Converter nutzt `converter_raw_dir`, `converter_movie_dir`, `converter_audio_dir` und die beiden Converter-Templates
|
||||
- Downloads nutzen `download_dir`
|
||||
|
||||
- RAW-Pfade je Profil
|
||||
- Output-Pfade je Profil
|
||||
- HandBrake-Preset je Profil
|
||||
- Output-Templates je Profil
|
||||
Wenn du auf NAS, USB oder andere Benutzer/Gruppen schreiben willst, prüfe auch die jeweiligen `*_owner`-Felder.
|
||||
|
||||
Für Serien zusätzlich:
|
||||
### 3. Laufwerk und automatische Erkennung prüfen
|
||||
|
||||
- `RAW-Ordner (Blu-ray/DVD Serie)`
|
||||
- `Serien-Ordner (Blu-ray/DVD)`
|
||||
- Serien-Templates (Episode/Multi-Episode)
|
||||
Relevant:
|
||||
|
||||
### 3) Queue-Verhalten definieren
|
||||
- `Laufwerksmodus`
|
||||
- `Explizite Laufwerke`, falls du nicht mit Auto-Discovery arbeiten willst
|
||||
- `Automatische Disk-Erkennung`
|
||||
- `Polling Intervall (ms)` im Expertenmodus
|
||||
- `Laufwerk nach Rip auswerfen`
|
||||
|
||||
Stelle ein:
|
||||
Empfehlung:
|
||||
|
||||
- `Max. parallele Film/Video Encodes`
|
||||
- Einzelnes Standardlaufwerk: `auto`
|
||||
- mehrere stabile Laufwerke oder ungewöhnliche Device-Mappings: `Explizite Laufwerke`
|
||||
|
||||
### 4. TMDb und Metadatenverhalten festlegen
|
||||
|
||||
Relevant:
|
||||
|
||||
- `TMDb Read Access Token`
|
||||
- `Film-Sprache`
|
||||
- `Fallback Sprache`
|
||||
- `Coverart-Nachladen aktiv`
|
||||
- `Coverart-Prüfintervall (Stunden)`
|
||||
- `NFO nach Encode erzeugen`
|
||||
|
||||
Diese Einstellungen wirken direkt in Metadatensuche, Serienzuordnung, Nachpflege von Covern und im finalen Output.
|
||||
|
||||
### 5. Encode- und Review-Standards festlegen
|
||||
|
||||
Für Video-Workflows besonders wichtig:
|
||||
|
||||
- `Minimale Titellänge (Minuten)`
|
||||
- `TMDb Runtime-Abzug für Playlistfilter (%)`
|
||||
- `HandBrake Preset` und `HandBrake Extra Args` je Medium
|
||||
- `Review Audio-Sprachen (...)`
|
||||
- `Review UT-Sprachen (...)`
|
||||
- `Ausgabeformat`
|
||||
|
||||
Praxis:
|
||||
|
||||
- `Minimale Titellänge` filtert Bonusmaterial früh weg
|
||||
- `TMDb Runtime-Abzug ...` lockert bei problematischen Blu-rays die Laufzeitprüfung der Playlist-Kandidaten
|
||||
- Review-Sprachen bestimmen, welche Audio-/Untertitelspuren in der Review schon vorausgewählt sind
|
||||
|
||||
### 6. Queue-Verhalten definieren
|
||||
|
||||
Stelle diese vier Felder bewusst ein:
|
||||
|
||||
- `Parallele Jobs`
|
||||
- `Max. parallele Audio CD Jobs`
|
||||
- `Max. Encodes gesamt`
|
||||
- optional `Audio CDs: Queue-Reihenfolge überspringen`
|
||||
- `Max. Encodes gesamt (medienunabhängig)`
|
||||
- `Audio CDs: Queue-Reihenfolge überspringen`
|
||||
|
||||
Damit steuerst du Durchsatz, Priorität und Lastverteilung.
|
||||
Damit steuerst du, wie aggressiv Ripster mehrere Jobs gleichzeitig startet.
|
||||
|
||||
### 4) Metadatenquellen absichern
|
||||
### 7. Optional: User-Presets und Standard-Zuordnungen
|
||||
|
||||
Film:
|
||||
Unter `Settings -> Encode-Presets` kannst du:
|
||||
|
||||
- OMDb-Key prüfen
|
||||
- eigene HandBrake-User-Presets anlegen
|
||||
- Standard-Zuordnungen für `Blu-ray Film`, `Blu-ray Serie`, `DVD Film`, `DVD Serie` setzen
|
||||
|
||||
Serien:
|
||||
Diese Defaults wirken später in der Review automatisch vorbefüllend.
|
||||
|
||||
- TMDb Read Access Token setzen
|
||||
- Sprache/Fallback-Sprachen festlegen
|
||||
### 8. Optional: Benachrichtigungen
|
||||
|
||||
CD/Audiodaten:
|
||||
Prüfe:
|
||||
|
||||
- `MusicBrainz aktiviert` nach Bedarf
|
||||
- `PushOver aktiviert`
|
||||
- Token/User/optional Device
|
||||
- Event-Toggles wie `Bei manueller Auswahl senden`, `Bei Rip-Start senden`, `Bei Erfolg senden`
|
||||
|
||||
### 5) Optional: Benachrichtigungen
|
||||
Danach in `Settings` den Button `PushOver Test` ausführen.
|
||||
|
||||
- PushOver-Zugangsdaten setzen
|
||||
- `PushOver Test` ausführen
|
||||
- Event-Toggles pro Phase prüfen
|
||||
### 9. Optional: Automatisierung
|
||||
|
||||
### 6) Optional: Automatisierung
|
||||
Erst wenn die Grundkonfiguration stabil ist:
|
||||
|
||||
1. Skripte testen
|
||||
2. Skriptketten bauen/testen
|
||||
3. Cronjobs erst danach aktivieren
|
||||
1. Skripte anlegen und testen
|
||||
2. Skriptketten aufbauen
|
||||
3. Cronjobs aktivieren
|
||||
|
||||
## Funktionsprüfung (Kurztest)
|
||||
## Funktionsprüfung
|
||||
|
||||
1. Disc in `Ripper` erkennen lassen.
|
||||
2. `Analyse starten`.
|
||||
3. Metadaten übernehmen.
|
||||
4. Bis `Bereit zum Encodieren` laufen.
|
||||
5. Encode starten und Abschluss in `Historie` prüfen.
|
||||
Ein sinnvoller Kurztest:
|
||||
|
||||
1. Disc in `Ripper` erkennen lassen
|
||||
2. `Analyse starten`
|
||||
3. TMDb-Metadaten übernehmen
|
||||
4. ggf. Playlist-/RAW-Entscheidung durchlaufen
|
||||
5. bis `Bereit zum Encodieren` kommen
|
||||
6. Encode starten
|
||||
7. Ergebnis in `Historie` prüfen
|
||||
|
||||
## Typische Konfigurationsfehler
|
||||
|
||||
| Symptom | Häufige Ursache |
|
||||
|---|---|
|
||||
| Job bleibt früh auf Fehler | Toolkommando falsch oder nicht im PATH |
|
||||
| RAW/Output landet am falschen Ort | Profilpfade nicht gesetzt, Fallback greift |
|
||||
| Serienausgabe landet bei Filmen | Serienpfade/Serientemplates fehlen |
|
||||
| Queue verhält sich unerwartet | Gesamtlimit und Lane-Limits widersprechen sich |
|
||||
| Disc wird nicht erkannt | Laufwerksmodus oder Auto-Erkennung passt nicht |
|
||||
| Playlist-Auswahl wirkt unplausibel | `Minimale Titellänge` oder `TMDb Runtime-Abzug ...` ist zu streng/zu locker |
|
||||
| falsche Spuren sind in der Review vorausgewählt | Review-Sprachfilter oder HandBrake-Args greifen unerwartet |
|
||||
| Ausgabe landet am falschen Ort | Profilpfade oder Templates greifen über Fallback |
|
||||
| Queue verhält sich unerwartet | `Parallele Jobs`, CD-Limit und Gesamtlimit widersprechen sich |
|
||||
|
||||
## Weiter
|
||||
|
||||
- [Erster Lauf](quickstart.md)
|
||||
- [GUI-Seiten](../gui/index.md)
|
||||
- [Workflows aus Nutzersicht](../workflows/index.md)
|
||||
- [Alle Einstellungen](../configuration/settings-reference.md)
|
||||
|
||||
@@ -1,107 +1,117 @@
|
||||
# Installation
|
||||
|
||||
Die empfohlene Installation läuft über `install.sh` und richtet Ripster vollständig ein.
|
||||
Die empfohlene Installation startet immer über `setup.sh`. `setup.sh` lädt das passende `install.sh` aus dem gewünschten Branch und übergibt alle weiteren Parameter unverändert an den eigentlichen Installer.
|
||||
|
||||
Du musst dafür **keine Tools manuell vorinstallieren**. Das Skript installiert die benötigten Abhängigkeiten automatisch, sofern sie nicht explizit mit `--no-*` übersprungen werden.
|
||||
Wichtig:
|
||||
|
||||
## Unterstützte Systeme und Anforderungen
|
||||
- Standard-Einstieg: `setup.sh`
|
||||
- kein `curl | bash`
|
||||
- du musst die Tools nicht manuell vorinstallieren, sofern du sie nicht bewusst mit `--no-*` auslässt
|
||||
|
||||
- unterstützt laut Script: `debian`, `ubuntu`, `linuxmint`, `pop`
|
||||
- Ausführung als `root` (oder via `sudo`)
|
||||
## Voraussetzungen
|
||||
|
||||
- unterstütztes Linux-System
|
||||
- Root-Rechte oder `sudo`
|
||||
- Internetzugang während der Installation
|
||||
|
||||
## Schritt-für-Schritt
|
||||
Der Installer erkennt aktuell:
|
||||
|
||||
### 1. Installationsskript herunterladen
|
||||
- Debian
|
||||
- Ubuntu
|
||||
- Linux Mint
|
||||
- Pop!_OS
|
||||
|
||||
## Standardinstallation
|
||||
|
||||
```bash
|
||||
wget -qO install.sh https://raw.githubusercontent.com/Mboehmlaender/ripster/main/install.sh
|
||||
wget -qO setup.sh https://raw.githubusercontent.com/Mboehmlaender/ripster/main/setup.sh
|
||||
bash setup.sh
|
||||
```
|
||||
|
||||
### 2. Installation ausführen
|
||||
Ohne `--branch` fragt `setup.sh` interaktiv nach dem gewünschten Branch.
|
||||
|
||||
Die typischen Branches sind:
|
||||
|
||||
- `main`: stabiles Release
|
||||
- `dev`: aktueller Entwicklungsstand
|
||||
|
||||
## Installation mit Branch oder Optionen
|
||||
|
||||
Beispiele:
|
||||
|
||||
```bash
|
||||
sudo bash install.sh
|
||||
bash setup.sh --branch main
|
||||
bash setup.sh --branch dev
|
||||
bash setup.sh --branch dev --dir /opt/ripster --user ripster --port 3001 --host 192.168.1.10
|
||||
```
|
||||
|
||||
Während der Installation wählst du den HandBrake-Modus:
|
||||
`setup.sh` wertet selbst nur `--branch` aus. Alles andere übernimmt `install.sh`.
|
||||
|
||||
- `1` Standard (Paketinstallation)
|
||||
- `2` GPU/NVDEC (gebündeltes Binary)
|
||||
## Wichtige Optionen von `install.sh`
|
||||
|
||||
### 3. Dienststatus prüfen
|
||||
| Option | Default | Zweck |
|
||||
|---|---|---|
|
||||
| `--branch <branch>` | `dev` | installiert genau diesen Git-Branch |
|
||||
| `--dir <pfad>` | `/opt/ripster` | Installationsverzeichnis |
|
||||
| `--user <benutzer>` | `ripster` | Systembenutzer für den Dienst |
|
||||
| `--port <port>` | `3001` | Backend-Port |
|
||||
| `--host <hostname|ip>` | automatisch ermittelte Host-IP | Hostname/IP für Webzugriff und CORS |
|
||||
| `--no-makemkv` | aus | MakeMKV nicht installieren |
|
||||
| `--no-handbrake` | aus | HandBrake nicht installieren |
|
||||
| `--no-nginx` | aus | nginx-Setup überspringen |
|
||||
| `--no-system-deps` | aus | Systemabhängigkeiten nicht nachinstallieren |
|
||||
| `--reinstall` | aus | bestehende Installation aktualisieren |
|
||||
|
||||
## Was der Installer einrichtet
|
||||
|
||||
Typischer Ablauf:
|
||||
|
||||
1. Betriebssystem, Root-Rechte und Host prüfen
|
||||
2. Systemabhängigkeiten installieren
|
||||
3. Node.js 20 sicherstellen
|
||||
4. optional MakeMKV installieren
|
||||
5. optional HandBrakeCLI installieren
|
||||
6. optional nginx konfigurieren
|
||||
7. Repository nach `--dir` klonen oder aktualisieren
|
||||
8. Backend-/Frontend-Abhängigkeiten installieren
|
||||
9. Frontend bauen
|
||||
10. `backend/.env` und Laufzeitverzeichnisse vorbereiten
|
||||
11. `ripster-backend.service` anlegen und starten
|
||||
|
||||
## Dienst prüfen
|
||||
|
||||
```bash
|
||||
sudo systemctl status ripster-backend
|
||||
```
|
||||
|
||||
### 4. Weboberfläche öffnen
|
||||
|
||||
- mit nginx (Standard): `http://<Server-IP>`
|
||||
- ohne nginx (`--no-nginx`): API auf `http://<Server-IP>:3001/api`
|
||||
|
||||
## Was `install.sh` konkret einrichtet
|
||||
|
||||
1. prüft Betriebssystem, Root-Rechte und ermittelt Host/IP
|
||||
2. aktualisiert Paketquellen und installiert Basispakete (`curl`, `wget`, `git`, `mediainfo`, `udev` ...)
|
||||
3. installiert Node.js 20 (falls nicht passend vorhanden)
|
||||
4. installiert optional MakeMKV (Build aus den offiziellen Quellen)
|
||||
5. installiert optional HandBrakeCLI (Standard oder GPU/NVDEC)
|
||||
6. installiert optional nginx
|
||||
7. legt den Systembenutzer `ripster` an (ohne Login-Shell, ohne Home) und ergänzt Gruppen (`cdrom`, `optical`, `disk`, `video`, `render`, falls vorhanden)
|
||||
8. klont das Repository nach `/opt/ripster` (oder aktualisiert bei `--reinstall`)
|
||||
9. legt Verzeichnisse an:
|
||||
- `/opt/ripster/backend/data`
|
||||
- `/opt/ripster/backend/logs`
|
||||
- `/opt/ripster/backend/data/output/raw`
|
||||
- `/opt/ripster/backend/data/output/movies`
|
||||
- `/opt/ripster/backend/data/logs`
|
||||
10. installiert npm-Abhängigkeiten (Root, Backend, Frontend) und baut das Frontend
|
||||
11. erzeugt `backend/.env` (bei `--reinstall` bleibt bestehende `.env` erhalten)
|
||||
12. setzt Rechte/Besitz und erstellt bei sudo-Installation zusätzlich `~/.MakeMKV` für den aufrufenden Benutzer
|
||||
13. erzeugt und startet `ripster-backend.service`
|
||||
14. konfiguriert und startet nginx (falls nicht übersprungen)
|
||||
|
||||
## Wichtige Optionen
|
||||
|
||||
| Option | Default laut Script | Zweck |
|
||||
|---|---|---|
|
||||
| `--branch <branch>` | `dev` | Branch für die Installation |
|
||||
| `--dir <pfad>` | `/opt/ripster` | Installationsverzeichnis |
|
||||
| `--user <benutzer>` | `ripster` | Service-Benutzer |
|
||||
| `--port <port>` | `3001` | Backend-Port |
|
||||
| `--host <hostname>` | automatisch ermittelte Host-IP | Hostname/IP für Webzugriff/CORS |
|
||||
| `--no-makemkv` | aus | MakeMKV-Installation überspringen |
|
||||
| `--no-handbrake` | aus | HandBrake-Installation überspringen |
|
||||
| `--no-nginx` | aus | nginx-Setup überspringen |
|
||||
| `--reinstall` | aus | bestehende Installation aktualisieren |
|
||||
|
||||
Beispiele:
|
||||
Typische Aufrufe im Betrieb:
|
||||
|
||||
```bash
|
||||
sudo bash install.sh --branch dev
|
||||
sudo bash install.sh --port 8080 --host ripster.local
|
||||
sudo bash install.sh --reinstall
|
||||
sudo journalctl -u ripster-backend -f
|
||||
sudo systemctl restart ripster-backend
|
||||
```
|
||||
|
||||
## Betrieb im Alltag
|
||||
## Update einer bestehenden Installation
|
||||
|
||||
Standard:
|
||||
|
||||
```bash
|
||||
# Logs live ansehen
|
||||
sudo journalctl -u ripster-backend -f
|
||||
|
||||
# Dienst neu starten
|
||||
sudo systemctl restart ripster-backend
|
||||
|
||||
# Update aus bestehender Installation
|
||||
sudo bash /opt/ripster/install.sh --reinstall
|
||||
```
|
||||
|
||||
## Häufige Stolperstellen
|
||||
Wenn die Installation mit abweichenden Kernparametern eingerichtet wurde, dieselben Parameter wieder mitgeben:
|
||||
|
||||
- Laufwerk nicht zugreifbar: Laufwerksrechte/Gruppen prüfen
|
||||
- CLI-Tool fehlt wegen `--no-*`: Tool nachinstallieren oder Befehl in Settings korrigieren
|
||||
- UI nicht erreichbar: nginx-Status und Firewall prüfen
|
||||
```bash
|
||||
sudo bash /opt/ripster/install.sh --reinstall --dir /opt/ripster --user ripster --port 3001 --host 192.168.1.10
|
||||
```
|
||||
|
||||
Alternativ kannst du auch erneut über `setup.sh` gehen:
|
||||
|
||||
```bash
|
||||
sudo bash /opt/ripster/setup.sh --reinstall
|
||||
```
|
||||
|
||||
`--reinstall` aktualisiert die Installation, behält aber die persistenten Daten der bestehenden Instanz.
|
||||
|
||||
## Danach weiter
|
||||
|
||||
|
||||
@@ -1,19 +1,31 @@
|
||||
# Voraussetzungen
|
||||
|
||||
Die Voraussetzungen hängen davon ab, **wie** du Ripster betreibst.
|
||||
Die Voraussetzungen hängen davon ab, ob du Ripster produktiv installieren oder lokal entwickeln willst.
|
||||
|
||||
## Produktionsbetrieb mit `install.sh` (Standard)
|
||||
## Produktionsbetrieb mit `setup.sh`
|
||||
|
||||
Für den normalen Betrieb sind nur wenige Punkte vorab nötig.
|
||||
Für den normalen Betrieb brauchst du nur die Basisvoraussetzungen. Die eigentlichen Tools werden vom Installer eingerichtet, sofern du sie nicht bewusst mit `--no-*` überspringst.
|
||||
|
||||
### Pflicht
|
||||
|
||||
- unterstütztes Linux-System (laut Script: Debian, Ubuntu, Linux Mint, Pop!_OS)
|
||||
- `root`-Rechte
|
||||
- unterstütztes Linux-System
|
||||
- Root-Rechte oder `sudo`
|
||||
- Internetzugang während der Installation
|
||||
- optisches Laufwerk für Disc-Betrieb
|
||||
- optisches Laufwerk, wenn du Disc-Workflows nutzen willst
|
||||
|
||||
`install.sh` installiert die benötigten Tools selbst (u. a. Node.js, MakeMKV, HandBrakeCLI, MediaInfo), sofern sie nicht explizit per `--no-*` übersprungen werden.
|
||||
Der Installer unterstützt aktuell:
|
||||
|
||||
- Debian
|
||||
- Ubuntu
|
||||
- Linux Mint
|
||||
- Pop!_OS
|
||||
|
||||
Standard-Einstieg:
|
||||
|
||||
```bash
|
||||
wget -qO setup.sh https://raw.githubusercontent.com/Mboehmlaender/ripster/main/setup.sh
|
||||
bash setup.sh
|
||||
```
|
||||
|
||||
### Laufwerk kurz prüfen
|
||||
|
||||
@@ -22,27 +34,25 @@ ls /dev/sr*
|
||||
lsblk | grep rom
|
||||
```
|
||||
|
||||
Wenn nötig Rechte setzen (Beispiel):
|
||||
|
||||
```bash
|
||||
sudo chmod a+rw /dev/sr0
|
||||
```
|
||||
|
||||
### Optional vorab
|
||||
|
||||
- OMDb API-Key (kann auch nach Installation in den `Settings` gesetzt werden)
|
||||
- PushOver-Zugangsdaten (optional)
|
||||
- TMDb Read Access Token für Film-/Serien-Metadaten
|
||||
- PushOver-Zugangsdaten für Benachrichtigungen
|
||||
|
||||
## Entwicklungsmodus (nur für Dev)
|
||||
Beides kann auch erst nach der Installation in `Settings` gesetzt werden.
|
||||
|
||||
## Entwicklungsmodus
|
||||
|
||||
Wenn du lokal entwickelst (`./start.sh`, `npm run dev`), gelten zusätzliche Voraussetzungen:
|
||||
|
||||
- Node.js >= 20.19.0
|
||||
- Node.js `>= 20.19.0`
|
||||
- `makemkvcon`, `HandBrakeCLI`, `mediainfo` im `PATH`
|
||||
|
||||
Details: [Entwicklungsumgebung](../deployment/development.md)
|
||||
|
||||
## Abschluss-Checkliste
|
||||
|
||||
- [ ] Produktionsbetrieb: Linux + root + Internet + Laufwerk vorhanden
|
||||
- [ ] Dev-Modus (nur falls benötigt): Node.js und CLI-Tools verfügbar
|
||||
- [ ] Linux + Root/Sudo + Internet vorhanden
|
||||
- [ ] optisches Laufwerk vorhanden, falls Disc-Ripping genutzt werden soll
|
||||
- [ ] TMDb/PushOver-Zugangsdaten liegen bereit, falls diese Funktionen sofort genutzt werden sollen
|
||||
- [ ] im Dev-Modus zusätzlich Node.js und CLI-Tools lokal verfügbar
|
||||
|
||||
@@ -1,19 +1,25 @@
|
||||
# Erster Lauf
|
||||
|
||||
Dieser Ablauf führt einen vollständigen Disc-Job von Erkennung bis fertiger Datei durch.
|
||||
Dieser Ablauf führt einen typischen Disc-Job von Erkennung bis fertiger Datei durch.
|
||||
|
||||
## 1) Disc erkennen
|
||||
## 1. Disc erkennen
|
||||
|
||||
1. `Ripper` öffnen.
|
||||
2. Disc einlegen.
|
||||
3. Auf `Medium erkannt` warten.
|
||||
1. `Ripper` öffnen
|
||||
2. Disc einlegen
|
||||
3. auf `Medium erkannt` warten
|
||||
|
||||
Prüfen:
|
||||
|
||||
- `Disk-Information` zeigt Device/Label.
|
||||
- Falls nicht: `Laufwerk neu lesen`.
|
||||
- `Disk-Information` zeigt Device, Label und Laufwerksstatus
|
||||
- falls nicht: `Laufwerk neu lesen`
|
||||
|
||||
## 2) Analyse starten
|
||||
Relevante Settings:
|
||||
|
||||
- `Laufwerksmodus`
|
||||
- `Automatische Disk-Erkennung`
|
||||
- `Polling Intervall (ms)`
|
||||
|
||||
## 2. Analyse starten
|
||||
|
||||
Aktion:
|
||||
|
||||
@@ -22,69 +28,124 @@ Aktion:
|
||||
Erwartung:
|
||||
|
||||
- Status `Analyse`
|
||||
- danach Metadaten-Dialog
|
||||
- danach der Metadaten-Dialog
|
||||
|
||||
## 3) Metadaten bestätigen
|
||||
Relevantes Setting:
|
||||
|
||||
- `Minimale Titellänge (Minuten)` beeinflusst bereits, welche Titel/Playlists Ripster später als relevant betrachtet
|
||||
|
||||
## 3. Metadaten in TMDb bestätigen
|
||||
|
||||
Im Dialog:
|
||||
|
||||
1. Treffer suchen/auswählen.
|
||||
2. Bei Serie zusätzlich Disc-Nummer setzen.
|
||||
3. `Auswahl übernehmen`.
|
||||
1. Treffer suchen oder filtern
|
||||
2. Film oder Serie auswählen
|
||||
3. bei Serien zusätzlich `Disc-Nummer` setzen
|
||||
4. `Auswahl übernehmen`
|
||||
|
||||
Mögliche Abzweigungen:
|
||||
|
||||
- Duplikatfilm -> `Übernahme erzwingen` oder `Multipart movie`
|
||||
- vorhandenes RAW -> Entscheidungsdialog (weiterverwenden oder neu rippen)
|
||||
- Duplikatfilm: `Übernahme erzwingen` oder `Multipart movie`
|
||||
- vorhandenes RAW: Entscheidungsdialog `weiterverwenden` oder `neu rippen`
|
||||
|
||||
## 4) Rip/Review-Phase
|
||||
Relevante Settings:
|
||||
|
||||
Normalfall:
|
||||
- `TMDb Read Access Token`
|
||||
- `Film-Sprache`
|
||||
- `Fallback Sprache`
|
||||
|
||||
- `Startbereit` -> `Rippen` -> `Mediainfo-Pruefung`
|
||||
## 4. RAW- und Playlist-Entscheidungen
|
||||
|
||||
Mögliche Alternativen:
|
||||
Je nach Disc-Situation geht es jetzt unterschiedlich weiter.
|
||||
|
||||
- vorhandenes RAW: direkter Sprung in Prüfung
|
||||
- Blu-ray/DVD-Entscheidung nötig: `Warte auf Auswahl` für Playlist/Titel
|
||||
### Normalfall
|
||||
|
||||
## 5) Encode-Review abschließen
|
||||
`Startbereit` -> `Rippen` -> `Mediainfo-Prüfung`
|
||||
|
||||
Bei `Bereit zum Encodieren`:
|
||||
### Vorhandenes RAW
|
||||
|
||||
- Titel festlegen
|
||||
- Audio-/Subtitle-Spuren prüfen
|
||||
- optional Preset auswählen
|
||||
- optional Pre-/Post-Skripte wählen
|
||||
Kein neuer Rip, sondern erst eine Entscheidung:
|
||||
|
||||
- vorhandenes RAW weiterverwenden
|
||||
- RAW löschen und Rip neu starten
|
||||
- bei passenden Film-Konstellationen optional Multipart mit Orphan-RAW
|
||||
|
||||
### Playlist- oder Titelauswahl erforderlich
|
||||
|
||||
Bei bestimmten Blu-ray-/DVD-Fällen erscheint `Warte auf Auswahl`.
|
||||
|
||||
Dann bestätigst du:
|
||||
|
||||
- eine Playlist
|
||||
- oder einen/mehrere HandBrake-Titel
|
||||
|
||||
Relevante Settings:
|
||||
|
||||
- `Minimale Titellänge (Minuten)`
|
||||
- `TMDb Runtime-Abzug für Playlistfilter (%)`
|
||||
|
||||
## 5. Encode-Review abschließen
|
||||
|
||||
Bei `Bereit zum Encodieren` prüfst du:
|
||||
|
||||
- Titelwahl
|
||||
- Audio-Spuren
|
||||
- Untertitel
|
||||
- User-Preset oder HandBrake-Preset
|
||||
- Pre-/Post-Encode-Skripte und Ketten
|
||||
|
||||
Dann:
|
||||
|
||||
- `Encoding starten`
|
||||
|
||||
## 6) Encoding überwachen
|
||||
Relevante Settings:
|
||||
|
||||
- `HandBrake Preset` und `HandBrake Extra Args` je Medium
|
||||
- `Review Audio-Sprachen (...)`
|
||||
- `Review UT-Sprachen (...)`
|
||||
- `Ausgabeformat`
|
||||
- Standard-Zuordnungen unter `Settings -> Encode-Presets`
|
||||
|
||||
## 6. Encoding überwachen
|
||||
|
||||
Während `Encodieren`:
|
||||
|
||||
- Fortschritt/ETA im Ripper
|
||||
- Queue- und Runtime-Status beobachten
|
||||
- optional Logkontrolle in Historie
|
||||
- Queue-Status beobachten
|
||||
- bei Bedarf `Hardware`-Ansicht öffnen
|
||||
|
||||
## 7) Ergebnis verifizieren
|
||||
Relevante Settings:
|
||||
|
||||
- `Parallele Jobs`
|
||||
- `Max. parallele Audio CD Jobs`
|
||||
- `Max. Encodes gesamt (medienunabhängig)`
|
||||
- `Hardware Monitoring aktiviert`
|
||||
- `Hardware Monitoring Intervall (ms)`
|
||||
|
||||
## 7. Ergebnis verifizieren
|
||||
|
||||
Nach `Fertig`:
|
||||
|
||||
1. `Historie` öffnen.
|
||||
2. Jobdetail prüfen.
|
||||
3. Output-Pfad und Log plausibilisieren.
|
||||
1. `Historie` öffnen
|
||||
2. Jobdetail prüfen
|
||||
3. Output-Pfad und Log kontrollieren
|
||||
|
||||
Kontrollpunkte:
|
||||
|
||||
- finale Datei am erwarteten Template-Pfad
|
||||
- RAW-Ordnerzustand finalisiert (kein `Incomplete_`)
|
||||
- finale Datei liegt am erwarteten Template-Pfad
|
||||
- RAW-Ordner ist finalisiert
|
||||
- optional `.nfo` wurde erzeugt, falls aktiviert
|
||||
|
||||
## 8) Typische Folgeaktionen
|
||||
Relevante Settings:
|
||||
|
||||
- falsche Metadaten: `OMDb neu zuordnen`
|
||||
- `output_template_*`
|
||||
- `series_dir_*` und Serien-Templates
|
||||
- `generate_nfo_after_encode`
|
||||
|
||||
## 8. Typische Folgeaktionen
|
||||
|
||||
- falsche TMDb-Zuordnung: `TMDb neu zuweisen`
|
||||
- andere Trackauswahl: `Review neu starten`
|
||||
- erneuter Encode aus RAW: `RAW neu encodieren`
|
||||
- gleicher Plan erneut: `Encode neu starten`
|
||||
- Rip erneut versuchen: `Retry Rippen`
|
||||
|
||||
+57
-31
@@ -9,74 +9,100 @@ Die Oberfläche besteht aus zwei Hauptbereichen:
|
||||
1. `Audiobooks Upload`
|
||||
2. `Audiobook Jobs`
|
||||
|
||||
## 1) Audiobooks Upload
|
||||
## 1. Audiobooks Upload
|
||||
|
||||
Der Upload akzeptiert ausschließlich `.aax`.
|
||||
|
||||
### Bedienung
|
||||
|
||||
- Datei auswählen (Button oder Drag-and-Drop)
|
||||
- Datei auswählen oder per Drag-and-Drop ablegen
|
||||
- Upload starten
|
||||
- Auswahl entfernen oder laufenden Upload abbrechen
|
||||
|
||||
Während des Uploads zeigt die UI:
|
||||
|
||||
- Prozentfortschritt
|
||||
- übertragene/gesamte Bytes
|
||||
- Statusmeldung (z. B. „Job vorbereitet“, „in Queue eingereiht“)
|
||||
- übertragene und gesamte Bytes
|
||||
- Statusmeldung
|
||||
|
||||
### Ablauf nach erfolgreichem Upload
|
||||
|
||||
- AAX wird serverseitig geprüft
|
||||
- Audiobook-Job wird angelegt
|
||||
- Job landet je nach Pipelinezustand in `READY_TO_START`, startet direkt oder wird eingereiht
|
||||
- die AAX-Datei wird geprüft
|
||||
- Ripster versucht Metadata, Kapitel und Activation-Bytes-Kontext aufzubauen
|
||||
- ein Audiobook-Job wird angelegt
|
||||
- der Job startet direkt oder wird in die Queue eingereiht
|
||||
|
||||
## 2) Audiobook Jobs
|
||||
## 2. Audiobook Jobs
|
||||
|
||||
Gezeigt werden aktive Jobs (nicht abgeschlossene). Fertige Jobs liegen in der `Historie`.
|
||||
Die Seite zeigt aktive Jobs. Abgeschlossene Jobs findest du in der `Historie`.
|
||||
|
||||
Jeder Job kann eingeklappt/ausgeklappt werden und zeigt:
|
||||
Ein Job kann eingeklappt oder ausgeklappt werden und zeigt:
|
||||
|
||||
- Titel-/Metadatenblock (Titel, Autor, Sprecher, Jahr, Kapitel)
|
||||
- Statusbadge
|
||||
- Fortschritt/ETA
|
||||
- ggf. Kapitel-Fortschritt
|
||||
- Titel, Autor, Sprecher, Jahr
|
||||
- Kapitelanzahl
|
||||
- Fortschritt und ETA
|
||||
- bei Split-Ausgabe den Kapitelstatus
|
||||
|
||||
### Konfigurierbare Job-Parameter
|
||||
## Konfigurierbare Job-Parameter
|
||||
|
||||
Im ausgeklappten Job:
|
||||
Im ausgeklappten Job kannst du setzen:
|
||||
|
||||
- Ausgabeformat (`m4b`, `mp3`, `flac`)
|
||||
- formatspezifische Optionen (dynamisch je Format)
|
||||
- Kapitelnamen bearbeiten
|
||||
- Pre-Rip-Ausführungen (Skript/Kette)
|
||||
- Post-Rip-Ausführungen (Skript/Kette)
|
||||
- Ausgabeformat `m4b`, `mp3` oder `flac`
|
||||
- formatspezifische Optionen
|
||||
- Kapitelnamen
|
||||
- Pre-Encode-Skripte und -Ketten
|
||||
- Post-Encode-Skripte und -Ketten
|
||||
|
||||
### Formatverhalten
|
||||
|
||||
- `m4b`: eine Datei mit Kapiteln
|
||||
- `mp3`/`flac`: kapitelweise Ausgabedateien
|
||||
- `m4b`: eine Datei mit Kapitelmarken
|
||||
- `mp3`: eine Datei pro Kapitel
|
||||
- `flac`: eine Datei pro Kapitel
|
||||
|
||||
Für `mp3`/`flac` zeigt die UI während/nach dem Lauf eine Kapitel-Status-Tabelle (`Rip`/`Encode`).
|
||||
Wenn du `mp3` oder `flac` wählst, zeigt die UI zusätzlich eine Kapitel-Status-Tabelle.
|
||||
|
||||
### Aktionen je Job
|
||||
## Activation Bytes
|
||||
|
||||
- `Encode starten` (bzw. Neustart mit aktuellen Optionen)
|
||||
- `Abbrechen`
|
||||
- `Job löschen` (mit Bestätigung)
|
||||
Wenn Ripster für eine Datei keine Activation Bytes verwenden kann, wird im Workflow eine manuelle Eingabe nötig.
|
||||
|
||||
Wichtig:
|
||||
|
||||
- die Bytes werden lokal gecacht
|
||||
- derselbe AAX-Hash muss dann später nicht erneut manuell eingegeben werden
|
||||
- der Expertenblock in `Settings` zeigt bekannte Cache-Einträge an
|
||||
|
||||
## Relevante Settings
|
||||
|
||||
- `raw_dir_audiobook`
|
||||
- `movie_dir_audiobook`
|
||||
- `raw_dir_audiobook_owner`
|
||||
- `movie_dir_audiobook_owner`
|
||||
- `audiobook_raw_template`
|
||||
- `output_template_audiobook`
|
||||
- `output_chapter_template_audiobook`
|
||||
- `ffprobe_command`
|
||||
- `ffmpeg_command`
|
||||
|
||||
### So wirken die Settings im Alltag
|
||||
|
||||
- `audiobook_raw_template` bestimmt den Namen des AAX-RAW-Ordners
|
||||
- `output_template_audiobook` bestimmt die Einzeldatei für `m4b`
|
||||
- `output_chapter_template_audiobook` bestimmt Zielstruktur und Dateinamen für `mp3`/`flac`
|
||||
- `ffprobe_command` liest Kapitel und Metadaten
|
||||
- `ffmpeg_command` erzeugt die finalen Dateien
|
||||
|
||||
## Queue und Laufzeit
|
||||
|
||||
Audiobook-Jobs nutzen dieselbe globale Pipeline wie die anderen Bereiche.
|
||||
|
||||
Relevante Settings:
|
||||
|
||||
- `Parallele Jobs`
|
||||
- `Max. Encodes gesamt (medienunabhängig)`
|
||||
|
||||
## Typische Fehlerbilder
|
||||
|
||||
- Upload wird abgelehnt: Datei ist keine gültige `*.aax`.
|
||||
- Start/Encode schlägt fehl: `ffprobe` oder `ffmpeg` nicht erreichbar.
|
||||
- Unerwartete Ausgabeorte: Templates/Pfade passen nicht zur gewünschten Struktur.
|
||||
- Upload wird abgelehnt: Datei ist keine gültige `*.aax`
|
||||
- Analyse schlägt fehl: `ffprobe` ist nicht erreichbar
|
||||
- Encode schlägt fehl: `ffmpeg` ist nicht erreichbar
|
||||
- Ausgabe landet unerwartet: Templates oder Zielpfade passen nicht zur gewünschten Struktur
|
||||
|
||||
+68
-48
@@ -1,19 +1,22 @@
|
||||
# Converter
|
||||
|
||||
Die Seite `Converter` verarbeitet bereits vorhandene Dateien (Video, Audio, ISO) ohne Laufwerks-Rip.
|
||||
Die Seite `Converter` verarbeitet vorhandene Dateien ohne Laufwerks-Rip. Sie ist für Video-, Audio- und ISO-Dateien gedacht, die bereits auf dem System liegen oder hochgeladen werden.
|
||||
|
||||
## Betriebsmodell
|
||||
|
||||
Der Converter arbeitet auf dem Eingangspfad `converter_raw_dir`:
|
||||
Der Converter arbeitet auf dem Eingangspfad `converter_raw_dir`.
|
||||
|
||||
- Uploads landen dort
|
||||
- Explorer-Aktionen arbeiten dort
|
||||
- daraus werden Converter-Jobs erstellt
|
||||
Dort landen:
|
||||
|
||||
- Uploads
|
||||
- neu angelegte Ordner
|
||||
- umbenannte oder verschobene Dateien
|
||||
- alle Dateien, aus denen später Converter-Jobs entstehen
|
||||
|
||||
Wichtig:
|
||||
|
||||
- Upload erzeugt nicht automatisch einen Job.
|
||||
- Joberstellung erfolgt explizit über Auswahl im Explorer.
|
||||
- Upload erzeugt nicht automatisch einen Job
|
||||
- die Joberstellung erfolgt bewusst aus der Explorer-Auswahl
|
||||
|
||||
## Datei-Explorer
|
||||
|
||||
@@ -23,17 +26,24 @@ 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` | schreibt neue Dateien in den Converter-RAW-Baum |
|
||||
| `Ordner erstellen` | legt Unterordner an |
|
||||
| `Umbenennen` | benennt Datei oder Ordner um |
|
||||
| `Verschieben` | verschiebt Einträge innerhalb des Raw-Baums |
|
||||
| `Löschen` | entfernt Datei oder Ordner dauerhaft |
|
||||
| `Scannen` | synchronisiert Dateisystem und Converter-Datenbank |
|
||||
|
||||
Upload-Regeln:
|
||||
### Upload- und Scan-Regeln
|
||||
|
||||
- Dateiendung muss in `Erlaubte Datei-Endungen*` enthalten sein
|
||||
- bei Verstoß wird der Upload abgelehnt
|
||||
- Dateiendungen müssen in `Erlaubte Datei-Endungen` enthalten sein
|
||||
- neue Dateien erscheinen sofort nach manuellem Scan
|
||||
- mit Polling auch automatisch
|
||||
|
||||
Relevante Settings:
|
||||
|
||||
- `Erlaubte Datei-Endungen`
|
||||
- `Auto-Scan (Polling)`
|
||||
- `Polling-Intervall (Sekunden)`
|
||||
|
||||
## Joberstellung aus Explorer-Auswahl
|
||||
|
||||
@@ -44,65 +54,75 @@ Es gibt zwei Audio-Strategien:
|
||||
|
||||
Verhalten:
|
||||
|
||||
- Video/ISO werden grundsätzlich als Einzeljobs angelegt.
|
||||
- Audio kann als Shared-Job mit mehreren Eingabedateien erzeugt werden.
|
||||
- Video und ISO werden immer als Einzeljobs angelegt
|
||||
- Audio kann als gemeinsamer Album-/Ordner-Job erzeugt werden
|
||||
|
||||
Shared-Audio-Job:
|
||||
|
||||
- hält mehrere `inputPaths`
|
||||
- kann vor Start erweitert/reduziert werden (nur Audio-Dateien)
|
||||
- kann vor dem Start erweitert oder reduziert werden
|
||||
|
||||
## Job-Konfiguration
|
||||
|
||||
Vor Start je Job einstellbar:
|
||||
Vor dem Start je Job einstellbar:
|
||||
|
||||
- `converterMediaType` (`video`, `audio`, `iso`)
|
||||
- `converterMediaType`
|
||||
- `outputFormat`
|
||||
- Metadaten
|
||||
- Track-/Titelwahl (bei video/iso)
|
||||
- Track-/Titelwahl bei Video/ISO
|
||||
- User-Preset und HandBrake-Preset bei Video
|
||||
- Pre-/Post-Encode-Skripte und Ketten
|
||||
|
||||
Spezifika:
|
||||
|
||||
- Video/ISO laufen durch Mediainfo/Review ähnlich zum Disc-Flow.
|
||||
- Audio kann direkt mit Formatoptionen konfiguriert werden.
|
||||
- Video/ISO durchlaufen eine Review ähnlich zum Disc-Flow
|
||||
- Audio wird direkt über Format und Audio-Optionen konfiguriert
|
||||
|
||||
## Ausgabe-Pfade
|
||||
|
||||
### Video / ISO
|
||||
|
||||
- Root: `converter_movie_dir`
|
||||
- Zielordner: `converter_movie_dir`
|
||||
- Dateiname: `Output-Template (Video)`
|
||||
- Endung: aus gewähltem Output-Format
|
||||
- Endung: aus dem gewählten Ausgabeformat
|
||||
|
||||
### Audio
|
||||
|
||||
- Root: `converter_audio_dir`
|
||||
- Zielordner: `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
|
||||
- bei Shared- oder Folder-Jobs entsteht eine Ordnerstruktur mit mehreren Track-Dateien
|
||||
|
||||
Relevante Settings:
|
||||
|
||||
- `Auto-Scan (Polling)`
|
||||
- `Polling-Intervall (Sekunden)`
|
||||
- `converter_movie_dir`
|
||||
- `converter_audio_dir`
|
||||
- `converter_output_template_video`
|
||||
- `converter_output_template_audio`
|
||||
- `converter_movie_dir_owner`
|
||||
- `converter_audio_dir_owner`
|
||||
|
||||
## Queue und Start
|
||||
|
||||
Converter-Jobs laufen über dieselbe globale Pipeline-Queue wie Ripper und Audiobooks.
|
||||
|
||||
Das bedeutet:
|
||||
|
||||
- sofortiger Start, wenn Limits frei sind
|
||||
- sonst Einreihung in die Warteschlange
|
||||
|
||||
Relevante Settings:
|
||||
|
||||
- `Parallele Jobs`
|
||||
- `Max. Encodes gesamt (medienunabhängig)`
|
||||
|
||||
## Typische Einsatzfälle
|
||||
|
||||
- vorhandene MKV/MP4-Dateien mit neuem Preset encodieren
|
||||
- ISO-Dateien in einen Video-Workflow überführen
|
||||
- Musikdateien gesammelt in einen Audio-Ordner-Job packen
|
||||
- Medien auf anderem Storage per Upload oder Dateibaum vorbereiten
|
||||
|
||||
## Abgrenzung zu Audiobooks
|
||||
|
||||
- `Converter`: beliebige Audio/Video/ISO-Dateien
|
||||
- `Audiobooks`: dedizierter AAX-Workflow mit Kapitel-/Audiobook-Metadaten
|
||||
- `Converter`: beliebige Audio-, Video- und ISO-Dateien
|
||||
- `Audiobooks`: spezialisierter AAX-Workflow mit Activation Bytes, Kapitelmetadaten und Kapiteltemplates
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# Hardware
|
||||
|
||||
Die Seite `Hardware` ist die ausführliche Detailansicht für das Live-Monitoring aus dem `Ripper`.
|
||||
|
||||
## Was die Seite zeigt
|
||||
|
||||
- aktuelle CPU-Auslastung
|
||||
- RAM-Auslastung
|
||||
- GPU-Auslastung und VRAM, falls vorhanden
|
||||
- Temperaturen
|
||||
- Verlaufshistorie für Auslastung und Temperatur
|
||||
- Zeitfenster für `1h`, `6h`, `24h`, `4d`
|
||||
|
||||
## Live-Bereich
|
||||
|
||||
Oben zeigt die Seite:
|
||||
|
||||
- ob Monitoring aktiv ist
|
||||
- aktuelles Polling-Intervall
|
||||
- Zeitpunkt der letzten Messung
|
||||
|
||||
Wenn Monitoring deaktiviert ist, führt die Seite direkt zu `Settings`.
|
||||
|
||||
## Historie
|
||||
|
||||
Die Historie lädt Messpunkte aus dem Backend und zeigt:
|
||||
|
||||
- Auslastung als Linienchart
|
||||
- Temperatur als Linienchart
|
||||
- umschaltbare Serien für CPU, RAM und GPU
|
||||
|
||||
Das ist besonders nützlich bei:
|
||||
|
||||
- mehreren parallelen Encodes
|
||||
- Fehlersuche bei Hitzespitzen
|
||||
- Abschätzung, ob weitere Jobs sinnvoll gestartet werden können
|
||||
|
||||
## Relevante Settings
|
||||
|
||||
- `Hardware Monitoring aktiviert`
|
||||
- `Hardware Monitoring Intervall (ms)`
|
||||
|
||||
Außerdem sinnvoll:
|
||||
|
||||
- `Externe Speicher`, damit Speicherstände im `Ripper` sinnvoll angezeigt werden
|
||||
+37
-38
@@ -6,7 +6,7 @@
|
||||
|
||||
Filter und Arbeitsmittel:
|
||||
|
||||
- Suche (Titel, IMDb, Kontextbegriffe)
|
||||
- Suche
|
||||
- Statusfilter
|
||||
- Mediumfilter
|
||||
- Sortierung
|
||||
@@ -14,62 +14,61 @@ Filter und Arbeitsmittel:
|
||||
|
||||
Jeder Eintrag zeigt auf einen Blick:
|
||||
|
||||
- Titel, Jahr, Poster
|
||||
- Titel, Jahr, Poster oder Cover
|
||||
- Status und Zeitstempel
|
||||
- RAW-/Output-Verfügbarkeit
|
||||
- Medien- und ggf. Containerhinweise
|
||||
- RAW- und Output-Verfügbarkeit
|
||||
- Medien- und Containerhinweise
|
||||
|
||||
## Detaildialog: Was dort zusammenläuft
|
||||
## Detaildialog
|
||||
|
||||
Der Detaildialog bündelt:
|
||||
|
||||
- Metadaten (Film oder Serie)
|
||||
- Metadaten
|
||||
- Jobstatus und Fehlertexte
|
||||
- RAW-/Output-Pfade
|
||||
- RAW- und Output-Pfade
|
||||
- Encode-Plan und Trackauswahl
|
||||
- ausgeführte Kommandodetails
|
||||
- Prozesslog (`Tail` oder vollständig)
|
||||
- ausgeführte Kommandos
|
||||
- Prozesslog
|
||||
- verfügbare Folgeaktionen
|
||||
|
||||
Bei Seriencontainern wird disk-/child-orientiert dargestellt, nicht nur als Einzeljob.
|
||||
Bei Seriencontainern und Multipart-Jobs wird container- und child-orientiert dargestellt.
|
||||
|
||||
## Nachbearbeitungsaktionen und Wirkung
|
||||
## Nachbearbeitungsaktionen
|
||||
|
||||
| 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 |
|
||||
| `TMDb neu zuweisen` | falsches Match, anderer Film, andere Staffel | Metadaten werden neu geschrieben; Poster, Jahr und ggf. Ordnername werden best effort aktualisiert |
|
||||
| `Review neu starten` | neue Track-/Titelbewertung nötig | Review wird aus vorhandenem RAW neu aufgebaut |
|
||||
| `RAW neu encodieren` | neuer Encode mit vorhandenem RAW | startet Encode ohne neuen Disc-Rip |
|
||||
| `Encode neu starten` | gleiche bestätigte Auswahl erneut fahren | letzter bestätigter Plan wird geladen |
|
||||
| `Retry Rippen` | Rip oder Analyse erneut anstoßen | neuer Rip-Lauf inklusive RAW-Phase |
|
||||
|
||||
Löschaktionen im Dialog:
|
||||
Relevante Settings:
|
||||
|
||||
- `RAW löschen`
|
||||
- `Movie löschen`
|
||||
- `Beides löschen`
|
||||
- `Historieneintrag löschen`
|
||||
- `handbrake_restart_delete_incomplete_output`
|
||||
- `generate_nfo_after_encode`
|
||||
|
||||
## Löschvorschau und selektives Löschen
|
||||
## Löschaktionen und Vorschau
|
||||
|
||||
Vor endgültigem Löschen zeigt Ripster eine Vorschau mit:
|
||||
Vor dem endgültigen Löschen zeigt Ripster eine Vorschau mit:
|
||||
|
||||
- `RAW`-Kandidaten
|
||||
- `Movie`-/Episoden-Kandidaten
|
||||
- Related-Scope (Container/Kinder/verbundene Jobs)
|
||||
- RAW-Kandidaten
|
||||
- Movie-/Episode-Kandidaten
|
||||
- Related-Scope für Container, Kinder und 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.
|
||||
- Pfade sind selektierbar
|
||||
- bei mehreren RAW-Kandidaten muss mindestens ein RAW-Pfad gewählt werden
|
||||
- Schutzlogik verhindert Löschungen außerhalb erlaubter Root-Verzeichnisse
|
||||
|
||||
## Serien- und Multipart-Sicht in der Historie
|
||||
## Serien- und Multipart-Sicht
|
||||
|
||||
### 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.
|
||||
- Container zeigt den aggregierten Zustand der Child-Jobs
|
||||
- Disk- und Episodenaktionen können child-spezifisch ausgeführt werden
|
||||
- `Im Ripper öffnen` hilft bei offenen Reviews
|
||||
|
||||
### Multipart
|
||||
|
||||
@@ -79,11 +78,11 @@ Wichtige Punkte:
|
||||
|
||||
## Logs sinnvoll nutzen
|
||||
|
||||
- `Tail laden (800)` für schnellen Fehlerkontext
|
||||
- `Vollständiges Log laden` für forensische Analyse
|
||||
- `Tail laden` für schnellen Fehlerkontext
|
||||
- `Vollständiges Log laden` für tiefe Analyse
|
||||
|
||||
Empfehlung:
|
||||
|
||||
1. Erst Tail prüfen.
|
||||
2. Bei Pfad-/Toolproblemen vollständiges Log laden.
|
||||
3. Danach passende Wiederanlauf-Aktion wählen.
|
||||
1. erst den Tail prüfen
|
||||
2. dann die Stelle im Log eingrenzen
|
||||
3. anschließend die passende Wiederanlauf-Aktion wählen
|
||||
|
||||
+23
-14
@@ -6,28 +6,37 @@ Dieses Kapitel ist das Bedienhandbuch für die Oberflächen im Alltag.
|
||||
|
||||
| Seite | Rolle im Betrieb | Typischer Einsatz |
|
||||
|---|---|---|
|
||||
| [Ripper](ripper.md) | Live-Steuerung der Pipeline | Disc-Flow starten, Queue steuern, Review freigeben |
|
||||
| [Audiobooks](audiobooks.md) | AAX-Spezialflow | Upload, Jobkonfiguration 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 |
|
||||
| [Ripper](ripper.md) | Live-Steuerung der Disc-Pipeline | Disc erkennen, Analyse starten, Entscheidungen treffen, Queue steuern |
|
||||
| [Hardware](hardware.md) | Detailansicht für Live-Monitoring | CPU/RAM/GPU und Verlauf prüfen |
|
||||
| [Audiobooks](audiobooks.md) | AAX-Spezialflow | Upload, Kapitelprüfung und Encode von Audiobooks |
|
||||
| [Settings](settings.md) | Konfiguration und Automatisierung | Pfade, Tools, Queue, Presets, Skripte, Cron |
|
||||
| [Historie](history.md) | Nachbearbeitung und Kontrolle | Logs, Re-Encode, TMDb-Neuzuordnung, Löschvorschau |
|
||||
| [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 |
|
||||
| [Downloads](downloads.md) | ZIP-Exports | RAW/Output aus der Historie bereitstellen |
|
||||
| [Database (Expert)](database.md) | Recovery-Sicht | orphan RAW finden, prüfen und importieren |
|
||||
| [TMDb Migration](tmdb-migration.md) | Sonderseite für Altbestände | alte Jobs gesammelt auf TMDb umstellen |
|
||||
|
||||
## Empfohlener Tagesablauf
|
||||
|
||||
1. `Ripper` oder `Converter`/`Audiobooks`: neue Arbeit starten.
|
||||
2. `Historie`: Ergebnisse validieren und ggf. nachbearbeiten.
|
||||
3. `Downloads`: Exporte für externe Übergabe erzeugen.
|
||||
4. `Settings`: Regeln und Limits nur kontrolliert anpassen.
|
||||
1. `Ripper`, `Converter` oder `Audiobooks`: neue Arbeit starten
|
||||
2. `Historie`: Ergebnisse kontrollieren und ggf. nachbearbeiten
|
||||
3. `Downloads`: Artefakte für externe Übergabe vorbereiten
|
||||
4. `Settings`: Regeln, Presets oder Limits nur kontrolliert anpassen
|
||||
5. `Hardware`: bei Lastspitzen oder Batch-Läufen den Verlauf prüfen
|
||||
|
||||
## Navigation
|
||||
|
||||
Direkt in der Top-Navigation:
|
||||
|
||||
- `Ripper`, `Converter`, `Audiobooks`, `Settings`, `Historie`, `Downloads`
|
||||
- `Ripper`
|
||||
- `Converter`
|
||||
- `Audiobooks`
|
||||
- `Settings`
|
||||
- `Historie`
|
||||
- `Downloads`
|
||||
|
||||
Nur per URL:
|
||||
Zusatzansichten:
|
||||
|
||||
- `Database` unter `/database` (nur Expertenmodus in der Navigation sichtbar)
|
||||
- `TMDb Migration` unter `/tmdb-migration` (Direktlink, nicht in der Navigation)
|
||||
- `Hardware` unter `/hardware`
|
||||
- `Database` unter `/database` und im Expertenmodus zusätzlich in der Navigation
|
||||
- `TMDb Migration` unter `/tmdb-migration` als Direktlink
|
||||
|
||||
+121
-71
@@ -1,68 +1,76 @@
|
||||
# Ripper
|
||||
|
||||
Die Seite `Ripper` ist die Live-Steuerung der Pipeline. Hier laufen Disc-Erkennung, Queue-Steuerung, Review und Encode-Start zusammen.
|
||||
Die Seite `Ripper` ist die Live-Steuerung der Disc-Pipeline. Hier laufen Disc-Erkennung, Queue, manuelle Entscheidungen, Review und aktive Jobs zusammen.
|
||||
|
||||
## Seitenaufbau und Betriebslogik
|
||||
## Seitenaufbau
|
||||
|
||||
Die Bereiche erscheinen in dieser Reihenfolge:
|
||||
Die wichtigsten Bereiche:
|
||||
|
||||
1. `Hardware Monitoring`
|
||||
1. `Hardware`
|
||||
2. `Job Queue`
|
||||
3. `Skript- / Cron-Status`
|
||||
4. `Job Übersicht`
|
||||
5. `Disk-Information`
|
||||
|
||||
## 1) Hardware Monitoring
|
||||
## 1. Hardware
|
||||
|
||||
Zeigt kontinuierlich:
|
||||
Die Hardware-Karte zeigt live:
|
||||
|
||||
- CPU / RAM
|
||||
- GPU (wenn verfügbar)
|
||||
- freie Speicherstände konfigurierter Pfade
|
||||
- CPU
|
||||
- RAM
|
||||
- GPU, falls vorhanden
|
||||
- freie Speicherstände der konfigurierten Pfade
|
||||
|
||||
Nutzen im Betrieb:
|
||||
Aktionen:
|
||||
|
||||
- Engpässe vor Jobfehlern erkennen
|
||||
- Pfadfüllstände vor Start großer Batchs prüfen
|
||||
- Klick auf das Hardware-Symbol öffnet die Seite [Hardware](hardware.md)
|
||||
|
||||
Gesteuert über `Settings`:
|
||||
Relevante Settings:
|
||||
|
||||
- `Hardware Monitoring aktiviert`
|
||||
- `Hardware Monitoring Intervall (ms)`
|
||||
- `Externe Speicher`
|
||||
|
||||
## 2) Job Queue
|
||||
## 2. Job Queue
|
||||
|
||||
Es gibt zwei operative Zonen:
|
||||
|
||||
- `Laufende Jobs`
|
||||
- `Warteschlange`
|
||||
- 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`)
|
||||
- normale Job-Starts
|
||||
- `Retry Rippen`
|
||||
- `RAW neu encodieren`
|
||||
- `Encode neu starten`
|
||||
- `Review neu starten`
|
||||
- `Audio CD starten`
|
||||
- `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.
|
||||
- Reihenfolge ist per Drag-and-Drop änderbar
|
||||
- `Warten` blockiert nachfolgende Starts, bis keine aktive Verarbeitung mehr läuft
|
||||
- Queue-Einträge können auch ohne Medienjob existieren
|
||||
|
||||
Parallelität kommt aus `Settings`:
|
||||
Relevante Settings:
|
||||
|
||||
- `Max. parallele Film/Video Encodes`
|
||||
- `Parallele Jobs`
|
||||
- `Max. parallele Audio CD Jobs`
|
||||
- `Max. Encodes gesamt`
|
||||
- optional `Audio CDs: Queue-Reihenfolge überspringen`
|
||||
- `Max. Encodes gesamt (medienunabhängig)`
|
||||
- `Audio CDs: Queue-Reihenfolge überspringen`
|
||||
|
||||
## 3) Skript- / Cron-Status
|
||||
## 3. Skript- / Cron-Status
|
||||
|
||||
Zeigt Runtime-Aktivitäten:
|
||||
|
||||
- laufende Skripte
|
||||
- laufende Ketten
|
||||
- Cron-Ausführungen
|
||||
- letzte abgeschlossene Aktivitäten
|
||||
- kürzlich abgeschlossene Aktivitäten
|
||||
|
||||
Aktionen:
|
||||
|
||||
@@ -70,66 +78,103 @@ Aktionen:
|
||||
- `Abbrechen`
|
||||
- `Liste leeren`
|
||||
|
||||
## 4) Job Übersicht
|
||||
## 4. Job Übersicht
|
||||
|
||||
Die Jobliste ist der zentrale Arbeitsbereich. Ein Klick öffnet den jeweiligen `Pipeline-Status`.
|
||||
|
||||
### Badges und Kontext
|
||||
### Zustandsabhängige Hauptaktionen
|
||||
|
||||
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 |
|
||||
| Zustand | Typische Aktion | 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 |
|
||||
| `Medium erkannt` | `Analyse starten` | MakeMKV-Analyse beginnt |
|
||||
| `Metadatenauswahl` | `Metadaten öffnen` | TMDb-Dialog für Film/Serie |
|
||||
| `Warte auf Auswahl` | Entscheidung bestätigen | Flow geht an die passende Stelle weiter |
|
||||
| `Startbereit` | `Job starten` | Rip oder RAW-basierte Prüfung startet |
|
||||
| `Bereit zum Encodieren` | `Encoding starten` | HandBrake startet mit bestätigter Auswahl |
|
||||
| laufend | `Abbrechen` | Job wird gestoppt |
|
||||
| `Fehler` / `Abgebrochen` | `Retry Rippen` | neuer Rip-Anlauf |
|
||||
|
||||
Zusatzaktionen je nach Zustand und Jobtyp:
|
||||
### Was `Warte auf Auswahl` heute bedeuten kann
|
||||
|
||||
- `Review neu starten`
|
||||
- `Encode neu starten`
|
||||
- `RAW neu encodieren`
|
||||
- `Aus Queue löschen`
|
||||
Der Status ist nicht nur für eine einzige Entscheidung da. Im aktuellen Stand gibt es drei typische Fälle:
|
||||
|
||||
### Review-Bereich (`Bereit zum Encodieren`)
|
||||
#### Vorhandenes RAW
|
||||
|
||||
Hier wird die effektive Encode-Entscheidung festgelegt:
|
||||
Ripster hat zu den Metadaten bereits ein passendes RAW gefunden. Dann entscheidest du:
|
||||
|
||||
- Titelwahl
|
||||
- Audio-/Subtitle-Trackselektion
|
||||
- User-Preset
|
||||
- Pre-/Post-Encode-Skripte und Ketten
|
||||
- HandBrake-Kommandovorschau
|
||||
- mit RAW weiterarbeiten
|
||||
- RAW löschen und neu rippen
|
||||
- in passenden Film-Fällen optional Multipart mit Orphan-RAW bilden
|
||||
|
||||
Ohne Bestätigung dieses Blocks startet kein produktiver Encode.
|
||||
#### Playlist-Auswahl
|
||||
|
||||
### RAW-Ordnerphasen (sichtbar über Logs/Details)
|
||||
Bei mehrdeutigen Blu-rays oder bestimmten DVD-Fällen musst du eine Playlist bestätigen. Die Liste zeigt unter anderem:
|
||||
|
||||
- Playlist-Datei
|
||||
- Titel-ID
|
||||
- Laufzeit
|
||||
- Score
|
||||
- Empfehlung
|
||||
- Segment- und Audio-Vorschau
|
||||
|
||||
Relevante Settings:
|
||||
|
||||
- `Minimale Titellänge (Minuten)`
|
||||
- `TMDb Runtime-Abzug für Playlistfilter (%)`
|
||||
- `Bei manueller Auswahl senden` für PushOver
|
||||
|
||||
#### Titelauswahl / PlayAll-Grenzfall
|
||||
|
||||
Wenn Ripster mehrere HandBrake-Titel als plausibel erkannt hat, musst du einen oder mehrere Titel bestätigen. Bei Serien kann das der Grenzfall `PlayAll oder Doppelfolge?` sein.
|
||||
|
||||
## 5. Review-Bereich (`Bereit zum Encodieren`)
|
||||
|
||||
Hier triffst du die eigentliche Encode-Entscheidung.
|
||||
|
||||
Du legst fest:
|
||||
|
||||
- welchen Titel Ripster encodieren soll
|
||||
- welche Audio-Spuren übernommen werden
|
||||
- welche Untertitel übernommen, erzwungen oder eingebrannt werden
|
||||
- welches User-Preset oder HandBrake-Preset verwendet wird
|
||||
- welche Pre-/Post-Encode-Skripte oder Ketten mitlaufen
|
||||
|
||||
Wichtig:
|
||||
|
||||
- ohne diese Bestätigung startet kein produktiver Encode
|
||||
- bei Multipart-Locks können Einstellungen von einer Referenz-Disc übernommen und gesperrt sein
|
||||
|
||||
### Welche Settings hier direkt sichtbar werden
|
||||
|
||||
- `HandBrake Preset`
|
||||
- `HandBrake Extra Args`
|
||||
- `Review Audio-Sprachen (...)`
|
||||
- `Review UT-Sprachen (...)`
|
||||
- `Ausgabeformat`
|
||||
- Standard-Zuordnungen aus `Settings -> Encode-Presets`
|
||||
|
||||
## RAW-Ordnerphasen
|
||||
|
||||
Der Ripper arbeitet mit drei RAW-Zuständen:
|
||||
|
||||
- `Incomplete_...` während unvollständigem Rip
|
||||
- `Rip_Complete_...` nach erfolgreich abgeschlossenem Rip, vor Encode
|
||||
- `Incomplete_...` während eines unvollständigen Rips
|
||||
- `Rip_Complete_...` nach erfolgreichem Rip, vor dem finalen Encode
|
||||
- ohne Prefix nach erfolgreichem Encode
|
||||
|
||||
Das ist wichtig für Recovery und Delete-Vorschau.
|
||||
Das ist wichtig für:
|
||||
|
||||
## 5) Disk-Information
|
||||
- Recovery
|
||||
- RAW-Wiederverwendung
|
||||
- Delete-Preview in `Historie`
|
||||
|
||||
## Disk-Information
|
||||
|
||||
Zeigt aktuelle Laufwerksdaten:
|
||||
|
||||
- Device-Pfad
|
||||
- Modell
|
||||
- Disc-Label / Mount
|
||||
- Disc-Label
|
||||
- Mount-Informationen
|
||||
|
||||
Aktionen:
|
||||
|
||||
@@ -139,13 +184,13 @@ Aktionen:
|
||||
|
||||
Hinweis:
|
||||
|
||||
- `Laufwerk neu lesen` ist nicht mehr an einen festen Pipeline-State gebunden.
|
||||
- `Laufwerk neu lesen` ist nicht mehr an einen festen Pipeline-State gebunden
|
||||
|
||||
## Wichtige Dialoge
|
||||
|
||||
### Metadaten auswählen
|
||||
|
||||
Im Dialog werden Film-/Serienmetadaten bestätigt.
|
||||
Im Dialog bestätigst du Film- oder Serienmetadaten aus TMDb.
|
||||
|
||||
Sonderfälle:
|
||||
|
||||
@@ -154,7 +199,7 @@ Sonderfälle:
|
||||
|
||||
### Vorhandenes RAW erkannt
|
||||
|
||||
Wenn passendes RAW existiert, fordert der Dialog eine explizite Entscheidung:
|
||||
Wenn zu den Metadaten bereits RAW existiert, fordert Ripster eine explizite Entscheidung:
|
||||
|
||||
- vorhandenes RAW verwenden
|
||||
- RAW verwerfen/löschen und neu rippen
|
||||
@@ -169,9 +214,14 @@ Du kannst gezielt ab Position einfügen:
|
||||
|
||||
### Audible Activation Bytes eintragen
|
||||
|
||||
Wenn für eine AAX-Datei keine Activation Bytes automatisch ermittelt werden können,
|
||||
öffnet Ripster einen Dialog zur manuellen Eingabe.
|
||||
Wenn für eine AAX-Datei keine Activation Bytes verfügbar sind, öffnet Ripster einen Dialog zur manuellen Eingabe.
|
||||
|
||||
- Eingabeformat: genau 8 Hex-Zeichen (z.B. `1a2b3c4d`)
|
||||
- Format: genau 8 Hex-Zeichen, z. B. `1a2b3c4d`
|
||||
- Speicherung: lokal im Activation-Bytes-Cache
|
||||
- Wirkung: nach dem Speichern kann der Audiobook-Flow fortgesetzt werden
|
||||
- Wirkung: der Audiobook-Flow kann anschließend fortgesetzt werden
|
||||
|
||||
## Siehe auch
|
||||
|
||||
- [Hardware](hardware.md)
|
||||
- [Settings](settings.md)
|
||||
- [Workflows aus Nutzersicht](../workflows/index.md)
|
||||
|
||||
+189
-75
@@ -1,82 +1,198 @@
|
||||
# Settings
|
||||
|
||||
Die Seite `Settings` ist das zentrale Kontrollpanel für Laufzeitverhalten, Automatisierung und Expertenfunktionen.
|
||||
Die Seite `Settings` ist das Kontrollzentrum für Laufzeitverhalten, Standardwerte und Automatisierung. Alles, was spätere Jobs automatisch tun oder vorschlagen, wird hier vorbereitet.
|
||||
|
||||
## Tab-Überblick
|
||||
|
||||
| Tab | Zweck |
|
||||
|---|---|
|
||||
| `Konfiguration` | Alle fachlichen Settings (Pfade, Tools, Laufwerk, Metadaten, Monitoring, Benachrichtigungen, Converter) |
|
||||
| `Scripte` | Einzelne Bash-Skripte pflegen, testen und sortieren |
|
||||
| `Skriptketten` | Mehrstufige Sequenzen aus `Skript` und `Warten` bauen und testen |
|
||||
| `Encode-Presets` | Benutzer-Presets und Standard-Zuordnungen für Blu-ray/DVD-Workflows |
|
||||
| `Cronjobs` | Zeitgesteuerte Jobs auf Basis Skript/Skriptkette |
|
||||
| `Konfiguration` | alle fachlichen Einstellungen aus der GUI |
|
||||
| `Scripte` | einzelne Bash-Skripte anlegen, testen und sortieren |
|
||||
| `Skriptketten` | mehrstufige Abläufe aus Skript- und Warte-Schritten bauen |
|
||||
| `Encode-Presets` | eigene Video-Presets und Standard-Zuordnungen pflegen |
|
||||
| `Cronjobs` | zeitgesteuerte Ausführung von Skripten oder Ketten |
|
||||
|
||||
## Tab `Konfiguration`
|
||||
|
||||
### Bedienlogik
|
||||
|
||||
1. Felder ändern.
|
||||
2. `Änderungen speichern` klicken.
|
||||
3. Erst dann werden Änderungen persistiert und für neue Pipeline-Schritte wirksam.
|
||||
1. Felder ändern
|
||||
2. `Änderungen speichern` klicken
|
||||
3. erst dann gelten die neuen Werte für künftige Starts, Reviews oder Scheduler
|
||||
|
||||
Aktionen in der Toolbar:
|
||||
Ausnahmen:
|
||||
|
||||
- `Änderungen speichern`: schreibt nur geänderte Felder als Bulk-Update.
|
||||
- `Änderungen verwerfen`: setzt den Formularzustand auf zuletzt geladen/zum Server gespeicherten Stand zurück.
|
||||
- `Neu laden`: lädt Kategorien + Werte erneut vom Backend.
|
||||
- `PushOver Test`: sendet eine Testnachricht mit aktuellen PushOver-Werten.
|
||||
- `Coverarts prüfen`: startet die manuelle Coverart-Recovery.
|
||||
- `Expertenmodus`: wird sofort gespeichert (nicht Teil des normalen Bulk-Speicherns).
|
||||
- `Expertenmodus` wird sofort gespeichert
|
||||
- Buttons wie `PushOver Test`, `Coverarts prüfen` oder der MakeMKV-Betakey-Import lösen direkte Aktionen aus
|
||||
|
||||
### Wichtige UI-Verhalten
|
||||
### Toolbar-Aktionen
|
||||
|
||||
- Jede Einstellung zeigt `Gespeichert` oder `Ungespeichert` direkt am Feld.
|
||||
- Pflichtfelder sind mit `*` markiert.
|
||||
- Bei Validierungsfehlern wird pro Feld ein Fehlertext angezeigt und Speichern blockiert.
|
||||
- Tool-Kommandos (`makemkv_command`, `mediainfo_command`, `handbrake_command`, `ffmpeg_command`, `ffprobe_command`, `cdparanoia_command`, `mkvmerge_command`) sind im Formular schreibgeschützt markiert.
|
||||
- Einige Felder sind abhängig vom Expertenmodus sichtbar.
|
||||
- `Änderungen speichern`: schreibt nur geänderte Felder
|
||||
- `Änderungen verwerfen`: setzt den Formularzustand zurück
|
||||
- `Neu laden`: lädt Schema und Werte neu
|
||||
- `PushOver Test`: sendet eine Testnachricht mit den aktuellen PushOver-Werten
|
||||
- `Coverarts prüfen`: startet den Coverart-Recovery-Lauf sofort
|
||||
|
||||
### Was die Kategorien im Alltag steuern
|
||||
|
||||
#### Benachrichtigungen
|
||||
|
||||
Hier steuerst du zwei Dinge:
|
||||
|
||||
- ob und wohin Ripster PushOver-Nachrichten sendet
|
||||
- bei welchen Ereignissen Ripster überhaupt benachrichtigt
|
||||
|
||||
Wichtig:
|
||||
|
||||
- `PushOver aktiviert` ist der Master-Schalter
|
||||
- `Bei manueller Auswahl senden` ist besonders relevant für Playlist-, RAW- oder Titelentscheidungen
|
||||
- der `Expertenmodus` blendet zusätzliche technische Felder in der gesamten Settings-Seite ein
|
||||
|
||||
#### Laufwerk
|
||||
|
||||
Diese Kategorie beeinflusst, wie Ripster optische Laufwerke findet und überwacht.
|
||||
|
||||
Typische Fragen:
|
||||
|
||||
- Soll Ripster Laufwerke automatisch erkennen?
|
||||
- Soll ein bestimmtes Laufwerk fest an einen MakeMKV-Index gebunden werden?
|
||||
- Soll das Laufwerk nach erfolgreichem Rip automatisch auswerfen?
|
||||
|
||||
Das ist vor allem wichtig bei:
|
||||
|
||||
- mehreren Laufwerken
|
||||
- USB-SATA-Adaptern
|
||||
- Hosts mit instabilen Device-Namen
|
||||
|
||||
#### Logging
|
||||
|
||||
Diese Felder ändern nicht die Job-Logs auf Platte, sondern die Ausgabe im Server-Terminal.
|
||||
|
||||
Damit steuerst du zum Beispiel:
|
||||
|
||||
- ob `start.sh` oder ein Terminal-Run sehr gesprächig sein darf
|
||||
- ob HTTP-Requests im Terminal sichtbar sein sollen
|
||||
- ob DEBUG/INFO/WARN/ERROR dort mitlaufen
|
||||
|
||||
#### Metadaten
|
||||
|
||||
Hier legst du fest, wie Ripster mit TMDb, Covern und NFO-Dateien umgeht.
|
||||
|
||||
Besonders wichtig:
|
||||
|
||||
- ohne `TMDb Read Access Token` funktionieren Film-/Seriensuche und Neu-Zuordnung nur eingeschränkt oder gar nicht
|
||||
- `Film-Sprache` und `Fallback Sprache` bestimmen, welche Titel, Beschreibungen und Staffelinformationen bevorzugt werden
|
||||
- `Coverart-Nachladen aktiv` hilft bei nachträglich fehlenden Postern/Covern
|
||||
|
||||
#### Monitoring
|
||||
|
||||
Steuert das Hardware-Monitoring für:
|
||||
|
||||
- CPU
|
||||
- RAM
|
||||
- GPU
|
||||
- Speicherstände
|
||||
|
||||
Diese Werte erscheinen:
|
||||
|
||||
- kompakt im `Ripper`
|
||||
- ausführlich in der Seite `Hardware`
|
||||
|
||||
#### Pfade
|
||||
|
||||
Hier legst du fest, wohin Ripster schreibt und wie Dateien benannt werden.
|
||||
|
||||
Die Felder steuern:
|
||||
|
||||
- RAW-Verzeichnisse pro Medium
|
||||
- Zielordner für Filme, Serien, CDs, Audiobooks, Converter und Downloads
|
||||
- Eigentümer per `user:gruppe`
|
||||
- Templates für Datei- und Ordnernamen
|
||||
|
||||
Praxisbeispiele:
|
||||
|
||||
- Serien getrennt von Filmen ablegen
|
||||
- RAW auf große HDD, Final-Output auf NAS
|
||||
- Audiobooks kapitelweise in Unterordnern strukturieren
|
||||
|
||||
#### Converter
|
||||
|
||||
Diese Kategorie wirkt nur auf die Seite `Converter`.
|
||||
|
||||
Sie steuert:
|
||||
|
||||
- welche Dateiendungen der Upload und der Verzeichnisscan akzeptieren
|
||||
- ob der Converter-RAW-Baum automatisch neu gescannt wird
|
||||
- wie häufig dieses Polling läuft
|
||||
|
||||
#### Tools
|
||||
|
||||
Diese Kategorie entscheidet über das technische Verhalten der eigentlichen Pipeline.
|
||||
|
||||
Dazu gehören:
|
||||
|
||||
- Pfade/Befehle für externe Tools
|
||||
- MakeMKV-Filter und Rip-Modi
|
||||
- HandBrake-Presets und Extra-Args
|
||||
- Vorauswahl von Audio-/Untertitelsprachen in der Review
|
||||
- Ausgabeformate
|
||||
- Queue- und Parallelitätsregeln
|
||||
- Timeout für Script-Tests
|
||||
|
||||
Für die Nutzer-Workflows besonders relevant:
|
||||
|
||||
- `Minimale Titellänge (Minuten)`
|
||||
- `TMDb Runtime-Abzug für Playlistfilter (%)`
|
||||
- `HandBrake Preset` und `HandBrake Extra Args`
|
||||
- `Review Audio-Sprachen (...)`
|
||||
- `Review UT-Sprachen (...)`
|
||||
- `Parallele Jobs`
|
||||
- `Max. parallele Audio CD Jobs`
|
||||
- `Max. Encodes gesamt (medienunabhängig)`
|
||||
|
||||
### Kategorie `Pfade`: Besondere Interaktion
|
||||
|
||||
Die Pfad-Kategorie hat eine eigene Darstellung:
|
||||
|
||||
- Tabelle `Effektive Pfade`: zeigt die aktuell tatsächlich aufgelösten Laufzeitpfade inkl. Fallbacks.
|
||||
- Accordion je Bereich (`Blu-ray`, `DVD`, `CD / Audio`, `Audiobook`, `Converter`, `Downloads`, optional `Externe Speicher`, `Logs`).
|
||||
- Für Pfadfelder mit Owner-Pendant (`*_owner`) erscheint direkt darunter das Feld `Eigentümer (user:gruppe)`.
|
||||
- Owner-Felder sind deaktiviert, solange der zugehörige Pfad leer ist.
|
||||
- Tabelle `Effektive Pfade`: zeigt die aktuell wirklich verwendeten Laufzeitpfade inklusive Fallbacks
|
||||
- Accordion pro Bereich wie `Blu-ray`, `DVD`, `CD / Audio`, `Audiobook`, `Converter`, `Downloads`, `Logs`
|
||||
- Owner-Felder (`*_owner`) erscheinen direkt beim zugehörigen Pfad
|
||||
- Owner-Felder sind deaktiviert, solange der zugehörige Pfad leer ist
|
||||
|
||||
### Spezial-Editoren in der Konfiguration
|
||||
### Spezial-Editoren
|
||||
|
||||
- `drive_devices`: JSON-Array wird über UI-Editor gepflegt (Pfad + MakeMKV-Index je Laufwerk).
|
||||
- `external_storage_paths`: Liste aus `Name` + `Pfad` (für Anzeige freier externer Speicher).
|
||||
- `converter_scan_extensions`: Checkbox-Raster der erlaubten Endungen; mindestens eine Endung muss aktiv bleiben.
|
||||
- `makemkv_registration_key`: zusätzlicher Betakey-Hinweis mit `übernehmen`-Button.
|
||||
- `drive_devices`: Editor für mehrere Laufwerke mit Pfad und MakeMKV-Index
|
||||
- `external_storage_paths`: Liste aus Anzeigename und Pfad für die Speicheranzeige
|
||||
- `converter_scan_extensions`: Auswahl der erlaubten Upload-/Scan-Endungen
|
||||
- `makemkv_registration_key`: inkl. Betakey-Hinweis und Übernahme-Button
|
||||
|
||||
### Laufwerks-Infobox innerhalb `Laufwerk`
|
||||
### Wichtig für Reviews und Workflows
|
||||
|
||||
In der Kategorie `Laufwerk` wird eine Live-Tabelle erkannter optischer Laufwerke angezeigt:
|
||||
Die Seite `Settings` bestimmt direkt, was Nutzer später im Workflow sehen:
|
||||
|
||||
- `Neu einlesen` lädt Laufwerksinfos neu.
|
||||
- Im Expertenmodus: `Freigeben` pro Laufwerk und `Alle Laufwerke freigeben`.
|
||||
- Playlist-Kandidaten werden durch `Minimale Titellänge` und `TMDb Runtime-Abzug ...` beeinflusst
|
||||
- Audio-/Untertitel-Vorauswahlen in `Bereit zum Encodieren` hängen an den Review-Sprachfeldern
|
||||
- automatisch vorgeschlagene Presets hängen an den Standard-Zuordnungen unter `Encode-Presets`
|
||||
- Queue-Verhalten im `Ripper` hängt an den drei Parallelitätsfeldern plus `Audio CDs: Queue-Reihenfolge überspringen`
|
||||
|
||||
## Tab `Scripte`
|
||||
|
||||
Funktionen:
|
||||
|
||||
- Skript anlegen (Inline-Editor)
|
||||
- Skript bearbeiten (Dialog)
|
||||
- Skript löschen (mit Bestätigung)
|
||||
- Skript anlegen
|
||||
- Skript bearbeiten
|
||||
- Skript löschen
|
||||
- Skript testen
|
||||
- Reihenfolge per Drag-and-Drop ändern
|
||||
- Favorit markieren
|
||||
|
||||
Testergebnis enthält:
|
||||
Das Testergebnis zeigt:
|
||||
|
||||
- Erfolg/Fehler
|
||||
- Erfolg oder Fehler
|
||||
- Exit-Code
|
||||
- Timeout-Info
|
||||
- Dauer
|
||||
- stdout/stderr
|
||||
- Timeout, falls `Script-Test Timeout (ms)` greift
|
||||
|
||||
## Tab `Skriptketten`
|
||||
|
||||
@@ -87,81 +203,79 @@ Skriptketten bestehen aus Schritten:
|
||||
|
||||
Funktionen:
|
||||
|
||||
- Ketten anlegen/bearbeiten/löschen
|
||||
- Reihenfolge der Ketten per Drag-and-Drop
|
||||
- Kette testen
|
||||
- Schritte in der Kette per Drag-and-Drop neu anordnen
|
||||
- Ketten anlegen, bearbeiten, löschen
|
||||
- Reihenfolge der Ketten ändern
|
||||
- einzelne Ketten testen
|
||||
- Schritte innerhalb der Kette per Drag-and-Drop sortieren
|
||||
|
||||
Im Ketteneditor:
|
||||
Wichtig:
|
||||
|
||||
- linke Palette (`Systemblöcke`, `Scripte`)
|
||||
- rechte Canvas mit Drop-Zonen
|
||||
- pro Warte-Schritt konfigurierbare Sekunden
|
||||
- dieselben Skripte können sowohl in Jobs als auch in Ketten und Cronjobs wiederverwendet werden
|
||||
|
||||
## Tab `Encode-Presets`
|
||||
|
||||
Bereiche:
|
||||
|
||||
1. `Standard-Zuordnungen` (Slots)
|
||||
2. `Preset-Liste` (CRUD)
|
||||
Hier werden Video-Standards für Disc- und Converter-Workflows verwaltet.
|
||||
|
||||
### Standard-Zuordnungen
|
||||
|
||||
Es gibt vier persistente Slots:
|
||||
Es gibt vier feste Slots:
|
||||
|
||||
- `bluray_movie`
|
||||
- `bluray_series`
|
||||
- `dvd_movie`
|
||||
- `dvd_series`
|
||||
- `Blu-ray Film`
|
||||
- `Blu-ray Serie`
|
||||
- `DVD Film`
|
||||
- `DVD Serie`
|
||||
|
||||
Die Auswahl ist medientyp-kompatibel gefiltert. Nicht kompatible oder fehlende bereits gespeicherte IDs werden weiterhin sichtbar gemacht, damit bestehende Zuordnungen nachvollziehbar bleiben.
|
||||
Wenn für einen Workflow hier ein Default gesetzt ist, erscheint dieses User-Preset später in der Review bereits vorausgewählt.
|
||||
|
||||
### Preset-Inhalt
|
||||
|
||||
Ein Preset umfasst:
|
||||
Ein User-Preset besteht aus:
|
||||
|
||||
- Name
|
||||
- Medientyp (`all`, `bluray`, `dvd`)
|
||||
- HandBrake-Preset (`-Z`)
|
||||
- HandBrake-Preset
|
||||
- Extra Args
|
||||
- optionale Beschreibung
|
||||
- optionaler Beschreibung
|
||||
|
||||
## Tab `Cronjobs`
|
||||
|
||||
Funktionen:
|
||||
|
||||
- Cronjob erstellen/bearbeiten/löschen
|
||||
- Debounced Validierung des Cron-Ausdrucks
|
||||
- Cronjob anlegen, bearbeiten, löschen
|
||||
- Cron-Ausdruck live validieren
|
||||
- Quelle wählen: `Skript` oder `Skriptkette`
|
||||
- Aktiv- und PushOver-Toggle je Job
|
||||
- Aktiv- und PushOver-Status pro Job setzen
|
||||
- `Jetzt ausführen`
|
||||
- Lauf-Logs öffnen
|
||||
|
||||
Die Seite zeigt zusätzlich Live-Status laufender Cron-Aktivitäten (Runtime Activities).
|
||||
Die Runtime-Aktivitäten der laufenden Cronjobs werden zusätzlich live angezeigt.
|
||||
|
||||
## Expertenbereich: Activation Bytes Cache
|
||||
|
||||
Der Activation-Bytes-Block wird nur im Expertenmodus angezeigt und nur wenn Einträge vorhanden sind.
|
||||
Dieser Block wird nur im Expertenmodus angezeigt.
|
||||
|
||||
Er zeigt:
|
||||
Er zeigt lokal bekannte AAX-Activation-Bytes mit:
|
||||
|
||||
- AAX-Checksum
|
||||
- Prüfsumme
|
||||
- Activation Bytes
|
||||
- Speicherzeitpunkt
|
||||
|
||||
## Validierungshinweise für Template-Felder
|
||||
Das hilft bei Audiobook-Workflows, wenn dieselbe Datei oder derselbe Hash später erneut auftaucht.
|
||||
|
||||
## Validierung von Template-Feldern
|
||||
|
||||
Template-Felder akzeptieren nur:
|
||||
|
||||
- Buchstaben/Ziffern
|
||||
- Buchstaben und Ziffern
|
||||
- Leerzeichen
|
||||
- `_` und `-`
|
||||
- Platzhalter in `{...}` bzw. `${...}`
|
||||
- `/` für Ordnertrennung
|
||||
- Platzhalter in `{...}` oder `${...}`
|
||||
- `/` für Unterordner
|
||||
|
||||
Nicht erlaubt sind z. B. unvollständige geschweifte Klammern oder sonstige Sonderzeichen.
|
||||
Damit verhindert Ripster fehlerhafte Dateinamen schon beim Speichern.
|
||||
|
||||
## Siehe auch
|
||||
|
||||
- [Einstellungsreferenz](../configuration/settings-reference.md)
|
||||
- [Alle Einstellungen](../configuration/settings-reference.md)
|
||||
- [Ripper](ripper.md)
|
||||
- [Workflows aus Nutzersicht](../workflows/index.md)
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
# TMDb Migration
|
||||
|
||||
Die Seite `TMDb Migration` ist eine Sonderansicht für ältere Bestandsjobs, die noch nicht als auf TMDb migriert markiert sind.
|
||||
|
||||
## Zugriff
|
||||
|
||||
- Direktlink: `/tmdb-migration`
|
||||
- nicht in der normalen Top-Navigation verlinkt
|
||||
|
||||
## Wofür die Seite gedacht ist
|
||||
|
||||
Typische Einsatzfälle:
|
||||
|
||||
- Altbestand aus früheren Ständen bereinigen
|
||||
- mehrere Jobs nacheinander auf aktuelle TMDb-Metadaten umstellen
|
||||
- Historie konsistent auf den heutigen Metadaten-Workflow bringen
|
||||
|
||||
## Funktionsweise
|
||||
|
||||
Die Seite lädt offene Migrationskandidaten und zeigt:
|
||||
|
||||
- Job-ID
|
||||
- Titel
|
||||
- Jahr
|
||||
- Medium
|
||||
- aktuellen Status
|
||||
|
||||
Aktionen:
|
||||
|
||||
- `Liste neu laden`
|
||||
- `Start`
|
||||
- `Stop`
|
||||
|
||||
## Ablauf einer Sequenz
|
||||
|
||||
1. Jobliste laden
|
||||
2. `Start`
|
||||
3. der bekannte TMDb-Metadaten-Dialog öffnet sich für den ersten Job
|
||||
4. nach erfolgreicher Übernahme plant Ripster den nächsten Job mit Cooldown
|
||||
|
||||
Wichtig:
|
||||
|
||||
- zwischen zwei Jobs liegt bewusst eine Wartezeit von mindestens 10 Sekunden
|
||||
- damit wird die TMDb-API bei Serienmigrationen nicht unnötig belastet
|
||||
|
||||
## Relevante Settings
|
||||
|
||||
- `TMDb Read Access Token`
|
||||
- `Film-Sprache`
|
||||
- `Fallback Sprache`
|
||||
|
||||
Ohne diese Einstellungen ist die Migration nicht sinnvoll nutzbar.
|
||||
@@ -44,7 +44,8 @@ Dann muss eine Playlist bestätigt werden, bevor der Workflow weiterläuft.
|
||||
|
||||
| Feld in `Settings` | Wirkung |
|
||||
|---|---|
|
||||
| `Minimale Titellaenge (Minuten)` | Mindestlaufzeit für Kandidaten |
|
||||
| `Minimale Titellänge (Minuten)` | Mindestlaufzeit für Kandidaten aus MakeMKV/Playlist-Analyse |
|
||||
| `TMDb Runtime-Abzug für Playlistfilter (%)` | lockert bei Bedarf die untere Laufzeitgrenze relativ zur TMDb-Laufzeit, damit leicht kürzere Hauptfassungen Kandidaten bleiben |
|
||||
|
||||
Default ist aktuell `60` Minuten.
|
||||
|
||||
@@ -52,7 +53,14 @@ Default ist aktuell `60` Minuten.
|
||||
|
||||
## UI-Verhalten
|
||||
|
||||
Bei manueller Entscheidung zeigt das Ripper Kandidaten inkl. Score/Bewertung und markiert eine Empfehlung.
|
||||
Bei manueller Entscheidung zeigt der `Ripper` Kandidaten mit:
|
||||
|
||||
- Playlist-Datei
|
||||
- Titel-ID
|
||||
- Laufzeit
|
||||
- Score
|
||||
- Empfehlung
|
||||
- Segment- und Audio-Vorschau
|
||||
|
||||
Nach Bestätigung:
|
||||
|
||||
|
||||
+282
-123
@@ -1,207 +1,366 @@
|
||||
# Workflows aus Nutzersicht
|
||||
|
||||
Diese Seite beschreibt die produktiven Abläufe als Handbuch: welche Entscheidung an welcher Stelle fällt, welche Objekte dabei entstehen (Job, Container, Child-Job) und welche Dateien in welchen Ordnern landen.
|
||||
Diese Seite beschreibt die produktiven Abläufe aus Sicht der Benutzer: welche Entscheidung wann anfällt, welche Jobs oder Container entstehen und welche Settings den Ablauf sichtbar beeinflussen.
|
||||
|
||||
## Gemeinsame Grundlagen
|
||||
|
||||
### Statuskette im Normalfall
|
||||
### Typische Statuskette
|
||||
|
||||
`Medium erkannt` -> `Analyse` -> `Metadatenauswahl` -> `Startbereit` -> `Rippen` -> `Mediainfo-Pruefung` -> `Bereit zum Encodieren` -> `Encodieren` -> `Fertig`
|
||||
`Medium erkannt` -> `Analyse` -> `Metadatenauswahl` -> `Startbereit` -> `Rippen` -> `Mediainfo-Prüfung` -> `Bereit zum Encodieren` -> `Encodieren` -> `Fertig`
|
||||
|
||||
Abweichungen:
|
||||
Wichtige Abweichungen:
|
||||
|
||||
- bei Blu-ray/DVD mit nötiger Playlistwahl: `Mediainfo-Pruefung` -> `Warte auf Auswahl` -> zurück in `Mediainfo-Pruefung`
|
||||
- bei vorhandenem RAW: `Startbereit` springt direkt in Review/Prüfung ohne neuen Laufwerks-Rip
|
||||
- bei Fehler/Abbruch: `Fehler` oder `Abgebrochen` mit Wiederanlauf-Aktionen
|
||||
- bei vorhandenem RAW: Sprung direkt in RAW-Entscheidung oder Review
|
||||
- bei mehrdeutigen Blu-rays/DVDs: `Warte auf Auswahl` für Playlist- oder Titelauswahl
|
||||
- bei Fehler oder Abbruch: `Fehler` oder `Abgebrochen` mit Folgeaktionen
|
||||
- bei Audio-CDs und Audiobooks: eigener Spezialflow innerhalb derselben Gesamtpipeline
|
||||
|
||||
### Job- und Container-Typen
|
||||
### Welche Settings fast überall hineinspielen
|
||||
|
||||
| Typ | Zweck | Was enthält der Typ? |
|
||||
|---|---|---|
|
||||
| Normaler Disc-Job | Einzel-Film oder einzelne Disc | RAW-Pfad, Output-Pfad, Logs, Review |
|
||||
| `dvd_series_container` | logischer Serien-Container (pro Serie/Staffel) | Metadatenanker, aggregierter Status über Kinder |
|
||||
| `dvd_series_child` | einzelne Serien-Disc oder Serien-Episode-Job | eigentliche RAW-/Encode-Arbeit |
|
||||
| `multipart_movie_container` | logischer Multipart-Film-Container | Zusammenfassung für mehrere Film-Discs |
|
||||
| `multipart_movie_child` | einzelne Disc innerhalb Multipart-Film | Disc-spezifische RAW-/Encode-Daten |
|
||||
Die wichtigsten globalen Einflussfaktoren:
|
||||
|
||||
Wichtig:
|
||||
- `Parallele Jobs`
|
||||
- `Max. parallele Audio CD Jobs`
|
||||
- `Max. Encodes gesamt (medienunabhängig)`
|
||||
- `Audio CDs: Queue-Reihenfolge überspringen`
|
||||
- `PushOver`-Ereignisse
|
||||
- Pfade, Templates und Owner-Felder
|
||||
|
||||
- Container sind primär Ordnungs- und Statusobjekte.
|
||||
- Dateien (RAW/Output) hängen an den Child-Jobs.
|
||||
Für Disc-Video zusätzlich:
|
||||
|
||||
## Workflow A: Film (Blu-ray/DVD)
|
||||
- `Minimale Titellänge (Minuten)`
|
||||
- `TMDb Runtime-Abzug für Playlistfilter (%)`
|
||||
- `HandBrake Preset`
|
||||
- `HandBrake Extra Args`
|
||||
- `Review Audio-Sprachen (...)`
|
||||
- `Review UT-Sprachen (...)`
|
||||
- Standard-Zuordnungen aus `Settings -> Encode-Presets`
|
||||
|
||||
### 1) Disc analysieren und Film-Metadaten wählen
|
||||
## Workflow A: Film von Disc (Blu-ray / DVD)
|
||||
|
||||
1. Im `Ripper` `Analyse starten`.
|
||||
2. Im Metadaten-Dialog Film auswählen (OMDb bzw. manuelle Film-Metadaten).
|
||||
3. `Auswahl übernehmen`.
|
||||
### 1. Disc analysieren und TMDb-Metadaten wählen
|
||||
|
||||
1. Im `Ripper` `Analyse starten`
|
||||
2. im Metadaten-Dialog Film auswählen
|
||||
3. `Auswahl übernehmen`
|
||||
|
||||
Wirkung:
|
||||
|
||||
- der Job wird als Film-Workflow geführt
|
||||
- Film-Fingerprint für Duplikaterkennung wird gebildet (IMDb oder Titel/Jahr)
|
||||
- Film-Metadaten, Poster und Fingerprint werden gesetzt
|
||||
|
||||
### 2) Duplikatfall entscheiden
|
||||
Relevante Settings:
|
||||
|
||||
Wenn Film mit gleichem Fingerprint bereits existiert, gibt es zwei Wege:
|
||||
- `TMDb Read Access Token`
|
||||
- `Film-Sprache`
|
||||
- `Fallback Sprache`
|
||||
|
||||
1. `Übernahme erzwingen` (`allow_new`): neuer unabhängiger Film-Job
|
||||
2. `Multipart movie`: neuer Job wird mit bestehendem Job in einem Multipart-Container verknüpft
|
||||
### 2. Duplikatfall entscheiden
|
||||
|
||||
Wenn ein Film mit gleichem Fingerprint bereits existiert:
|
||||
|
||||
1. `Übernahme erzwingen`: neuer unabhängiger Film-Job
|
||||
2. `Multipart movie`: neuer Job wird mit bestehendem Film zu einem Multipart-Container verknüpft
|
||||
|
||||
Bei Multipart gilt:
|
||||
|
||||
- beide Discs brauchen unterschiedliche `Disc-Nummer`
|
||||
- gleiche Disc-Nummer blockiert den Vorgang (`MULTIPART_DISC_ALREADY_EXISTS`)
|
||||
- beide Discs brauchen unterschiedliche Disc-Nummern
|
||||
- gleiche Disc-Nummern blockieren den Vorgang
|
||||
|
||||
### 3) RAW-Verzeichnis entsteht
|
||||
### 3. RAW-Verzeichnis und RAW-Entscheidung
|
||||
|
||||
Ordnername basiert auf Metadaten plus Job-ID:
|
||||
Wenn noch kein passendes RAW vorhanden ist:
|
||||
|
||||
- `Incomplete_<Titel> (<Jahr>) - RAW - job-<id>`
|
||||
- Ripster legt ein neues RAW-Verzeichnis an
|
||||
|
||||
Zustandswechsel des RAW-Ordners:
|
||||
Wenn bereits ein passendes RAW gefunden wird:
|
||||
|
||||
- beim Start: `Incomplete_...`
|
||||
- nach erfolgreichem Rip: `Rip_Complete_...`
|
||||
- nach erfolgreichem Encode: Prefix wird entfernt (final)
|
||||
- der Job geht in `Warte auf Auswahl`
|
||||
- du entscheidest, ob das vorhandene RAW weiterverwendet oder neu gerippt wird
|
||||
|
||||
### 4) Review und Encode
|
||||
Relevante Settings:
|
||||
|
||||
In `Bereit zum Encodieren`:
|
||||
- `raw_dir_bluray`, `raw_dir_dvd`
|
||||
- `raw_dir_bluray_owner`, `raw_dir_dvd_owner`
|
||||
|
||||
- Titel wählen
|
||||
- Audio-/Subtitle-Spuren festlegen
|
||||
- optional User-Preset
|
||||
- optional Pre-/Post-Encode-Skripte oder Ketten
|
||||
### 4. Playlist- oder Titelauswahl
|
||||
|
||||
Beim Start:
|
||||
Bei bestimmten Discs ist nach der Metadatenphase eine manuelle Auswahl nötig:
|
||||
|
||||
- temporäre Ausgabe in `Incomplete_job-<id>/<Datei>.<ext>`
|
||||
- nach Erfolg Verschiebung in finalen Zielpfad aus Film-Template
|
||||
- Playlist-Auswahl
|
||||
- HandBrake-Titelauswahl
|
||||
- bei Serien-Grenzfällen PlayAll- oder Doppelfolgen-Entscheidung
|
||||
|
||||
## Workflow B: Serie (Blu-ray/DVD)
|
||||
Das ist der aktuelle `playlistflow`.
|
||||
|
||||
### 1) Serienmodus aktivieren
|
||||
Relevante Settings:
|
||||
|
||||
1. Disc analysieren.
|
||||
2. Im Metadaten-Dialog Serienmetadaten wählen (TMDb-basiert).
|
||||
3. `Disc-Nummer` setzen (Pflicht, ab 1).
|
||||
- `Minimale Titellänge (Minuten)`
|
||||
- `TMDb Runtime-Abzug für Playlistfilter (%)`
|
||||
- `Bei manueller Auswahl senden`
|
||||
|
||||
Praxis:
|
||||
|
||||
- zu hoher Mindestwert blendet legitime Alternativfassungen aus
|
||||
- ein kleiner Runtime-Abzug hilft bei Discs, deren Hauptfilm minimal unter der TMDb-Laufzeit liegt
|
||||
|
||||
### 5. Review und Encode
|
||||
|
||||
Im Zustand `Bereit zum Encodieren` entscheidest du:
|
||||
|
||||
- welcher Titel encodiert wird
|
||||
- welche Audio-Spuren übernommen werden
|
||||
- welche Untertitel übernommen, erzwungen oder eingebrannt werden
|
||||
- welches Preset gilt
|
||||
- welche Pre-/Post-Encode-Skripte oder Ketten mitlaufen
|
||||
|
||||
Relevante Settings:
|
||||
|
||||
- `HandBrake Preset`
|
||||
- `HandBrake Extra Args`
|
||||
- `Review Audio-Sprachen (Blu-ray Film)` oder `Review Audio-Sprachen (DVD Film)`
|
||||
- `Review UT-Sprachen (Blu-ray Film)` oder `Review UT-Sprachen (DVD Film)`
|
||||
- `Ausgabeformat`
|
||||
- Standard-Userpreset für Film unter `Settings -> Encode-Presets`
|
||||
|
||||
### 6. Finale Ausgabe
|
||||
|
||||
Finale Ausgabe:
|
||||
|
||||
- Zielordner: `movie_dir_bluray` oder `movie_dir_dvd`
|
||||
- Dateiname und Ordner: `output_template_bluray` oder `output_template_dvd`
|
||||
|
||||
Optional:
|
||||
|
||||
- `.nfo` direkt nach Encode
|
||||
|
||||
Relevante Settings:
|
||||
|
||||
- `movie_dir_bluray`, `movie_dir_dvd`
|
||||
- `movie_dir_bluray_owner`, `movie_dir_dvd_owner`
|
||||
- `output_template_bluray`, `output_template_dvd`
|
||||
- `generate_nfo_after_encode`
|
||||
|
||||
## Workflow B: Serie von Disc (Blu-ray / DVD)
|
||||
|
||||
### 1. Serienmodus festlegen
|
||||
|
||||
1. Disc analysieren
|
||||
2. im Metadaten-Dialog Serienmetadaten wählen
|
||||
3. `Disc-Nummer` setzen
|
||||
|
||||
Wirkung:
|
||||
|
||||
- Workflow-Kind wird `series`
|
||||
- Seriencontainer wird gesucht/angelegt
|
||||
- aktueller Job wird als `dvd_series_child` darunter geführt
|
||||
- Ripster arbeitet als Serien-Workflow
|
||||
- Seriencontainer wird gesucht oder angelegt
|
||||
- der Job wird als Child unter diesem Container geführt
|
||||
|
||||
### 2) Seriencontainer und Disc-Konflikte
|
||||
### 2. Serien-RAW und Staffelkontext
|
||||
|
||||
Beim Speichern wird geprüft:
|
||||
Für Serien bevorzugt Ripster eigene Serien-RAW-Verzeichnisse:
|
||||
|
||||
- existiert für Serie/Staffel bereits ein Container?
|
||||
- existiert in diesem Container bereits dieselbe `Disc-Nummer`?
|
||||
- `raw_dir_bluray_series`
|
||||
- `raw_dir_dvd_series`
|
||||
|
||||
Wenn ja, wird blockiert (`SERIES_DISC_ALREADY_EXISTS`).
|
||||
Falls leer:
|
||||
|
||||
### 3) Serien-RAW-Pfad
|
||||
- Fallback auf `raw_dir_bluray` bzw. `raw_dir_dvd`
|
||||
|
||||
Für Serien wird ein eigener RAW-Pfad bevorzugt:
|
||||
### 3. Episodenprüfung und Multi-Episode-Fälle
|
||||
|
||||
- Blu-ray: `raw_dir_bluray_series` (Fallback: `raw_dir_bluray`)
|
||||
- DVD: `raw_dir_dvd_series` (Fallback: `raw_dir_dvd`)
|
||||
In der Review werden Episoden oder Mehrfachfolgen aufgelöst.
|
||||
|
||||
RAW-Namensbasis enthält Staffel/Disc (`SxDy`) und wird ebenfalls mit den Prefix-Phasen geführt:
|
||||
Ausgabevarianten:
|
||||
|
||||
- `Incomplete_...` -> `Rip_Complete_...` -> final
|
||||
- Einzel-Episode
|
||||
- Multi-Episode-Datei
|
||||
|
||||
### 4) Serien-Review und Episoden-Ausgabe
|
||||
Relevante Settings:
|
||||
|
||||
Beim Review werden Episoden-/Titelzuordnungen genutzt. Je nach Auswahl:
|
||||
- `output_template_bluray_series_episode`
|
||||
- `output_template_bluray_series_multi_episode`
|
||||
- `output_template_dvd_series_episode`
|
||||
- `output_template_dvd_series_multi_episode`
|
||||
- `series_dir_bluray`
|
||||
- `series_dir_dvd`
|
||||
|
||||
- Einzel-Episode: Episode-Template
|
||||
- Multi-Episode-Titel: Multi-Episode-Template
|
||||
### 4. Playlistflow auch bei Serien
|
||||
|
||||
Ausgabepfad:
|
||||
Auch Serien können vor der Review in eine Playlist- oder Titelauswahl laufen.
|
||||
|
||||
- Root: `series_dir_*` (Fallback auf `movie_dir_*`)
|
||||
- Dateiname/Unterordner aus Serien-Template
|
||||
Zusätzlich wirken:
|
||||
|
||||
### 5) Multi-Episode-Disc als Batch
|
||||
|
||||
Wenn mehrere Episoden-Titel aus einer Disc encodiert werden:
|
||||
|
||||
- Ripster erzeugt Episode-Child-Jobs
|
||||
- der ursprüngliche Disc-Job dient als Batch-Anker
|
||||
- RAW-Finalisierung erfolgt erst, wenn alle Episode-Encodes abgeschlossen sind
|
||||
- `Review Audio-Sprachen (Blu-ray Serie)` / `Review Audio-Sprachen (DVD Serie)`
|
||||
- `Review UT-Sprachen (Blu-ray Serie)` / `Review UT-Sprachen (DVD Serie)`
|
||||
- Serien-Default-Presets unter `Settings -> Encode-Presets`
|
||||
|
||||
## Workflow C: Multipart-Film
|
||||
|
||||
### Wann dieser Flow gedacht ist
|
||||
### Wann der Flow gedacht ist
|
||||
|
||||
- gleicher Film auf mehreren Discs (z. B. Disc 1/Disc 2)
|
||||
- Zusammengehörigkeit soll in Historie und Detailansichten sichtbar sein
|
||||
- gleicher Film auf mehreren Discs
|
||||
- die Discs sollen in Historie und Detailansichten zusammengehören
|
||||
|
||||
### Ablauf
|
||||
|
||||
1. Film-Metadaten wählen.
|
||||
2. Duplikatdialog -> `Multipart movie`.
|
||||
3. Disc-Nummern für bestehenden und neuen Job festlegen.
|
||||
1. Film-Metadaten wählen
|
||||
2. Duplikatdialog `Multipart movie`
|
||||
3. Disc-Nummern für bestehenden und neuen Job festlegen
|
||||
|
||||
Wirkung:
|
||||
|
||||
- `multipart_movie_container` wird angelegt oder wiederverwendet
|
||||
- beteiligte Jobs werden `multipart_movie_child`
|
||||
- Container führt gemeinsame Metadaten, Kinder führen je Disc die eigentlichen Artefakte
|
||||
- die Discs werden als Child-Jobs darunter geführt
|
||||
- zusätzlich wird ein Merge-Job vorbereitet
|
||||
|
||||
## Workflow D: Vorhandenes RAW / RAW-Import
|
||||
Relevante Settings:
|
||||
|
||||
### Fall 1: RAW bereits vorhanden bei Metadatenübernahme
|
||||
- `mkvmerge_command`
|
||||
- Film-Output-Templates
|
||||
- Queue-Limits, falls mehrere Discs parallel weiterverarbeitet werden
|
||||
|
||||
Nach Metadaten-Übernahme erkennt Ripster passende RAW-Ordner und setzt den Job auf Entscheidungsstatus.
|
||||
## Workflow D: Audio-CD
|
||||
|
||||
Möglichkeiten:
|
||||
### 1. TOC lesen und Metadaten wählen
|
||||
|
||||
- vorhandenes RAW weiterverwenden (kein neuer Rip)
|
||||
- RAW löschen/ignorieren und neu rippen
|
||||
1. Audio-CD analysieren
|
||||
2. Tracks prüfen
|
||||
3. Metadaten aus MusicBrainz übernehmen oder manuell anpassen
|
||||
|
||||
### Fall 2: Orphan-RAW aus `/database`
|
||||
### 2. Trackauswahl und Format
|
||||
|
||||
1. In `Database` `RAW prüfen`.
|
||||
2. Bei orphan RAW `Job anlegen`.
|
||||
3. Job wird in Historie erzeugt und wie "Disk analysieren aus RAW" weiterverarbeitet.
|
||||
Vor dem Start legst du fest:
|
||||
|
||||
## Workflow E: Nachbearbeitung bestehender Jobs
|
||||
- welche Tracks übernommen werden
|
||||
- welches Ausgabeformat gilt
|
||||
- welche Formatoptionen genutzt werden
|
||||
- welche Pre-/Post-Encode-Skripte oder Ketten mitlaufen
|
||||
|
||||
In `Historie` (Detaildialog):
|
||||
### 3. Rip und Encode
|
||||
|
||||
| Aktion | Wirkung |
|
||||
|---|---|
|
||||
| `OMDb neu zuordnen` | Metadaten neu schreiben, Folder-Rename wird best effort angestoßen |
|
||||
| `Review neu starten` | Titel-/Spurprüfung aus aktuellem RAW neu aufbauen |
|
||||
| `RAW neu encodieren` | Encode erneut aus vorhandenem RAW starten |
|
||||
| `Encode neu starten` | letzte bestätigte Review-Einstellungen wiederverwenden |
|
||||
| `Retry Rippen` | Rip/Analyse neu starten; alter Job-RAW kann bereinigt werden |
|
||||
Die CD läuft anschließend als Track-für-Track-Flow:
|
||||
|
||||
## Wo landet was? (Artefakt-Matrix)
|
||||
`CD-Metadatenauswahl` -> `CD-Startbereit` -> `CD-Rippen` -> `CD-Encodieren` -> `Fertig`
|
||||
|
||||
| Artefakt | Film | Serie | Multipart |
|
||||
|---|---|---|---|
|
||||
| RAW | `raw_dir_*` | bevorzugt `raw_dir_*_series` | pro Child-Job im normalen Film-RAW-Schema |
|
||||
| Finale Ausgabe | `movie_dir_*` + Film-Template | `series_dir_*` (Fallback `movie_dir_*`) + Serien-Templates | pro Child-Job normaler Film-Output |
|
||||
| Container-Datensatz | nein | ja (`dvd_series_container`) | ja (`multipart_movie_container`) |
|
||||
| Löschvorschau in Historie | einzelner Job oder Related Scope | Container-/Child-bezogen mit Pfadauswahl | Container-/Child-bezogen mit Pfadauswahl |
|
||||
Relevante Settings:
|
||||
|
||||
## Queue-Verhalten im Alltag
|
||||
|
||||
Die Startfreigabe hängt an vier Settings:
|
||||
|
||||
- `Max. parallele Film/Video Encodes`
|
||||
- `raw_dir_cd`
|
||||
- `movie_dir_cd`
|
||||
- `raw_dir_cd_owner`
|
||||
- `movie_dir_cd_owner`
|
||||
- `cd_output_template`
|
||||
- `cdparanoia_command`
|
||||
- `Max. parallele Audio CD Jobs`
|
||||
- `Max. Encodes gesamt`
|
||||
- `Audio CDs: Queue-Reihenfolge überspringen`
|
||||
|
||||
Praxis:
|
||||
## Workflow E: Converter
|
||||
|
||||
- Film/Video- und Audio/CD laufen in getrennten Lanes
|
||||
- Gesamtlimit begrenzt beide gemeinsam
|
||||
- Queue kann neben Jobs auch `Skript`, `Kette`, `Warten` enthalten
|
||||
### 1. Dateien bereitstellen
|
||||
|
||||
Dateien gelangen in den Converter über:
|
||||
|
||||
- Upload
|
||||
- bestehende Ordner im `converter_raw_dir`
|
||||
- manuelle Dateiverwaltung im Explorer
|
||||
|
||||
### 2. Jobs aus Auswahl erzeugen
|
||||
|
||||
- Video und ISO: immer ein Job pro Datei
|
||||
- Audio: ein Job pro Datei oder gemeinsamer Audio-Job
|
||||
|
||||
### 3. Job konfigurieren und starten
|
||||
|
||||
Je nach Medium:
|
||||
|
||||
- Video/ISO: Review mit Track- und Preset-Auswahl
|
||||
- Audio: direkte Format- und Zielkonfiguration
|
||||
|
||||
Relevante Settings:
|
||||
|
||||
- `converter_scan_extensions`
|
||||
- `converter_polling_enabled`
|
||||
- `converter_polling_interval`
|
||||
- `converter_raw_dir`
|
||||
- `converter_movie_dir`
|
||||
- `converter_audio_dir`
|
||||
- `converter_output_template_video`
|
||||
- `converter_output_template_audio`
|
||||
- globale Queue-Limits
|
||||
|
||||
## Workflow F: Audiobooks
|
||||
|
||||
### 1. AAX hochladen
|
||||
|
||||
1. Datei hochladen
|
||||
2. Metadaten und Kapitel aufbauen lassen
|
||||
3. bei Bedarf Activation Bytes klären
|
||||
|
||||
### 2. Ausgabeformat wählen
|
||||
|
||||
- `m4b`: eine Datei
|
||||
- `mp3`: eine Datei pro Kapitel
|
||||
- `flac`: eine Datei pro Kapitel
|
||||
|
||||
### 3. Kapitel und Skripte prüfen
|
||||
|
||||
Vor dem Start anpassbar:
|
||||
|
||||
- Kapitelnamen
|
||||
- Pre-Encode-Skripte und -Ketten
|
||||
- Post-Encode-Skripte und -Ketten
|
||||
|
||||
Relevante Settings:
|
||||
|
||||
- `raw_dir_audiobook`
|
||||
- `movie_dir_audiobook`
|
||||
- `audiobook_raw_template`
|
||||
- `output_template_audiobook`
|
||||
- `output_chapter_template_audiobook`
|
||||
- `ffprobe_command`
|
||||
- `ffmpeg_command`
|
||||
- globale Queue-Limits
|
||||
|
||||
## Workflow G: Nachbearbeitung in der Historie
|
||||
|
||||
Typische Folgeaktionen:
|
||||
|
||||
- `TMDb neu zuweisen`
|
||||
- `Review neu starten`
|
||||
- `RAW neu encodieren`
|
||||
- `Encode neu starten`
|
||||
- `Retry Rippen`
|
||||
- `Download` als ZIP einreihen
|
||||
|
||||
Besonders wichtig:
|
||||
|
||||
- `Encode neu starten` verwendet den letzten bestätigten Plan
|
||||
- `handbrake_restart_delete_incomplete_output` entscheidet, ob unvollständige Ausgaben vorher gelöscht werden
|
||||
|
||||
## Workflow H: Downloads und Recovery
|
||||
|
||||
### Downloads
|
||||
|
||||
Aus `Historie` können ZIPs für:
|
||||
|
||||
- `RAW`
|
||||
- `Output`
|
||||
|
||||
erstellt werden.
|
||||
|
||||
Relevante Settings:
|
||||
|
||||
- `download_dir`
|
||||
- `download_dir_owner`
|
||||
|
||||
### Database (Expert)
|
||||
|
||||
Die Recovery-Seite hilft bei orphan RAW:
|
||||
|
||||
- `RAW prüfen`
|
||||
- `Job anlegen`
|
||||
|
||||
So lassen sich vorhandene RAW-Verzeichnisse wieder in einen normalen Workflow zurückführen.
|
||||
|
||||
### TMDb Migration
|
||||
|
||||
Für ältere Bestandsjobs gibt es die Sonderseite `/tmdb-migration`, um mehrere Jobs nacheinander auf den heutigen TMDb-Stand zu bringen.
|
||||
|
||||
@@ -54,12 +54,14 @@ nav:
|
||||
- GUI-Seiten:
|
||||
- gui/index.md
|
||||
- Ripper: gui/ripper.md
|
||||
- Hardware: gui/hardware.md
|
||||
- Audiobooks: gui/audiobooks.md
|
||||
- Settings: gui/settings.md
|
||||
- Historie: gui/history.md
|
||||
- Converter: gui/converter.md
|
||||
- Downloads: gui/downloads.md
|
||||
- Database (Expert): gui/database.md
|
||||
- TMDb Migration: gui/tmdb-migration.md
|
||||
- Workflows aus Nutzersicht: workflows/index.md
|
||||
- Technischer Anhang:
|
||||
- appendix/index.md
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+53
-45
@@ -2,182 +2,190 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/api/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/api/converter/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/api/crons/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/api/downloads/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/api/history/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/api/pipeline/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/api/runtime-activities/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/api/settings/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/api/websocket/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/appendix/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/architecture/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/architecture/backend/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/architecture/database/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/architecture/frontend/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/architecture/overview/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/configuration/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/configuration/environment/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/configuration/settings-reference/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/deployment/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/deployment/development/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/deployment/production/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/getting-started/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/getting-started/configuration/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/getting-started/installation/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/getting-started/prerequisites/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/getting-started/quickstart/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/gui/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/gui/audiobooks/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/gui/converter/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/gui/database/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/gui/downloads/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/gui/hardware/</loc>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/gui/history/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/gui/ripper/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/gui/settings/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/gui/tmdb-migration/</loc>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/pipeline/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/pipeline/encoding/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/pipeline/playlist-analysis/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/pipeline/post-encode-scripts/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/pipeline/workflow/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/tools/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/tools/handbrake/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/tools/makemkv/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/tools/mediainfo/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://mboehmlaender.github.io/ripster/workflows/</loc>
|
||||
<lastmod>2026-05-08</lastmod>
|
||||
<lastmod>2026-06-12</lastmod>
|
||||
</url>
|
||||
</urlset>
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user