0.14.0-4 Docs
Deploy Docs to GitHub Pages / Build Documentation (push) Has been cancelled
Deploy Docs to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled

This commit is contained in:
2026-04-21 14:52:30 +00:00
parent c27a81cdb1
commit ccd6c3ab2a
29 changed files with 999 additions and 691 deletions
+209 -152
View File
@@ -1,181 +1,238 @@
# Einstellungsreferenz
Diese Seite listet die Felder so, wie sie in der GUI unter `Settings` angezeigt werden.
Diese Seite dokumentiert **alle** UI-Settings mit ihrer Wirkung auf Flows, Pfade, Queue und Automatisierung.
Hinweis: Interne Schlüsselnamen werden hier bewusst nicht verwendet. Falls du sie für Integrationen brauchst, nutze die API-Dokumentation.
## Wie Ripster Settings auflöst
---
Ripster arbeitet intern mit profilspezifischen Settings (`bluray`, `dvd`, `cd`, `audiobook`) und bildet sie auf effektive Laufzeitwerte ab.
## Profil-System
Wichtige Regeln:
Viele Felder sind pro Medientyp getrennt vorhanden:
1. Für `bluray` wird bei fehlenden profilierten Toolwerten auf `dvd` zurückgefallen, und umgekehrt.
2. Für `cd` und `audiobook` gibt es nur das eigene Profil.
3. Strikt profilgebundene Pfadkeys (`raw_dir`, `movie_dir`, `series_dir` plus Owner) fallen bei leeren Werten auf Installationsdefaults zurück.
- Blu-ray
- DVD
- Sonstiges
- Audiobook (neu ab v0.12.0)
Installationsdefaults:
---
- RAW: `data/output/raw`
- Movies: `data/output/movies`
- Series: `data/output/series`
- CD: `data/output/cd`
- Audiobook RAW: `data/output/audiobook-raw`
- Audiobook Output: `data/output/audiobooks`
- Converter RAW: `data/output/converter-raw`
- Converter Video: `data/output/converted-movies`
- Converter Audio: `data/output/converted-audio`
## Kritische Wirkungsbereiche
### 1) Pfad- und Template-Einstellungen
Diese Settings bestimmen direkt:
- wo RAW landet
- wo finale Ausgaben landen
- wie Ordner/Dateinamen gerendert werden
Relevante Besonderheiten:
- Serien-RAW nutzt bei Serienworkflow bevorzugt `raw_dir_*_series`.
- Serien-Ausgabe nutzt `series_dir_*` und Serien-Templates (Episode/Multi-Episode).
- Film-Ausgabe nutzt `movie_dir_*` und Film-Template.
- Encode schreibt zunächst in `Incomplete_job-<id>` und finalisiert danach in den Zielpfad.
### 2) Queue- und Parallelitäts-Settings
Die vier Limits greifen kombiniert:
- `pipeline_max_parallel_jobs` (Film/Video-Lane)
- `pipeline_max_parallel_cd_encodes` (Audio/CD-Lane)
- `pipeline_max_total_encodes` (globaler Deckel)
- `pipeline_cd_bypasses_queue` (Audio-Lane darf Filmwarteschlange umgehen)
Effekt:
- Film und Audio haben getrennte Lane-Limits.
- Das Gesamtlimit überstimmt beide, sobald erreicht.
- Queue kann zusätzlich Nicht-Job-Einträge (`Skript`, `Kette`, `Warten`) enthalten.
### 3) Serien-Metadaten-Settings
Diese steuern die Serienqualität direkt:
- TMDb-Token aktiviert TMDb-gestützte Serienmetadaten.
- Sprache/Fallback-Sprachen beeinflussen Titel- und Episodenauflösung.
- Ordnungspräferenz steuert Episode-Order.
- Disc-Profile-Reuse verbessert automatische Zuordnung über mehrere Discs.
### 4) Tool-Settings
Toolfelder (`makemkv_*`, `mediainfo_*`, `handbrake_*`, `ffmpeg_*`, `ffprobe_*`, `cdparanoia_*`) wirken unmittelbar auf die tatsächlich ausgeführten CLI-Aufrufe.
Typische Auswirkungen:
- falscher Toolpfad => früher Pipelinefehler
- geänderte Extra-Args => anderes Analyze-/Encode-Verhalten
- geänderte Presets => andere HandBrake-Ausgaben
## Template-Platzhalter
### Video-Templates
- `${title}` — Titel
- `${year}` — Erscheinungsjahr
- `${imdbId}` — IMDb-ID
### Film-Templates
- `${title}`, `${year}`, `${imdbId}`
### Serien-Templates
- `{seriesTitle}`, `{seasonNr}`, `{episodeNr}`, `{episodeNoStart}`, `{episodeNoEnd}`
- `{episodeRange}`, `{episodeTitle}`, `{parts}`, `{discNr}`, `{year}`, `{language}`
- führende Null möglich mit `{0:seasonNr}` etc.
### Audiobook-Templates
- `{author}` — Autor
- `{title}` — Titel
- `{year}` — Erscheinungsjahr
- `{narrator}` — Sprecher
- `{series}` — Buchreihe
- `{part}` — Teil-Nummer
- `{format}` — Ausgabeformat
### Converter-Templates (Video)
- `{title}`, `{year}`
- `{author}`, `{title}`, `{year}`, `{narrator}`, `{series}`, `{part}`, `{format}`
### Converter-Templates (Audio)
- `{artist}`, `{title}`, `{album}`, `{year}`, `{trackNr}`
### Converter-Templates
Nicht gesetzte Werte werden zu `unknown`.
- Video: `{title}`, `{year}`
- Audio: `{artist}`, `{title}`, `{album}`, `{year}`, `{trackNr}`
---
## Vollständige Feldliste
## Kategorie: Pfade
## Kategorie: Benachrichtigungen
| Feldname in der GUI | Typ | Default |
|---|---|---|
| `Raw Ausgabeordner` | path | `data/output/raw` |
| `Raw Ausgabeordner (Blu-ray)` | path | `null` |
| `Raw Ausgabeordner (DVD)` | path | `null` |
| `Raw Ausgabeordner (Sonstiges)` | path | `null` |
| `Eigentümer Raw-Ordner (Blu-ray)` | string | `null` |
| `Eigentümer Raw-Ordner (DVD)` | string | `null` |
| `Eigentümer Raw-Ordner (Sonstiges)` | string | `null` |
| `Film Ausgabeordner` | path | `data/output/movies` |
| `Film Ausgabeordner (Blu-ray)` | path | `null` |
| `Film Ausgabeordner (DVD)` | path | `null` |
| `Film Ausgabeordner (Sonstiges)` | path | `null` |
| `Eigentümer Film-Ordner (Blu-ray)` | string | `null` |
| `Eigentümer Film-Ordner (DVD)` | string | `null` |
| `Eigentümer Film-Ordner (Sonstiges)` | string | `null` |
| `Log Ordner` | path | `data/logs` |
| `Audiobook RAW-Ordner` | path | `null` |
| `Eigentümer Audiobook RAW-Ordner` | string | `null` |
| `Audiobook Output-Ordner` | path | `null` |
| `Eigentümer Audiobook Output-Ordner` | string | `null` |
| `Output Template (Audiobook)` | string | `{author}/{author} - {title} ({year})` |
| `Audiobook RAW Template` | string | `{author} - {title} ({year})` |
| `Converter Raw-Ordner` | path | `null` |
| `Converter Ausgabe (Video)` | path | `null` |
| `Converter Ausgabe (Audio)` | path | `null` |
| `Output-Template (Video)` | string | `{title}` |
| `Output-Template (Audio)` | string | `{artist} - {title}` |
---
## Kategorie: Laufwerk
| Feldname in der GUI | Typ | Default | Hinweis |
|---|---|---|---|
| `Laufwerksmodus` | select | `auto` | `Auto Discovery` oder `Explizites Device` |
| `Device Pfad` | path | `/dev/sr0` | relevant bei `Explizites Device` |
| `MakeMKV Source Index` | number | `0` | Disc-Index im Auto-Modus |
| `Disc Auto-Erkennung aktiviert` | boolean | `true` | Automatische Disc-Erkennung per Polling |
| `Polling Intervall (ms)` | number | `4000` | 1000..60000 |
---
## Kategorie: Monitoring
| Feldname in der GUI | Typ | Default |
|---|---|---|
| `Hardware Monitoring aktiviert` | boolean | `true` |
| `Hardware Monitoring Intervall (ms)` | number | `5000` |
---
## Kategorie: Tools (global)
| Feldname in der GUI | Typ | Default |
|---|---|---|
| `MakeMKV Kommando` | string | `makemkvcon` |
| `MakeMKV Key` | string | `null` |
| `Mediainfo Kommando` | string | `mediainfo` |
| `Minimale Titellaenge (Minuten)` | number | `60` |
| `HandBrake Kommando` | string | `HandBrakeCLI` |
| `FFmpeg Kommando` | string | `ffmpeg` |
| `FFprobe Kommando` | string | `ffprobe` |
| `Encode-Neustart: unvollständige Ausgabe löschen` | boolean | `true` |
| `Parallele Jobs` | number | `1` |
### Blu-ray-spezifisch
| Feldname in der GUI | Typ | Default |
|---|---|---|
| `Mediainfo Extra Args` (Blu-ray) | string | `null` |
| `MakeMKV Rip Modus` (Blu-ray) | select | `backup` |
| `MakeMKV Analyze Extra Args` (Blu-ray) | string | `null` |
| `MakeMKV Rip Extra Args` (Blu-ray) | string | `null` |
| `HandBrake Preset` (Blu-ray) | string | `H.264 MKV 1080p30` |
| `HandBrake Extra Args` (Blu-ray) | string | `null` |
| `Ausgabeformat` (Blu-ray) | select | `mkv` |
| `Dateiname Template` (Blu-ray) | string | `${title} (${year})` |
| `Ordnername Template` (Blu-ray) | string | `null` |
### DVD-spezifisch
| Feldname in der GUI | Typ | Default |
|---|---|---|
| `Mediainfo Extra Args` (DVD) | string | `null` |
| `MakeMKV Rip Modus` (DVD) | select | `mkv` |
| `MakeMKV Analyze Extra Args` (DVD) | string | `null` |
| `MakeMKV Rip Extra Args` (DVD) | string | `null` |
| `HandBrake Preset` (DVD) | string | `H.264 MKV 480p30` |
| `HandBrake Extra Args` (DVD) | string | `null` |
| `Ausgabeformat` (DVD) | select | `mkv` |
| `Dateiname Template` (DVD) | string | `${title} (${year})` |
| `Ordnername Template` (DVD) | string | `null` |
---
| GUI-Feld | Key | Typ | Default | Wirkung im System |
|---|---|---|---|---|
| `Expertenmodus` | `ui_expert_mode` | `boolean` | `false` | Schaltet erweiterte Einstellungen in der UI ein. |
| `PushOver aktiviert` | `pushover_enabled` | `boolean` | `false` | Master-Schalter für PushOver Versand. |
| `PushOver Token` | `pushover_token` | `string` | `leer` | Application Token für PushOver. |
| `PushOver User` | `pushover_user` | `string` | `leer` | User-Key für PushOver. |
| `PushOver Device (optional)` | `pushover_device` | `string` | `leer` | Optionales Ziel-Device in PushOver. |
| `PushOver Titel-Präfix` | `pushover_title_prefix` | `string` | `Ripster` | Prefix im PushOver Titel. |
| `PushOver Priority` | `pushover_priority` | `number` | `0` | Priorität -2 bis 2. |
| `PushOver Timeout (ms)` | `pushover_timeout_ms` | `number` | `7000` | HTTP Timeout für PushOver Requests. |
| `Bei Metadaten-Auswahl senden` | `pushover_notify_metadata_ready` | `boolean` | `true` | Sendet wenn Metadaten zur Auswahl bereitstehen. |
| `Bei Rip-Start senden` | `pushover_notify_rip_started` | `boolean` | `true` | Sendet beim Start des MakeMKV-Rips. |
| `Bei Encode-Start senden` | `pushover_notify_encoding_started` | `boolean` | `true` | Sendet beim Start von HandBrake. |
| `Bei Erfolg senden` | `pushover_notify_job_finished` | `boolean` | `true` | Sendet bei erfolgreich abgeschlossenem Job. |
| `Bei Fehler senden` | `pushover_notify_job_error` | `boolean` | `true` | Sendet bei Fehlern in der Pipeline. |
| `Bei Abbruch senden` | `pushover_notify_job_cancelled` | `boolean` | `true` | Sendet wenn Job manuell abgebrochen wurde. |
| `Bei Re-Encode Start senden` | `pushover_notify_reencode_started` | `boolean` | `true` | Sendet beim Start von RAW Re-Encode. |
| `Bei Re-Encode Erfolg senden` | `pushover_notify_reencode_finished` | `boolean` | `true` | Sendet bei erfolgreichem RAW Re-Encode. |
## Kategorie: Converter
| Feldname in der GUI | Typ | Default | Hinweis |
|---|---|---|---|
| `Erlaubte Datei-Endungen*` | string | `mkv,mp4,m2ts,iso,avi,mov,flac,mp3,wav,m4a,ogg,opus` | In der UI als Checkbox-Liste, ohne Punkt |
| `Auto-Scan (Polling)` | boolean | `false` | Converter-Ordner automatisch scannen |
| `Polling-Intervall (Sekunden)` | number | `300` | 30..86400 |
| GUI-Feld | Key | Typ | Default | Wirkung im System |
|---|---|---|---|---|
| `Erlaubte Datei-Endungen*` | `converter_scan_extensions` | `string` | `mkv,mp4,m2ts,iso,avi,mov,flac,mp3,wav,m4a,ogg,opus` | Erlaubte Datei-Endungen für den Converter-Scan (ohne Punkt). Wird in der UI als Checkbox-Liste gepflegt. |
| `Auto-Scan (Polling)` | `converter_polling_enabled` | `boolean` | `false` | Converter Raw-Ordner automatisch in regelmäßigen Abständen scannen. |
| `Polling-Intervall (Sekunden)` | `converter_polling_interval` | `number` | `300` | Intervall für automatischen Scan des Converter-Ordners. |
---
## Kategorie: Laufwerk
| GUI-Feld | Key | Typ | Default | Wirkung im System |
|---|---|---|---|---|
| `Laufwerksmodus` | `drive_mode` | `select` | `auto` | Auto-Discovery oder explizites Device. |
| `Device Pfad` | `drive_device` | `path` | `/dev/sr0` | Nur für expliziten Modus, z.B. /dev/sr0. |
| `MakeMKV Source Index` | `makemkv_source_index` | `number` | `0` | Disc Index im Auto-Modus. |
| `Automatische Disk-Erkennung` | `disc_auto_detection_enabled` | `boolean` | `true` | Wenn deaktiviert, findet keine automatische Laufwerksprüfung statt. Neue Disks werden nur per "Laufwerk neu lesen" erkannt. |
| `Polling Intervall (ms)` | `disc_poll_interval_ms` | `number` | `4000` | Intervall für Disk-Erkennung. |
## Kategorie: Metadaten
| Feldname in der GUI | Typ | Default |
|---|---|---|
| `OMDb API Key` | string | `null` |
| `OMDb Typ` | select | `movie` |
| GUI-Feld | Key | Typ | Default | Wirkung im System |
|---|---|---|---|---|
| `OMDb API Key` | `omdb_api_key` | `string` | `leer` | API Key für Metadatensuche. |
| `TMDb Read Access Token` | `tmdb_api_read_access_token` | `string` | `leer` | Read Access Token für Serien-Metadaten über TheMovieDB (TMDb). |
| `DVD Serien-Sprache` | `dvd_series_language` | `string` | `de-DE` | Bevorzugte Sprache für Serien-Metadaten im TMDb-Format, z.B. de-DE oder en-US. |
| `DVD Serien-Fallback-Sprachen` | `dvd_series_fallback_languages` | `string` | `de-DE,en-US` | Kommagetrennte TMDb-Sprachen für Fallback-Titel, z.B. de-DE,en-US,fr-FR. |
| `DVD Serien-Ordnung` | `dvd_series_order_preference` | `select` | `episode_group` | Bevorzugte Episodenordnung für DVD-Serien. Episode Groups nutzen TMDb Alternate Orders, falls vorhanden. |
| `DVD Disc-Profile wiederverwenden` | `dvd_series_reuse_disc_profiles` | `boolean` | `true` | Verwendet zuvor bestätigte Disc-Profile erneut, um Episoden automatischer zuzuordnen. |
| `OMDb Typ` | `omdb_default_type` | `select` | `movie` | Vorauswahl für Suche. |
| `MusicBrainz aktiviert` | `musicbrainz_enabled` | `boolean` | `true` | MusicBrainz-Metadatensuche für CDs aktivieren. |
| `Coverart-Nachladen aktiv` | `coverart_recovery_enabled` | `boolean` | `true` | Wenn aktiv, werden fehlende Coverarts automatisch in Intervallen geprüft und nachgeladen. |
| `Coverart-Prüfintervall (Stunden)` | `coverart_recovery_interval_hours` | `number` | `6` | Intervall für automatische Prüfung fehlender Coverarts in Stunden. |
---
## Kategorie: Monitoring
## Kategorie: Benachrichtigungen (PushOver)
| GUI-Feld | Key | Typ | Default | Wirkung im System |
|---|---|---|---|---|
| `Hardware Monitoring aktiviert` | `hardware_monitoring_enabled` | `boolean` | `true` | Master-Schalter: aktiviert/deaktiviert das komplette Hardware-Monitoring (Polling + Berechnung + WebSocket-Updates). |
| `Hardware Monitoring Intervall (ms)` | `hardware_monitoring_interval_ms` | `number` | `5000` | Polling-Intervall für CPU/RAM/GPU/Storage-Metriken. |
| Feldname in der GUI | Typ | Default |
|---|---|---|
| `PushOver aktiviert` | boolean | `false` |
| `PushOver Token` | string | `null` |
| `PushOver User` | string | `null` |
| `PushOver Device (optional)` | string | `null` |
| `PushOver Titel-Präfix` | string | `Ripster` |
| `PushOver Priority` | number | `0` |
| `PushOver Timeout (ms)` | number | `7000` |
| `Bei Metadaten-Auswahl senden` | boolean | `true` |
| `Bei Rip-Start senden` | boolean | `true` |
| `Bei Encode-Start senden` | boolean | `true` |
| `Bei Erfolg senden` | boolean | `true` |
| `Bei Fehler senden` | boolean | `true` |
| `Bei Abbruch senden` | boolean | `true` |
| `Bei Re-Encode Start senden` | boolean | `true` |
| `Bei Re-Encode Erfolg senden` | boolean | `true` |
## Kategorie: Pfade
| GUI-Feld | Key | Typ | Default | Wirkung im System |
|---|---|---|---|---|
| `Raw-Ordner (Blu-ray)` | `raw_dir_bluray` | `path` | `leer` | RAW-Zielpfad für Blu-ray. Leer = Standardpfad (data/output/raw). |
| `Raw-Ordner (DVD)` | `raw_dir_dvd` | `path` | `leer` | RAW-Zielpfad für DVD. Leer = Standardpfad (data/output/raw). |
| `CD RAW-Ordner` | `raw_dir_cd` | `path` | `leer` | Basisordner für rohe CD-WAV-Dateien (cdparanoia-Output). Leer = Standardpfad (data/output/cd). |
| `Audiobook RAW-Ordner` | `raw_dir_audiobook` | `path` | `leer` | Basisordner für hochgeladene AAX-Dateien. Leer = Standardpfad (data/output/audiobook-raw). |
| `Serien-Ordner (Blu-ray)` | `series_dir_bluray` | `path` | `leer` | Zielordner für Blu-ray-Serienfolgen. Leer = Standardpfad (data/output/series). |
| `Film-Ordner (Blu-ray)` | `movie_dir_bluray` | `path` | `leer` | Encode-Zielpfad für Blu-ray. Leer = Standardpfad (data/output/movies). |
| `Film-Ordner (DVD)` | `movie_dir_dvd` | `path` | `leer` | Encode-Zielpfad für DVD. Leer = Standardpfad (data/output/movies). |
| `Serien-Ordner (DVD)` | `series_dir_dvd` | `path` | `leer` | Zielordner für DVD-Serienfolgen. Leer = Standardpfad (data/output/series). |
| `CD Output-Ordner` | `movie_dir_cd` | `path` | `leer` | Zielordner für encodierte CD-Ausgaben (FLAC, MP3 usw.). Leer = gleicher Ordner wie CD RAW-Ordner. |
| `Audiobook Output-Ordner` | `movie_dir_audiobook` | `path` | `leer` | Zielordner für encodierte Audiobook-Dateien. Leer = Standardpfad (data/output/audiobooks). |
| `Externe Speicher` | `external_storage_paths` | `path` | `[]` | Wird links unter "Freie Speicher" angezeigt. |
| `Log Ordner` | `log_dir` | `path` | `data/logs` | Basisordner für Logs. Job-Logs liegen direkt hier, Backend-Logs in /backend. |
| `CD Output Template` | `cd_output_template` | `string` | `{artist} - {album} ({year})/{trackNr} {artist} - {title}` | Template für relative CD-Ausgabepfade ohne Dateiendung. Platzhalter: {artist}, {album}, {year}, {title}, {trackNr}, {trackNo}. Unterordner sind über "/" möglich alles nach dem letzten "/" ist der Dateiname. Die Endung wird über das gewählte Ausgabeformat gesetzt. |
| `Output Template (Blu-ray)` | `output_template_bluray` | `string` | `${title} (${year})/${title} (${year})` | Template für Ordner und Dateiname. Platzhalter: ${title}, ${year}, ${imdbId}. Unterordner über "/" möglich alles nach dem letzten "/" ist der Dateiname. Die Endung wird über das gewählte Ausgabeformat gesetzt. |
| `Output Template (Blu-ray Serie, Episode)` | `output_template_bluray_series_episode` | `string` | `{seriesTitle}/Staffel {seasonNr}/S{seasonNr}E{episodeNr} - {episodeTitle}` | Template für einzelne Blu-ray-Serienepisoden ohne Dateiendung. Platzhalter: {seriesTitle}, {seasonNr}, {episodeNr}, {episodeTitle}, {discNr}, {year}, {language}. Optional mit führender Null: {0:seasonNr}, {0:episodeNr}. |
| `Output Template (Blu-ray Serie, Multi-Episode)` | `output_template_bluray_series_multi_episode` | `string` | `{seriesTitle}/Staffel {seasonNr}/S{0:seasonNr}E{episodeRange} - {episodeTitle} (Teil {parts})` | Template für zusammengefasste Blu-ray-Serienepisoden ohne Dateiendung. Platzhalter: {seriesTitle}, {seasonNr}, {episodeNoStart}, {episodeNoEnd}, {episodeRange}, {episodeTitle}, {parts}, {discNr}, {year}, {language}. Optional mit führender Null: {0:seasonNr}, {0:episodeNoStart}, {0:episodeNoEnd}. |
| `Output Template (DVD)` | `output_template_dvd` | `string` | `${title} (${year})/${title} (${year})` | Template für Ordner und Dateiname. Platzhalter: ${title}, ${year}, ${imdbId}. Unterordner über "/" möglich alles nach dem letzten "/" ist der Dateiname. Die Endung wird über das gewählte Ausgabeformat gesetzt. |
| `Output Template (DVD Serie, Episode)` | `output_template_dvd_series_episode` | `string` | `{seriesTitle}/Staffel {seasonNr}/S{seasonNr}E{episodeNr} - {episodeTitle}` | Template für einzelne DVD-Serienepisoden ohne Dateiendung. Platzhalter: {seriesTitle}, {seasonNr}, {episodeNr}, {episodeTitle}, {discNr}, {year}, {language}. Optional mit führender Null: {0:seasonNr}, {0:episodeNr}. |
| `Output Template (DVD Serie, Multi-Episode)` | `output_template_dvd_series_multi_episode` | `string` | `{seriesTitle}/Staffel {seasonNr}/S{0:seasonNr}E{episodeRange} - {episodeTitle} (Teil {parts})` | Template für zusammengefasste DVD-Serienepisoden ohne Dateiendung. Platzhalter: {seriesTitle}, {seasonNr}, {episodeNoStart}, {episodeNoEnd}, {episodeRange}, {episodeTitle}, {parts}, {discNr}, {year}, {language}. Optional mit führender Null: {0:seasonNr}, {0:episodeNoStart}, {0:episodeNoEnd}. |
| `Output Template (Audiobook)` | `output_template_audiobook` | `string` | `{author}/{author} - {title} ({year})` | Template für relative Audiobook-Ausgabepfade ohne Dateiendung. Platzhalter: {author}, {title}, {year}, {narrator}, {series}, {part}, {format}. Unterordner sind über "/" möglich. |
| `Audiobook RAW Template` | `audiobook_raw_template` | `string` | `{author} - {title} ({year})` | Template für relative Audiobook-RAW-Ordner. Platzhalter: {author}, {title}, {year}, {narrator}, {series}, {part}. |
| `Converter Raw-Ordner` | `converter_raw_dir` | `path` | `leer` | Eingangsordner für den Converter (Import-Scan und Datei-Uploads). Jeder Upload erhält einen Unterordner. Leer = Standardpfad (data/output/converter-raw). |
| `Converter Ausgabe (Video)` | `converter_movie_dir` | `path` | `leer` | Ausgabepfad für konvertierte Video-Dateien. Leer = Standardpfad (data/output/converted-movies). |
| `Converter Ausgabe (Audio)` | `converter_audio_dir` | `path` | `leer` | Ausgabepfad für konvertierte Audio-Dateien. Leer = Standardpfad (data/output/converted-audio). |
| `Output-Template (Video)` | `converter_output_template_video` | `string` | `{title}` | Dateiname-Template für konvertierte Video-Dateien (ohne Endung). Platzhalter: {title}, {year}. |
| `Output-Template (Audio)` | `converter_output_template_audio` | `string` | `{artist} - {title}` | Dateiname-Template für konvertierte Audio-Dateien (ohne Endung). Platzhalter: {artist}, {title}, {album}, {year}, {trackNr}. |
| `RAW-Ordner (Blu-ray Serie)` | `raw_dir_bluray_series` | `path` | `leer` | RAW-Zielpfad für Blu-ray-Serien. Leer = gleicher Pfad wie RAW-Ordner (Blu-ray). |
| `Eigentümer RAW-Ordner (Blu-ray Serie)` | `raw_dir_bluray_series_owner` | `string` | `leer` | Eigentümer der Dateien im Format user:gruppe für Blu-ray-Serien-RAW. Leer = Eigentümer Raw-Ordner (Blu-ray). |
| `Eigentümer Raw-Ordner (Blu-ray)` | `raw_dir_bluray_owner` | `string` | `leer` | Eigentümer der Dateien im Format user:gruppe. Nur aktiv wenn ein Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. |
| `RAW-Ordner (DVD Serie)` | `raw_dir_dvd_series` | `path` | `leer` | RAW-Zielpfad für DVD-Serien. Leer = gleicher Pfad wie RAW-Ordner (DVD). |
| `Eigentümer RAW-Ordner (DVD Serie)` | `raw_dir_dvd_series_owner` | `string` | `leer` | Eigentümer der Dateien im Format user:gruppe für DVD-Serien-RAW. Leer = Eigentümer Raw-Ordner (DVD). |
| `Eigentümer Raw-Ordner (DVD)` | `raw_dir_dvd_owner` | `string` | `leer` | Eigentümer der Dateien im Format user:gruppe. Nur aktiv wenn ein Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. |
| `Eigentümer CD RAW-Ordner` | `raw_dir_cd_owner` | `string` | `leer` | Eigentümer der Dateien im Format user:gruppe. Nur aktiv wenn ein Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. |
| `Eigentümer Audiobook RAW-Ordner` | `raw_dir_audiobook_owner` | `string` | `leer` | Eigentümer der Audiobook-RAW-Dateien im Format user:gruppe. Nur aktiv wenn ein Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. |
| `Eigentümer Serien-Ordner (Blu-ray)` | `series_dir_bluray_owner` | `string` | `leer` | Eigentümer der Blu-ray-Serienausgaben im Format user:gruppe. Leer = Standardbenutzer des Dienstes. |
| `Eigentümer Film-Ordner (Blu-ray)` | `movie_dir_bluray_owner` | `string` | `leer` | Eigentümer der Dateien im Format user:gruppe. Nur aktiv wenn ein Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. |
| `Eigentümer Film-Ordner (DVD)` | `movie_dir_dvd_owner` | `string` | `leer` | Eigentümer der Dateien im Format user:gruppe. Nur aktiv wenn ein Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. |
| `Eigentümer Serien-Ordner (DVD)` | `series_dir_dvd_owner` | `string` | `leer` | Eigentümer der DVD-Serienausgaben im Format user:gruppe. Leer = Standardbenutzer des Dienstes. |
| `Eigentümer CD Output-Ordner` | `movie_dir_cd_owner` | `string` | `leer` | Eigentümer der encodierten CD-Ausgaben im Format user:gruppe. Leer = Standardbenutzer des Dienstes. |
| `Eigentümer Audiobook Output-Ordner` | `movie_dir_audiobook_owner` | `string` | `leer` | Eigentümer der encodierten Audiobook-Dateien im Format user:gruppe. Leer = Standardbenutzer des Dienstes. |
## Kategorie: Tools
| GUI-Feld | Key | Typ | Default | Wirkung im System |
|---|---|---|---|---|
| `MakeMKV Kommando` | `makemkv_command` | `string` | `makemkvcon` | Pfad oder Befehl für makemkvcon. |
| `MakeMKV Key` | `makemkv_registration_key` | `string` | `leer` | Optionaler Registrierungsschlüssel. Wird vor Analyze/Rip automatisch per "makemkvcon reg" gesetzt. |
| `Mediainfo Kommando` | `mediainfo_command` | `string` | `mediainfo` | Pfad oder Befehl für mediainfo. |
| `Minimale Titellänge (Minuten)` | `makemkv_min_length_minutes` | `number` | `60` | Filtert kurze Titel beim Rip. |
| `HandBrake Kommando` | `handbrake_command` | `string` | `HandBrakeCLI` | Pfad oder Befehl für HandBrakeCLI. |
| `Encode-Neustart: unvollständige Ausgabe löschen` | `handbrake_restart_delete_incomplete_output` | `boolean` | `true` | Wenn aktiv, wird bei "Encode neu starten" der bisherige (nicht erfolgreiche) Output vor Start entfernt. |
| `Max. parallele Film/Video Encodes` | `pipeline_max_parallel_jobs` | `number` | `1` | Maximale Anzahl parallel laufender Film/Video Encode-Jobs. Gilt zusätzlich zum Gesamtlimit. |
| `Max. parallele Audio CD Jobs` | `pipeline_max_parallel_cd_encodes` | `number` | `2` | Maximale Anzahl parallel laufender Audio CD Jobs (Rip + Encode als Einheit). Gilt zusätzlich zum Gesamtlimit. |
| `Max. Encodes gesamt (medienunabhängig)` | `pipeline_max_total_encodes` | `number` | `3` | Gesamtlimit für alle parallel laufenden Encode-Jobs (Film + Audio CD). Dieses Limit hat Vorrang vor den Einzellimits. |
| `Audio CDs: Queue-Reihenfolge überspringen` | `pipeline_cd_bypasses_queue` | `boolean` | `false` | Wenn aktiv, können Audio CD Jobs unabhängig von Film-Jobs starten (überspringen die Film-Queue-Reihenfolge). Einzellimits und Gesamtlimit gelten weiterhin. |
| `Script-Test Timeout (ms)` | `script_test_timeout_ms` | `number` | `0` | Timeout fuer Script-Tests in den Settings. 0 = kein Timeout. |
| `cdparanoia Kommando` | `cdparanoia_command` | `string` | `cdparanoia` | Pfad oder Befehl für cdparanoia. Wird als Fallback genutzt wenn kein individuelles Kommando gesetzt ist. |
| `FFmpeg Kommando` | `ffmpeg_command` | `string` | `ffmpeg` | Pfad oder Befehl für ffmpeg. Wird für Audiobook-Encoding genutzt. |
| `FFprobe Kommando` | `ffprobe_command` | `string` | `ffprobe` | Pfad oder Befehl für ffprobe. Wird für Audiobook-Metadaten und Kapitel genutzt. |
| `Mediainfo Extra Args` | `mediainfo_extra_args_bluray` | `string` | `leer` | Zusätzliche CLI-Parameter für mediainfo (Blu-ray). |
| `MakeMKV Rip Modus` | `makemkv_rip_mode_bluray` | `select` | `backup` | backup: vollständige Blu-ray Struktur im RAW-Ordner (empfohlen, ermöglicht --decrypt). |
| `MakeMKV Analyze Extra Args` | `makemkv_analyze_extra_args_bluray` | `string` | `leer` | Zusätzliche CLI-Parameter für Analyze (Blu-ray). |
| `MakeMKV Rip Extra Args` | `makemkv_rip_extra_args_bluray` | `string` | `leer` | Zusätzliche CLI-Parameter für Rip (Blu-ray). |
| `HandBrake Preset` | `handbrake_preset_bluray` | `string` | `H.264 MKV 1080p30` | Preset Name für -Z (Blu-ray). Leer = kein Preset, nur CLI-Parameter werden verwendet. |
| `HandBrake Extra Args` | `handbrake_extra_args_bluray` | `string` | `leer` | Zusätzliche CLI-Argumente (Blu-ray). |
| `Ausgabeformat` | `output_extension_bluray` | `select` | `mkv` | Dateiendung für finale Datei (Blu-ray). |
| `Mediainfo Extra Args` | `mediainfo_extra_args_dvd` | `string` | `leer` | Zusätzliche CLI-Parameter für mediainfo (DVD). |
| `MakeMKV Rip Modus` | `makemkv_rip_mode_dvd` | `select` | `backup` | backup: vollständige Disc-Struktur im RAW-Ordner (einzig gültige Option für DVDs). |
| `MakeMKV Analyze Extra Args` | `makemkv_analyze_extra_args_dvd` | `string` | `leer` | Zusätzliche CLI-Parameter für Analyze (DVD). |
| `MakeMKV Rip Extra Args` | `makemkv_rip_extra_args_dvd` | `string` | `leer` | Zusätzliche CLI-Parameter für Rip (DVD). |
| `HandBrake Preset` | `handbrake_preset_dvd` | `string` | `H.264 MKV 480p30` | Preset Name für -Z (DVD). Leer = kein Preset, nur CLI-Parameter werden verwendet. |
| `HandBrake Extra Args` | `handbrake_extra_args_dvd` | `string` | `leer` | Zusätzliche CLI-Argumente (DVD). |
| `Ausgabeformat` | `output_extension_dvd` | `select` | `mkv` | Dateiendung für finale Datei (DVD). |
+89 -58
View File
@@ -1,71 +1,102 @@
# Ersteinrichtung
Nach der Installation erfolgt die tägliche Konfiguration fast vollständig in der GUI unter `Settings`.
Diese Seite ist die Betriebs-Checkliste vor dem ersten produktiven Lauf.
## Ziel
## Ziel der Ersteinrichtung
Vor dem ersten echten Job müssen Pfade, Tools und Metadatenzugriff sauber gesetzt sein.
Vor dem ersten Job müssen drei Dinge stabil sein:
## Reihenfolge (empfohlen)
1. Pfade stimmen (RAW, Output, Logs)
2. Tools sind aufrufbar (MakeMKV, HandBrake, MediaInfo)
3. Metadatenzugänge funktionieren (OMDb, optional TMDb/MusicBrainz)
### 1. `Settings` -> Tab `Konfiguration`
## Empfohlene Reihenfolge
Setze zuerst diese Pflichtwerte:
### 1) Basis in `Settings -> Konfiguration`
| Bereich | Wichtige Felder |
Setze zuerst:
- `Raw-Ordner` und `Film-/Serien-Ordner`
- `Log Ordner`
- `MakeMKV Kommando`, `HandBrake Kommando`, `Mediainfo Kommando`
- `OMDb API Key`
Dann speichern.
### 2) Profile pro Medium festziehen
Ripster löst viele Werte profilspezifisch auf (`bluray`, `dvd`, `cd`, `audiobook`).
Pflichtprüfung:
- RAW-Pfade je Profil
- Output-Pfade je Profil
- HandBrake-Preset je Profil
- Output-Templates je Profil
Für Serien zusätzlich:
- `RAW-Ordner (Blu-ray/DVD Serie)`
- `Serien-Ordner (Blu-ray/DVD)`
- Serien-Templates (Episode/Multi-Episode)
### 3) Queue-Verhalten definieren
Stelle ein:
- `Max. parallele Film/Video Encodes`
- `Max. parallele Audio CD Jobs`
- `Max. Encodes gesamt`
- optional `Audio CDs: Queue-Reihenfolge überspringen`
Damit steuerst du Durchsatz, Priorität und Lastverteilung.
### 4) Metadatenquellen absichern
Film:
- OMDb-Key prüfen
Serien:
- TMDb Read Access Token setzen
- Sprache/Fallback-Sprachen festlegen
CD/Audiodaten:
- `MusicBrainz aktiviert` nach Bedarf
### 5) Optional: Benachrichtigungen
- PushOver-Zugangsdaten setzen
- `PushOver Test` ausführen
- Event-Toggles pro Phase prüfen
### 6) Optional: Automatisierung
1. Skripte testen
2. Skriptketten bauen/testen
3. Cronjobs erst danach aktivieren
## Funktionsprüfung (Kurztest)
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.
## Typische Konfigurationsfehler
| Symptom | Häufige Ursache |
|---|---|
| Pfade | `Raw Ausgabeordner`, `Film Ausgabeordner`, `Log Ordner` |
| Tools | `MakeMKV Kommando`, `HandBrake Kommando`, `Mediainfo Kommando` |
| Metadaten | `OMDb API Key`, optional `OMDb Typ` |
Danach `Änderungen speichern`.
### 2. Medienprofile prüfen
Wenn du Blu-ray und DVD unterschiedlich behandeln willst, pflege die profilbezogenen Felder:
- `*_bluray`
- `*_dvd`
- optional `*_other`
Typische Beispiele:
- `HandBrake Preset` (Blu-ray und DVD)
- `Raw Ausgabeordner` (Blu-ray und DVD)
- `Dateiname Template` (Blu-ray und DVD)
### 3. Queue und Monitoring festlegen
- `Parallele Jobs` für den gleichzeitigen Durchsatz
- `Hardware Monitoring aktiviert` + `Hardware Monitoring Intervall (ms)` für Live-Metriken im Ripper
### 4. Optional: Push-Benachrichtigungen
In den Benachrichtigungsfeldern setzen:
- `PushOver aktiviert`
- `PushOver Token`
- `PushOver User`
Dann über `PushOver Test` direkt prüfen.
## 2-Minuten-Funktionstest
1. `Ripper` öffnen
2. Disc einlegen
3. `Analyse starten`
4. Metadaten übernehmen
5. Bis `Bereit zum Encodieren` laufen lassen
Wenn diese Schritte funktionieren, ist die Grundkonfiguration korrekt.
## Wenn Werte nicht gespeichert werden
- Feld mit Fehler markieren lassen (rote Validierung im Formular)
- Pfadangaben und numerische Werte prüfen
- bei Tool-Pfaden direkt CLI-Aufruf im Terminal testen
| 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 |
## Weiter
- [Erster Lauf](quickstart.md)
- [GUI-Seiten im Detail](../gui/index.md)
- [GUI-Seiten](../gui/index.md)
- [Workflows aus Nutzersicht](../workflows/index.md)
+56 -36
View File
@@ -1,19 +1,21 @@
# Erster Lauf
Dieser Ablauf zeigt einen vollständigen Job aus Anwendersicht: von Disc-Erkennung bis fertiger Datei.
Dieser Ablauf führt einen vollständigen Disc-Job von Erkennung bis fertiger Datei durch.
## 1. Ripper öffnen und Disc einlegen
## 1) Disc erkennen
Erwartung:
1. `Ripper` öffnen.
2. Disc einlegen.
3. Auf `Medium erkannt` warten.
- Status wechselt auf `Medium erkannt`
- im Bereich `Disk-Information` sind Laufwerksdaten sichtbar
Prüfen:
Wenn nichts passiert: `Laufwerk neu lesen`.
- `Disk-Information` zeigt Device/Label.
- Falls nicht: `Laufwerk neu lesen`.
## 2. Analyse starten
## 2) Analyse starten
Aktion im Ripper:
Aktion:
- `Analyse starten`
@@ -22,49 +24,67 @@ Erwartung:
- Status `Analyse`
- danach Metadaten-Dialog
## 3. Metadaten auswählen
## 3) Metadaten bestätigen
Im Dialog `Metadaten auswählen`:
Im Dialog:
1. OMDb-Suche nutzen oder manuell eintragen
2. passenden Treffer markieren
3. `Auswahl übernehmen`
1. Treffer suchen/auswählen.
2. Bei Serie zusätzlich Disc-Nummer setzen.
3. `Auswahl übernehmen`.
## 4. Auf den nächsten Zustand reagieren
Mögliche Abzweigungen:
- Normalfall ohne vorhandenes RAW: `Rippen` -> `Mediainfo-Pruefung` -> `Bereit zum Encodieren`
- bei vorhandenem RAW: direkt `Mediainfo-Pruefung` -> `Bereit zum Encodieren`
- bei unklarer Blu-ray-Playlist: `Warte auf Auswahl` (Playlist auswählen und übernehmen)
- Duplikatfilm -> `Übernahme erzwingen` oder `Multipart movie`
- vorhandenes RAW -> Entscheidungsdialog (weiterverwenden oder neu rippen)
## 5. Review in `Bereit zum Encodieren`
## 4) Rip/Review-Phase
Im aufgeklappten Job (`Pipeline-Status`):
Normalfall:
- Encode-Titel wählen
- `Startbereit` -> `Rippen` -> `Mediainfo-Pruefung`
Mögliche Alternativen:
- vorhandenes RAW: direkter Sprung in Prüfung
- Blu-ray/DVD-Entscheidung nötig: `Warte auf Auswahl` für Playlist/Titel
## 5) Encode-Review abschließen
Bei `Bereit zum Encodieren`:
- Titel festlegen
- Audio-/Subtitle-Spuren prüfen
- optional User-Preset auswählen
- optional Pre-/Post-Skripte bzw. Ketten hinzufügen
- optional Preset auswählen
- optional Pre-/Post-Skripte wählen
Dann `Encoding starten`.
Dann:
## 6. Encoding überwachen
- `Encoding starten`
## 6) Encoding überwachen
Während `Encodieren`:
- Fortschritt + ETA im Ripper
- Live-Log im `Pipeline-Status`
- Queue- und Skript/Cron-Status parallel beobachtbar
- Fortschritt/ETA im Ripper
- Queue- und Runtime-Status beobachten
- optional Logkontrolle in Historie
## 7. Ergebnis prüfen
## 7) Ergebnis verifizieren
Bei `Fertig`:
Nach `Fertig`:
1. Seite `Historie` öffnen
2. Job in Details öffnen
3. Output-Pfad, Status und Log prüfen
1. `Historie` öffnen.
2. Jobdetail prüfen.
3. Output-Pfad und Log plausibilisieren.
## Typische Folgeaktionen
Kontrollpunkte:
- Falsches OMDb-Match: in `Historie` -> `OMDb neu zuordnen`
- Neue Encodierung aus RAW: `RAW neu encodieren`
- Prüfung komplett neu aufbauen: `Review neu starten`
- finale Datei am erwarteten Template-Pfad
- RAW-Ordnerzustand finalisiert (kein `Incomplete_`)
## 8) Typische Folgeaktionen
- falsche Metadaten: `OMDb neu zuordnen`
- andere Trackauswahl: `Review neu starten`
- erneuter Encode aus RAW: `RAW neu encodieren`
- gleicher Plan erneut: `Encode neu starten`
+40 -32
View File
@@ -1,60 +1,68 @@
# Audiobooks
Die Seite `Audiobooks` ist die dedizierte Oberfläche für AAX- und Audiobook-Jobs.
Die Seite `Audiobooks` ist der spezialisierte AAX-Workflow.
---
## Ablaufübersicht
## Aufbau
Die Oberfläche ist in drei Bereiche gegliedert:
1. `Audiobooks Upload`
2. `Audiobook Jobs`
3. `Audiobook Output Explorer`
---
## 1) Audiobooks Upload
Hier werden AAX-Dateien hochgeladen und als Job vorbereitet.
Der Upload verarbeitet ausschließlich AAX-Dateien.
Typische Schritte:
Direkt nach Upload passieren im Hintergrund:
1. Datei auswählen
2. optional Format/Startverhalten setzen
3. Upload starten
- Probe/Metadatenanalyse (ffprobe)
- Anlage eines RAW-Ordners per `Audiobook RAW Template`
- Ablage der AAX-Datei im RAW-Pfad
- Initiale Jobkonfiguration (Format, Kapitel, Metadaten)
Während des Uploads zeigt die Seite Fortschritt und Status an.
Wichtige Parameter:
---
- Zielformat (`m4b`, `mp3`, `flac`)
- optionaler Sofortstart
Toolabhängigkeit:
- `ffprobe_command` für Metadaten/Kapitel
- `ffmpeg_command` für Encode/Cover-Extraktion
## 2) Audiobook Jobs
Aktive Audiobook-Jobs werden als Karten dargestellt (mit Status und Fortschritt).
Jobkarten zeigen Zustand, Fortschritt und verfügbare Aktionen.
Pro Job sind je nach Zustand Aktionen verfügbar:
Typische Aktionen:
- Starten (mit aktueller Audiobook-Konfiguration)
- Abbrechen
- Retry
- Löschen
- `Starten`
- `Abbrechen`
- `Retry`
- `Löschen`
- `Im Ripper` (Kontextwechsel)
Zusätzlich:
- `Im Ripper` springt in die Hauptansicht
- Jobs laden periodisch nach und reagieren auf WebSocket-Updates
---
Die Karten werden regelmäßig aktualisiert und durch WebSocket-Ereignisse ergänzt.
## 3) Audiobook Output Explorer
Read-only Baumansicht des konfigurierten Audiobook-Ausgabeordners:
Read-only Explorer des Audiobook-Outputpfads:
- Ordner- und Dateiansicht
- Größen-/Zeitstempelübersicht
- schnelle Kontrolle der erzeugten Ergebnisse
- Ordner-/Dateistruktur
- Zeitstempel/Größen
- schnelle Ergebnisprüfung ohne Dateisystemwechsel
---
## Pfad- und Template-Logik
## Abgrenzung zum Converter
| Bereich | Gesteuert durch |
|---|---|
| RAW-Ablage | `raw_dir_audiobook` + `audiobook_raw_template` |
| Finale Ausgabe | `movie_dir_audiobook` + `output_template_audiobook` |
| Dateiformat | Jobkonfiguration (`m4b`, `mp3`, `flac`) |
Audio/Video-Datei-Konvertierung läuft weiterhin auf der Seite `Converter`.
Der AAX-spezifische Flow (Upload, Start, Jobsteuerung, Output-Explorer) liegt auf `Audiobooks`.
## Typische Probleme
- Upload wird abgelehnt: Eingabedatei ist keine AAX-Datei.
- Start schlägt fehl: `ffmpeg`/`ffprobe` nicht aufrufbar.
- Unerwartete Pfade: Templates enthalten ungültige oder zu generische Platzhalter.
+75 -52
View File
@@ -1,85 +1,108 @@
# Converter
Die Converter-Seite ermöglicht das Konvertieren vorhandener Audio- und Video-Dateien.
Die Seite `Converter` verarbeitet bereits vorhandene Dateien (Video, Audio, ISO) ohne Laufwerks-Rip.
---
## Betriebsmodell
## Überblick
Der Converter arbeitet auf dem Eingangspfad `converter_raw_dir`:
Der Converter arbeitet mit einem konfigurierbaren Eingangsordner (`converter_raw_dir`). Dateien werden dort abgelegt (manuell oder per Upload) und dann als Converter-Jobs in die Pipeline eingereiht.
- Uploads landen dort
- Explorer-Aktionen arbeiten dort
- daraus werden Converter-Jobs erstellt
---
Wichtig:
- Upload erzeugt nicht automatisch einen Job.
- Joberstellung erfolgt explizit über Auswahl im Explorer.
## Datei-Explorer
Der Datei-Explorer zeigt den Inhalt des `converter_raw_dir` als Baumstruktur.
Der Explorer zeigt den kompletten Baum unter `converter_raw_dir`.
### Verfügbare Aktionen
Aktionen:
| Aktion | Beschreibung |
| Aktion | Wirkung |
|---|---|
| **Upload** | Dateien direkt aus dem Browser hochladen (bis zu 50 Dateien) |
| **Ordner erstellen** | Neuen Unterordner anlegen |
| **Umbenennen** | Datei oder Ordner umbenennen |
| **Verschieben** | Datei oder Ordner in einen anderen Unterordner verschieben |
| **Löschen** | Datei oder Ordner löschen (unwiderruflich) |
| **Scannen** | Eingangsordner manuell neu scannen |
| `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 |
### Dateiauswahl
Upload-Regeln:
Dateien können per Checkbox ausgewählt werden. Aus der Auswahl lassen sich Jobs erstellen:
- Dateiendung muss in `Erlaubte Datei-Endungen*` enthalten sein
- bei Verstoß wird der Upload abgelehnt
- **Ein Job pro Datei** — jede Datei wird als eigenständiger Job angelegt
- **Gemeinsamer Job (Audio)** — mehrere Audio-Dateien werden zu einem gemeinsamen Job zusammengefasst
## Joberstellung aus Explorer-Auswahl
Erlaubte Dateiendungen werden in den Settings unter `Converter > Erlaubte Datei-Endungen*` als Checkboxen konfiguriert.
Es gibt zwei Audio-Strategien:
---
1. `Ein Job pro Datei`
2. `Gemeinsamer Job (Audio)`
## Jobs erstellen und konfigurieren
Verhalten:
Nach der Auswahl und Job-Erstellung erscheinen die Jobs in der Job-Liste.
- Video/ISO werden grundsätzlich als Einzeljobs angelegt.
- Audio kann als Shared-Job mit mehreren Eingabedateien erzeugt werden.
### Job-Konfiguration
Shared-Audio-Job:
Jeder Job kann konfiguriert werden:
- hält mehrere `inputPaths`
- kann vor Start erweitert/reduziert werden (nur Audio-Dateien)
- **Medientyp:** Video, Audio oder Audiobook
- **Ausgabeformat:** z. B. `mkv`, `mp4`, `m4b`, `mp3`, `flac`
- **HandBrake-Preset:** für Video-Konvertierung
- **Track-Auswahl:** Video-, Audio- und Untertitel-Spuren
- **Metadaten:** Titel, Autor, Jahr (für Audiobooks)
- **MusicBrainz-Suche:** automatische Metadaten-Suche für Audiodateien
## Job-Konfiguration
### Job-Start
Vor Start je Job einstellbar:
Jobs starten sofort oder reihen sich in die Queue ein (abhängig von `Parallele Jobs`).
- `converterMediaType` (`video`, `audio`, `iso`)
- `outputFormat`
- Metadaten
- Track-/Titelwahl (bei video/iso)
- Pre-/Post-Encode-Skripte und Ketten
---
Spezifika:
- Video/ISO laufen durch Mediainfo/Review ähnlich zum Disc-Flow.
- Audio kann direkt mit Formatoptionen konfiguriert werden.
## Ausgabe-Pfade
### Video/ISO
- Root: `converter_movie_dir`
- Dateiname: `Output-Template (Video)`
- Endung: aus gewähltem Output-Format
### Audio
- Root: `converter_audio_dir`
- Dateiname/Ordner: `Output-Template (Audio)`
- bei Shared-/Folder-Job: Ausgabe als Ordnerstruktur mit Trackdateien
## Queue und Start
Converter-Jobs laufen über dieselbe Pipeline-/Queue-Logik:
- sofortiger Start wenn Limits frei
- sonst Queue-Eintrag
Parallelität richtet sich nach den globalen Encode-Limits in `Settings`.
## Auto-Scan (Polling)
Wenn in den Settings `Converter > Auto-Scan (Polling)` aktiviert ist, wird der Eingangsordner automatisch in regelmäßigen Abständen gescannt. Neue Dateien werden in der DB erfasst und im Explorer angezeigt.
Mit aktiviertem Polling:
Das Scan-Intervall wird unter `Converter > Polling-Intervall (Sekunden)` konfiguriert (Standard: 300 Sekunden).
- `converter_raw_dir` wird zyklisch gescannt
- neue Dateien erscheinen automatisch im Explorer
---
Relevante Settings:
## Hinweis zu Audiobooks
- `Auto-Scan (Polling)`
- `Polling-Intervall (Sekunden)`
Der dedizierte AAX-/Audiobook-Flow ist auf der Seite [Audiobooks](audiobooks.md) dokumentiert.
## Abgrenzung zu Audiobooks
---
## Einstellungen
| Setting | Pfad in GUI |
|---|---|
| Eingangsordner | `Settings > Pfade > Converter Raw-Ordner` |
| Videoausgabe | `Settings > Pfade > Converter Ausgabe (Video)` |
| Audioausgabe | `Settings > Pfade > Converter Ausgabe (Audio)` |
| Erlaubte Endungen | `Settings > Converter > Erlaubte Datei-Endungen*` |
| Auto-Scan | `Settings > Converter > Auto-Scan (Polling)` |
| Scan-Intervall | `Settings > Converter > Polling-Intervall (Sekunden)` |
| Output-Template Video | `Settings > Pfade > Output-Template (Video)` |
| Output-Template Audio | `Settings > Pfade > Output-Template (Audio)` |
- `Converter`: beliebige Audio/Video/ISO-Dateien
- `Audiobooks`: dedizierter AAX-Workflow mit Kapitel-/Audiobook-Metadaten
+21 -15
View File
@@ -1,29 +1,35 @@
# Database (Expert)
`/database` ist eine erweiterte Ansicht für Power-User und Recovery-Fälle.
`/database` ist die Recovery- und Expertensicht für Fälle, in denen Dateisystem und Historie nicht mehr sauber zusammenpassen.
## Zugriff
- Route direkt aufrufen: `/database`
- nicht Teil der Standard-Navigation
- direkte Route: `/database`
- nicht Teil der Standardnavigation
## Bereiche
## Bereich `Gefundene RAW-Einträge`
### `Gefundene RAW-Einträge`
Listet RAW-Ordner, die keinen zugehörigen Job-Eintrag haben.
Dieser Bereich listet RAW-Verzeichnisse ohne zugeordneten Historie-Job.
Aktionen:
- `RAW prüfen` (Scan der konfigurierten RAW-Pfade)
- `Job anlegen` (Orphan-RAW in Historie importieren)
- `RAW prüfen`: scannt konfigurierte RAW-Wurzeln
- `Job anlegen`: erstellt aus einem orphan RAW einen neuen Historie-Job
## Typischer Einsatz
## Was bei `Job anlegen` passiert
- nach manuellen Dateioperationen
- nach Migrationen oder Recovery
- wenn RAW-Dateien vorhanden sind, aber kein Historieneintrag existiert
- RAW-Pfad wird als Importquelle registriert
- Job wird in die Historie geschrieben
- anschließende Analyse läuft als RAW-basierter Einstieg (ohne klassischen Disc-Read)
## Vorsicht
Typischer Einsatz:
Diese Seite erlaubt Eingriffe mit direkter Auswirkung auf Datenbestand und Historie. Vor Lösch- oder Importaktionen Pfade und Zieljob sorgfältig prüfen.
- manuelle Dateioperationen außerhalb der UI
- Migrationen
- Wiederherstellung nach abgebrochenen Läufen
## Sicherheits- und Betriebsregeln
- Aktionen wirken direkt auf produktive Historie/Dateipfade.
- Vor Import oder Löschung immer Pfad und Ziel prüfen.
- Diese Seite nur für Recovery-Szenarien nutzen, nicht für normalen Tagesbetrieb.
+35 -30
View File
@@ -1,53 +1,58 @@
# Downloads
Die Downloads-Seite ermöglicht es, Ausgabedateien aus abgeschlossenen Jobs als ZIP-Archiv herunterzuladen.
Auf `Downloads` werden ZIP-Archive für Historie-Artefakte erstellt und bereitgestellt.
---
## Was heruntergeladen werden kann
## Überblick
Ein Download-Eintrag referenziert immer einen Historie-Job und genau ein Ziel:
Jobs, die in der Historie abgeschlossen sind, können in die Download-Queue eingereiht werden. Ripster erstellt daraus ein ZIP-Archiv, das direkt im Browser heruntergeladen werden kann.
- `RAW`
- `Output`
---
Erzeugt wird ein ZIP-Archiv im Download-Verzeichnis des Backends.
## Download-Queue
## Statusmodell
Die Queue zeigt alle aktuellen Download-Einträge mit ihrem Status:
| Status | Beschreibung |
| Status | Bedeutung |
|---|---|
| **Ausstehend** | In der Queue, ZIP-Erstellung noch nicht gestartet |
| **Wird verarbeitet** | ZIP-Archiv wird gerade erstellt |
| **Bereit** | ZIP fertig, Download-Button verfügbar |
| **Fehlgeschlagen** | Fehler bei der ZIP-Erstellung |
| `queued` | Eintrag erstellt, wartet auf Verarbeitung |
| `processing` | ZIP wird gerade gebaut |
| `ready` | Archiv fertig, Download-Link aktiv |
| `failed` | Erzeugung oder Zugriff fehlgeschlagen |
---
## Eintrag anlegen
## Download einreihen
Startpunkt ist die `Historie`:
Downloads können über die **Historie** eingereiht werden:
1. Job öffnen.
2. Download einreihen.
3. Ziel (`RAW` oder `Output`) wählen.
4. Status in `Downloads` verfolgen.
1. Job in der Historie öffnen
2. **Download einreihen** wählen
3. Ziel auswählen: `RAW-Dateien` oder `Ausgabedateien`
4. Den Eintrag in der Downloads-Queue verfolgen
## Wichtige Laufzeitdetails
---
- Wenn bereits ein passendes, aktuelles Archiv existiert, kann der Eintrag wiederverwendet werden.
- Nach Backend-Neustart werden unterbrochene `queued`/`processing`-Einträge geprüft und fortgesetzt.
- Fehlt eine erwartete ZIP-Datei bei `ready`, wird der Eintrag auf `failed` gesetzt.
## Download starten
## Download auslösen
Sobald der Status **Bereit** angezeigt wird, kann die ZIP-Datei mit dem Download-Button heruntergeladen werden.
Bei Status `ready`:
ZIP-Dateinamen folgen dem Muster: `Job_<id>_<target>.zip`
- Download-Button lädt die ZIP direkt aus `/api/downloads/:id/file`.
---
## Einträge entfernen
## Einträge löschen
`Löschen` entfernt:
Abgeschlossene oder fehlerhafte Einträge können einzeln gelöscht werden. Die dazugehörige ZIP-Datei wird dabei ebenfalls vom Server entfernt.
- Queue-Metadaten
- zugehörige Archivdatei
---
Nicht erlaubt:
## Echtzeit-Updates
- Löschen während `queued`/`processing`
Die Downloads-Seite aktualisiert sich automatisch per WebSocket (`DOWNLOADS_UPDATED`). Statusänderungen (z. B. von `Wird verarbeitet` zu `Bereit`) werden ohne Seiten-Reload angezeigt.
## Echtzeitaktualisierung
Die Seite reagiert auf `DOWNLOADS_UPDATED` per WebSocket.
Dadurch sind Statuswechsel ohne Reload sichtbar.
+57 -56
View File
@@ -1,88 +1,89 @@
# Historie
Die Seite `Historie` ist für Suche, Prüfung und Nachbearbeitung bestehender Jobs.
`Historie` ist die Kontroll- und Nachbearbeitungsoberfläche für alle bereits angelegten Jobs.
## Hauptansicht
Filter und Werkzeuge:
Filter und Arbeitsmittel:
- Suche (Titel/IMDb)
- Status-Filter
- Medium-Filter (`Blu-ray`, `DVD`, `Sonstiges`)
- Suche (Titel, IMDb, Kontextbegriffe)
- Statusfilter
- Mediumfilter
- Sortierung
- Listen-/Grid-Layout
Jeder Eintrag zeigt:
Jeder Eintrag zeigt auf einen Blick:
- Poster, Titel, Jahr, IMDb
- Medium-Indikator
- Status
- Start/Ende
- Verfügbarkeit von RAW/Movie
- Ratings (wenn OMDb-Daten vorhanden)
- Titel, Jahr, Poster
- Status und Zeitstempel
- RAW-/Output-Verfügbarkeit
- Medien- und ggf. Containerhinweise
Klick auf einen Eintrag öffnet die Detailansicht.
## Detaildialog: Was dort zusammenläuft
---
Der Detaildialog bündelt:
## Job-Detaildialog
- Metadaten (Film oder Serie)
- Jobstatus und Fehlertexte
- RAW-/Output-Pfade
- Encode-Plan und Trackauswahl
- ausgeführte Kommandodetails
- Prozesslog (`Tail` oder vollständig)
Bereiche:
Bei Seriencontainern wird disk-/child-orientiert dargestellt, nicht nur als Einzeljob.
- Film-Infos + OMDb-Details
- Job-Infos (Status, Pfade, Erfolgsflags, Fehler)
- hinterlegte Encode-Auswahl
- ausgeführter HandBrake-Befehl
- strukturierte JSON-Blöcke (OMDb/MakeMKV/MediaInfo/EncodePlan/HandBrake)
- Log-Ladefunktionen (`Tail`, `Vollständig`)
## Nachbearbeitungsaktionen und Wirkung
Bei Serien-Containern zeigt der Dialog statt eines globalen Log-Blocks einen `Disks`-Bereich mit einzelnen Disk-Akkordeons.
Jede Disk kann dort separat geprüft und bearbeitet werden.
| 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 |
## Typische Aktionen im Detaildialog
Löschaktionen im Dialog:
- `OMDb neu zuordnen`
- `Encode neu starten`
- `Review neu starten`
- `RAW neu encodieren`
- `RAW löschen`, `Movie löschen`, `Beides löschen`
- `RAW löschen`
- `Movie löschen`
- `Beides löschen`
- `Historieneintrag löschen`
- bei Queue-Lock: `Aus Queue löschen`
Zusätzlich bei Serien-Container-Disks:
## Löschvorschau und selektives Löschen
- `Im Ripper öffnen` (für `READY_TO_ENCODE`-Kinder)
- diskbezogene Löschaktionen (`RAW`, `Folgen`, `Beides`) mit Child-/Subjob-Scope
- diskbezogenes Löschen des Historieneintrags (inkl. Subjobs)
Vor endgültigem Löschen zeigt Ripster eine Vorschau mit:
## Wann welche Aktion?
- `RAW`-Kandidaten
- `Movie`-/Episoden-Kandidaten
- Related-Scope (Container/Kinder/verbundene Jobs)
| Ziel | Aktion |
|---|---|
| Metadaten korrigieren | `OMDb neu zuordnen` |
| mit gleicher bestätigter Auswahl neu encodieren | `Encode neu starten` |
| Titel-/Spurprüfung komplett neu berechnen | `Review neu starten` |
| aus vorhandenem RAW erneut encodieren | `RAW neu encodieren` |
| Speicher freigeben | Dateilöschaktionen |
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.
## Löschen mit Vorschau
## Serien- und Multipart-Sicht in der Historie
Beim Löschen eines Historieneintrags (`Eintrag löschen`) gibt es eine Pfadvorschau:
### Serien
- getrennt nach `RAW` und Ausgabe (`Movie`/`Folgen`)
- für Serien-/Multipart-Fälle mit Scope auf verknüpfte Jobs
- selektierbare Pfade vor dem finalen Löschen
- 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.
Neu im RAW-Bereich:
### Multipart
- bei mehreren RAW-Kandidaten kann pro Pfad gewählt werden, was entfernt wird
- mindestens ein RAW-Pfad muss gewählt sein, wenn RAW-Löschung Teil der Aktion ist
- gemeinsamer Container mit Disc-Childs
- Disc-Nummern bleiben pro Child nachvollziehbar
- Delete-Preview kann Related-Pfade gemeinsam auflösen
Die Buttons (`Eintrag + nur RAW`, `Eintrag + nur ...`, `Eintrag + RAW + ...`) berücksichtigen die aktuelle Pfadauswahl und deaktivieren sich bei unvollständiger Auswahl.
## Logs sinnvoll nutzen
## Logs
- `Tail laden (800)` für schnellen Fehlerkontext
- `Vollständiges Log laden` für forensische Analyse
- `Tail laden (800)` für schnelle Fehleranalyse
- `Vollständiges Log laden` für vollständige Nachverfolgung
Empfehlung:
1. Erst Tail prüfen.
2. Bei Pfad-/Toolproblemen vollständiges Log laden.
3. Danach passende Wiederanlauf-Aktion wählen.
+25 -23
View File
@@ -1,32 +1,34 @@
# GUI-Seiten
Ripster hat sieben Hauptseiten in der Navigation plus eine Expert-Seite.
Dieses Kapitel ist das Bedienhandbuch für die Oberflächen im Alltag.
## Seitenüberblick
| Seite | Zweck |
|---|---|
| [Jobs](jobs.md) | zentrale Inbox mit allen Jobs (Ripper, Converter, Audiobooks) |
| [Ripper](ripper.md) | Live-Betrieb: Pipeline, Queue, Aktivitäten, Disc-Infos |
| [Audiobooks](audiobooks.md) | AAX-Upload, Audiobook-Jobsteuerung und Output-Explorer |
| [Settings](settings.md) | Konfiguration, Skripte, Ketten, Presets, Cronjobs |
| [Historie](history.md) | abgeschlossene/laufende Jobs durchsuchen und nachbearbeiten |
| [Converter](converter.md) | Audio/Video-Dateien konvertieren, Datei-Explorer, Upload |
| [Downloads](downloads.md) | Ausgabedateien als ZIP herunterladen |
| [Database (Expert)](database.md) | tabellarische Rohsicht inkl. Orphan-RAW-Import |
| Seite | Rolle im Betrieb | Typischer Einsatz |
|---|---|---|
| [Jobs](jobs.md) | zentrale Inbox | Gesamtlage prüfen und in Fachseite springen |
| [Ripper](ripper.md) | Live-Steuerung der Pipeline | Disc-Flow starten, Queue steuern, Review freigeben |
| [Audiobooks](audiobooks.md) | AAX-Spezialflow | Upload, Konfiguration und Encode von Audiobooks |
| [Settings](settings.md) | Konfiguration/Automatisierung | Pfade, Tools, Queue-Limits, Skripte, Cron |
| [Historie](history.md) | Nachbearbeitung und Kontrolle | Logs, Re-Encode, Löschvorschau, Recovery-Aktionen |
| [Converter](converter.md) | dateibasierte Konvertierung | Video/Audio/ISO ohne Disc-Rip verarbeiten |
| [Downloads](downloads.md) | ZIP-Exports | RAW/Output aus Historie bereitstellen |
| [Database (Expert)](database.md) | Recovery-Sicht | orphan RAW finden und importieren |
## Empfohlene Nutzung im Alltag
## Empfohlener Tagesablauf
1. **Ersten Überblick über alle Jobs:** `Jobs`
2. **Start eines neuen Disc-Jobs:** `Ripper`
3. **Audio/Video-Dateien konvertieren:** `Converter`
4. **AAX/Audiobook-Flow:** `Audiobooks`
5. **Regeln/Automatisierung anpassen:** `Settings`
6. **Ergebnisse prüfen oder Jobs nachbearbeiten:** `Historie`
7. **Dateien herunterladen:** `Downloads`
8. **Sonderfälle/Recovery:** `Database`
1. `Jobs`: Statuslage und Auffälligkeiten prüfen.
2. `Ripper` oder `Converter`/`Audiobooks`: neue Arbeit starten.
3. `Historie`: Ergebnisse validieren und ggf. nachbearbeiten.
4. `Downloads`: Exporte für externe Übergabe erzeugen.
5. `Settings`: Regeln und Limits nur kontrolliert anpassen.
## Hinweise zur Navigation
## Navigation
- `Jobs`, `Ripper`, `Converter`, `Audiobooks`, `Settings`, `Historie` und `Downloads` sind direkt in der Kopfnavigation.
- `Database` ist als Expert-Route verfügbar: `/database`.
Direkt in der Top-Navigation:
- `Jobs`, `Ripper`, `Converter`, `Audiobooks`, `Settings`, `Historie`, `Downloads`
Nur per URL:
- `Database` unter `/database`
+23 -25
View File
@@ -1,22 +1,18 @@
# Jobs
Die Seite `Jobs` ist die zentrale Inbox über alle Job-Typen.
`Jobs` ist die zentrale Inbox über alle Jobarten und dient als schneller Einstieg in den Tagesbetrieb.
---
## Zweck der Seite
## Zweck
Die Liste vereinheitlicht:
`Jobs` zeigt denselben Datenbestand in einer einheitlichen Liste:
- Ripper-Jobs (Blu-ray/DVD/CD)
- Converter-Jobs (Audio/Video/ISO)
- Disc-/Ripper-Jobs
- Converter-Jobs
- Audiobook-Jobs
Die Seite eignet sich als schneller Einstieg, bevor man in den jeweiligen Fachbereich springt.
Dadurch kannst du unabhängig von der Fachseite zuerst den Gesamtzustand prüfen.
---
## Filter und Ansicht
## Filterlogik
### View-Filter
@@ -31,26 +27,28 @@ Die Seite eignet sich als schneller Einstieg, bevor man in den jeweiligen Fachbe
- `Aktiv`
- `Fehler/Abbruch`
Zusätzlich gibt es eine Freitextsuche (Titel, Status, IMDb, Job-Kind etc.) und eine Paginierung.
Zusätzlich:
---
- Freitextsuche
- Paginierung
## Was ein Eintrag zeigt
## Was ein Jobeintrag zeigt
- Job-ID und Titel
- Status-Badge (inkl. Queue-Berücksichtigung)
- Job-Typ-Badge (z. B. Blu-ray, Converter Audio, Audiobook)
- Zeitstempel der letzten Aktualisierung
- Statusbadge
- Jobtypbadge (z. B. Blu-ray, DVD, Converter Audio, Audiobook)
- Aktualisierungszeit
Die Liste aktualisiert sich zyklisch automatisch.
Die Ansicht wird periodisch aktualisiert und ergänzt sich mit WebSocket-Events.
---
## Schnellaktion pro Zeile
## Aktion
Pro Eintrag gibt es einen Schnellzugriff:
- `Im Ripper öffnen` für Disc-/Audiobook-orientierte Jobs
- `Im Ripper öffnen` für Disc-/Audiobook-nahe Jobs
- `Im Converter öffnen` für Converter-Jobs
So gelangst du mit einem Klick in die passende Detailoberfläche.
So kommst du ohne Umwege in die Oberfläche mit den passenden Detailaktionen.
## Empfohlener Einsatz
1. In `Jobs` Störungen und Auslastung identifizieren.
2. Danach gezielt in `Ripper`, `Converter` oder `Historie` springen.
+96 -68
View File
@@ -1,8 +1,8 @@
# Ripper
Das Ripper ist die **Betriebszentrale** für laufende Jobs.
Die Seite `Ripper` ist die Live-Steuerung der Pipeline. Hier laufen Disc-Erkennung, Queue-Steuerung, Review und Encode-Start zusammen.
## Aufbau der Seite
## Seitenaufbau und Betriebslogik
Die Bereiche erscheinen in dieser Reihenfolge:
@@ -12,129 +12,157 @@ Die Bereiche erscheinen in dieser Reihenfolge:
4. `Job Übersicht`
5. `Disk-Information`
---
## 1) Hardware Monitoring
Zeigt live:
Zeigt kontinuierlich:
- CPU (gesamt + optional pro Kern)
- RAM
- GPU-Auslastung/Temperatur/VRAM
- freien Speicher in den konfigurierten Pfaden
- CPU / RAM
- GPU (wenn verfügbar)
- freie Speicherstände konfigurierter Pfade
Wichtig für den Betrieb:
Nutzen im Betrieb:
- Hohe Speicherauslastung oder fast volle Zielpfade früh erkennen
- über `Settings` aktivierbar/deaktivierbar (`Hardware Monitoring aktiviert`)
- Engpässe vor Jobfehlern erkennen
- Pfadfüllstände vor Start großer Batchs prüfen
Gesteuert über `Settings`:
- `Hardware Monitoring aktiviert`
- `Hardware Monitoring Intervall (ms)`
## 2) Job Queue
Zwei Spalten:
Es gibt zwei operative Zonen:
- `Laufende Jobs`
- `Warteschlange`
Mögliche Aktionen:
Mögliche Queue-Einträge:
- Queue per Drag-and-Drop umsortieren
- Queue-Job entfernen (`X`)
- zusätzliche Queue-Elemente einfügen (`+`):
- Skript
- Skriptkette
- Wartezeit
- Job-Startaktionen (`Start`, `Retry Rippen`, `RAW neu encodieren`, `Encode neu starten`, `Review neu berechnen`, `Audio CD starten`)
- Nicht-Job-Einträge (`Skript`, `Skriptkette`, `Warten`)
Hinweis:
Wichtige Regeln:
- `Parallel` zeigt den Wert aus `Settings` -> `Parallele Jobs`.
- Queue-Reihenfolge ist per Drag-and-Drop änderbar.
- `Warten` blockiert nachfolgende Queue-Starts bis kein aktiver Prozess mehr läuft.
- `Skript` und `Skriptkette` werden als Queue-Einträge mitgeführt.
Parallelität kommt aus `Settings`:
- `Max. parallele Film/Video Encodes`
- `Max. parallele Audio CD Jobs`
- `Max. Encodes gesamt`
- optional `Audio CDs: Queue-Reihenfolge überspringen`
## 3) Skript- / Cron-Status
Zeigt:
Zeigt Runtime-Aktivitäten:
- aktive Ausführungen (Skripte, Ketten, Cron)
- zuletzt abgeschlossene Ausführungen
- laufende Skripte
- laufende Ketten
- Cron-Ausführungen
- letzte abgeschlossene Aktivitäten
Mögliche Aktionen:
Aktionen:
- laufende Ketten: `Nächster Schritt`
- laufende Einträge: `Abbrechen`
- Historie der Aktivitäten: `Liste leeren`
- `Nächster Schritt` bei Ketten
- `Abbrechen`
- `Liste leeren`
## 4) Job Übersicht
Kompakte Jobliste mit Status, Fortschritt, ETA. Klick auf einen Job klappt die Detailsteuerung auf.
Die Jobliste ist der zentrale Arbeitsbereich. Ein Klick öffnet den jeweiligen `Pipeline-Status`.
Zusätzliche Kennzeichnungen in der Liste:
### Badges und Kontext
- `Serien-Container`/`Serien-Disk` für Staffel-Workflows
- `Multipart Movie` bei zusammengeführten Film-Discs
- Untertitel mit Disc-/Container-Infos (z. B. `Disc 2 | Container #123`)
Neben Status/Fortschritt zeigt die Liste je nach Job:
Im aufgeklappten Zustand erscheint die Karte `Pipeline-Status` mit allen zustandsabhängigen Aktionen.
- Serienkontext (`Serien-Container`, Staffel/Disk)
- Multipart-Kontext (`Multipart Movie`, Disc-Nr.)
- Queue-/Subjob-Kontext bei Serien-Episoden
### Zustandsabhängige Hauptaktionen
### Zustandsabhängige Aktionen
| Zustand | Typische Aktion |
|---|---|
| `Medium erkannt` / `Bereit` | `Analyse starten` |
| `Metadatenauswahl` | `Metadaten öffnen` |
| `Warte auf Auswahl` | Playlist wählen und `Playlist übernehmen` |
| `Startbereit` | `Job starten` |
| `Bereit zum Encodieren` | Tracks/Skripte prüfen, dann `Encoding starten` |
| laufend (`Analyse`/`Rippen`/`Encodieren`) | `Abbrechen` |
| `Fehler` / `Abgebrochen` | `Retry Rippen`, `Disk-Analyse neu starten` |
| Zustand | Hauptaktion im Ripper | Ergebnis |
|---|---|---|
| `Medium erkannt`, `Bereit` | `Analyse starten` | startet MakeMKV-Analyse |
| `Metadatenauswahl` | `Metadaten öffnen` | Film/Serie auswählen, Provider festlegen |
| `Warte auf Auswahl` | Playlist/Titel/RAW-Entscheidung bestätigen | setzt Flow fort zur Prüfung |
| `Startbereit` | `Job starten` | startet Rip oder RAW-basierte Prüfung |
| `Bereit zum Encodieren` | `Encoding starten` | startet HandBrake mit bestätigter Auswahl |
| Laufend (`Analyse`, `Rippen`, `Encodieren`) | `Abbrechen` | setzt Job auf `Abgebrochen` |
| `Fehler`, `Abgebrochen` | `Retry Rippen` | neuer Rip-Anlauf |
Zusätzlich je nach Job:
Zusatzaktionen je nach Zustand und Jobtyp:
- `Review neu starten`
- `Encode neu starten`
- `RAW neu encodieren`
- `Aus Queue löschen`
### Titel-/Spurprüfung (`Bereit zum Encodieren`)
### Review-Bereich (`Bereit zum Encodieren`)
Im selben Block siehst du:
Hier wird die effektive Encode-Entscheidung festgelegt:
- Auswahl des Encode-Titels
- Audio-/Subtitle-Trackauswahl
- User-Preset-Auswahl
- Titelwahl
- Audio-/Subtitle-Trackselektion
- User-Preset
- Pre-/Post-Encode-Skripte und Ketten
- Preview des finalen HandBrakeCLI-Befehls
- HandBrake-Kommandovorschau
Ohne Bestätigung dieses Blocks startet kein produktiver Encode.
### RAW-Ordnerphasen (sichtbar über Logs/Details)
Der Ripper arbeitet mit drei RAW-Zuständen:
- `Incomplete_...` während unvollständigem Rip
- `Rip_Complete_...` nach erfolgreich abgeschlossenem Rip, vor Encode
- ohne Prefix nach erfolgreichem Encode
Das ist wichtig für Recovery und Delete-Vorschau.
## 5) Disk-Information
Zeigt aktuelles Laufwerk und Disc-Metadaten (`Pfad`, `Modell`, `Disc-Label`, `Mount`).
Zeigt aktuelle Laufwerksdaten:
- Device-Pfad
- Modell
- Disc-Label / Mount
Aktionen:
- `Laufwerk neu lesen`
- `Disk neu analysieren`
- `Metadaten-Modal öffnen`
- Metadaten-Dialog öffnen
Hinweis:
- `Laufwerk neu lesen` ist nicht mehr an einen festen Pipeline-State gebunden und kann genutzt werden, solange kein Rescan-Request läuft.
- `Laufwerk neu lesen` ist nicht mehr an einen festen Pipeline-State gebunden.
---
## Wichtige Dialoge im Ripper
## Wichtige Dialoge
### Metadaten auswählen
- OMDb-Suche + Ergebnisliste
- manuelle Eingabe als Fallback
- `Auswahl übernehmen` startet den nächsten Pipeline-Schritt
Im Dialog werden Film-/Serienmetadaten bestätigt.
Bei Film-Duplikaten in der Historie öffnet sich ein Konfliktdialog:
Sonderfälle:
- `Übernahme erzwingen`: legt trotzdem einen neuen Job mit denselben Metadaten an
- `Multipart movie`: verknüpft bestehenden und neuen Job in einem Multipart-Container (mit separaten Disc-Nummern)
- `Zurück zur Auswahl`: zurück in die Metadatenliste
- Film-Duplikat: `Übernahme erzwingen` oder `Multipart movie`
- Serie: `Disc-Nummer` ist Pflicht
### Abbruch-Bereinigung
### Vorhandenes RAW erkannt
Nach Abbruch kann Ripster optional fragen, ob erzeugte RAW- oder Movie-Dateien gelöscht werden sollen.
Wenn passendes RAW existiert, fordert der Dialog eine explizite Entscheidung:
- vorhandenes RAW verwenden
- RAW verwerfen/löschen und neu rippen
### Queue-Eintrag einfügen
Erstellt gezielt einen Skript-, Ketten- oder Warte-Eintrag an einer bestimmten Queue-Position.
Du kannst gezielt ab Position einfügen:
- Skript
- Skriptkette
- Wartezeit
+65 -50
View File
@@ -1,92 +1,107 @@
# Settings
Die Seite `Settings` steuert Konfiguration und Automatisierung.
Die Seite `Settings` steuert alle Betriebsparameter von Ripster: Pfade, Tools, Queue-Limits, Metadatenquellen, Automatisierung.
## Tabs im Überblick
## Tab-Überblick
| Tab | Zweck |
| Tab | Hauptzweck |
|---|---|
| `Konfiguration` | alle Kernsettings (Pfade, Tools, Monitoring, Metadaten, Queue, Benachrichtigungen) |
| `Scripte` | einzelne Bash-Skripte verwalten und testen |
| `Skriptketten` | Sequenzen aus Skript- und Warte-Schritten bauen |
| `Encode-Presets` | benutzerdefinierte Presets für das Review im Ripper |
| `Cronjobs` | zeitgesteuerte Skript-/Kettenausführung |
---
| `Konfiguration` | globale und profilspezifische Laufzeitsettings |
| `Scripte` | einzelne Skripte verwalten und testen |
| `Skriptketten` | mehrstufige Abläufe aus Skript/Warten |
| `Encode-Presets` | wiederverwendbare HandBrake-Profile für Review |
| `Cronjobs` | zeitgesteuerte Ausführung von Skript/Kette |
## Tab `Konfiguration`
Wichtiges Bedienmuster:
### Bedienprinzip
1. Werte ändern
2. `Änderungen speichern`
3. bei Bedarf `Änderungen verwerfen` oder `Neu laden`
1. Werte ändern.
2. `Änderungen speichern`.
3. erst danach sind Werte für neue Aktionen wirksam.
Zusätzlich:
Zusätzliche Bedienhilfen:
- `PushOver Test` sendet eine Testnachricht
- Änderungen werden erst nach Speichern wirksam
- Tool-Preset-Felder bieten HandBrake-Presetauswahl direkt im Formular
- `Neu laden` verwirft lokale Formzustände
- `Änderungen verwerfen` setzt auf zuletzt gespeicherten Stand
- `PushOver Test` validiert Benachrichtigungszugang sofort
### Was wirkt unmittelbar, was erst bei neuem Job?
- Queue-/Parallelität wirkt auf neue Queue-Entscheidungen und Pump-Läufe.
- Tool-/Pfad-/Template-Änderungen wirken vollständig auf neu gestartete Schritte.
- Bereits laufende Prozesse übernehmen Änderungen in der Regel nicht rückwirkend.
### Welche Bereiche im Alltag kritisch sind
| Bereich | Kritisch für |
|---|---|
| `Pfade` | wo RAW, finale Ausgaben, Converter/Audiobook-Dateien landen |
| `Tools` | ob Analyze/Rip/Encode ausführbar sind |
| `Metadaten` | Film-/Serienzuordnung und Episode-Mapping |
| `Queue-Limits` | Durchsatz und Reihenfolgeverhalten |
| `Monitoring` | Sichtbarkeit von Last und Speicherengpässen |
| `Benachrichtigungen` | PushOver-Ereignisse je Pipelinephase |
## Tab `Scripte`
Funktionen:
- Skript anlegen, bearbeiten, löschen
- Skript testen (`Test`)
- Reihenfolge per Drag-and-Drop
- anlegen, bearbeiten, löschen
- testen (`Test`)
- sortieren
Praxis:
Testausführung liefert:
- Reihenfolge ist wichtig, weil ausgewählte Skripte später sequentiell abgearbeitet werden.
- Testresultate zeigen Exit-Code, Dauer und stdout/stderr.
- Exit-Code
- Dauer
- stdout/stderr
Wichtig:
- Nur erfolgreiche Skripte sollten in produktive Pre-/Post-Listen übernommen werden.
## Tab `Skriptketten`
Funktionen:
Ketten bestehen aus Schritten:
- Kette anlegen/bearbeiten/löschen
- Kette testen
- Reihenfolge der Ketten per Drag-and-Drop
- `Skript`
- `Warten`
Im Ketten-Editor:
Typischer Einsatz:
- Bausteine links (`Warten`, vorhandene Skripte)
- Schritte rechts per Klick oder Drag-and-Drop hinzufügen
- Schrittreihenfolge im Canvas ändern
- externe Hooks vor/nach Encode
- gestaffelte Abläufe mit Pausen
In der Queue erscheinen Ketten als eigene Einträge und werden dort ausgeführt.
## Tab `Encode-Presets`
Ein Preset bündelt:
- optional HandBrake-Preset (`-Z`)
- optionales HandBrake-Preset (`-Z`)
- optionale Extra-Args
- Medientyp (`Universell`, `Blu-ray`, `DVD`, `Sonstiges`)
- Medienziel (Universell/Blu-ray/DVD/Sonstiges)
Verwendung:
- Diese Presets erscheinen später im Ripper im Review (`Bereit zum Encodieren`).
Im Ripper-Review kannst du Presets pro Job auswählen, statt Parameter jedes Mal neu zu setzen.
## Tab `Cronjobs`
Funktionen:
- Cronjob anlegen und bearbeiten
- Quelle wählen: Skript oder Skriptkette
- Cron-Ausdruck validieren
- Quelle wählen (`Skript` oder `Skriptkette`)
- Cron-Ausdruck prüfen
- `Jetzt ausführen`
- Logs je Cronjob anzeigen
- `Aktiviert` und `Pushover` toggeln
- Job-Logs ansehen
- Aktivierung/Pushover toggeln
Hilfen:
Empfehlung:
- Beispiele für Cron-Ausdrücke direkt im Dialog
- Link zu `crontab.guru` im Editor
1. Skript/Kette manuell testen.
2. Dann Cron aktivieren.
3. Erste automatische Läufe aktiv im Runtime-Status kontrollieren.
---
## Verbindung zur Einstellungsreferenz
## Empfehlung für stabile Nutzung
1. Erst `Konfiguration` sauber setzen
2. dann Skripte/Ketten testen
3. danach Cronjobs aktivieren
Die vollständige Wirkung jeder einzelnen Einstellung steht in [Einstellungsreferenz](../configuration/settings-reference.md).
+12 -21
View File
@@ -1,33 +1,24 @@
# Ripster Handbuch
Dieses Dokumentationsset ist als **Benutzerhandbuch** aufgebaut: erst Bedienung und Alltag, dann Technik im Anhang.
Diese Dokumentation ist als vollständiges Benutzerhandbuch aufgebaut: tägliche Bedienung zuerst, technische Referenz danach.
---
## Einstieg in 3 Schritten
## Schnellstart in 3 Schritten
1. Installation: [Installation](getting-started/installation.md)
2. Betriebskonfiguration: [Ersteinrichtung](getting-started/configuration.md)
3. erster End-to-End-Lauf: [Erster Lauf](getting-started/quickstart.md)
1. Voraussetzungen prüfen und installieren: [Installation](getting-started/installation.md)
2. Grundkonfiguration in der UI setzen: [Ersteinrichtung](getting-started/configuration.md)
3. Ersten vollständigen Job durchlaufen: [Erster Lauf](getting-started/quickstart.md)
## Was das Handbuch abdeckt
---
## Was du hier findest
- **Benutzerhandbuch**
- Installation
- GUI-Seiten im Detail (`Jobs`, `Ripper`, `Converter`, `Audiobooks`, `Settings`, `Historie`, `Downloads`, `Database`)
- typische Arbeitsabläufe aus Anwendersicht
- **Technischer Anhang**
- vollständige Einstellungsreferenz
- Pipeline-/API-/Architekturdetails
- Deployment und Tool-Hintergründe
---
- alle GUI-Seiten mit Aktionen und Wirkung
- vollständige Workflows für Film, Serie und Multipart
- Queue-, Job-, Container- und Recovery-Verhalten
- detaillierte Settings-Wirkung inklusive Fallbacks
## Empfohlene Lesereihenfolge
1. [Benutzerhandbuch Überblick](getting-started/index.md)
2. [GUI-Seiten](gui/index.md)
3. [Workflows aus Nutzersicht](workflows/index.md)
4. Bei Bedarf: [Technischer Anhang](appendix/index.md)
4. [Einstellungsreferenz](configuration/settings-reference.md)
5. bei Bedarf technischer Tiefgang im [Anhang](appendix/index.md)
+181 -58
View File
@@ -1,84 +1,207 @@
# Workflows aus Nutzersicht
Diese Seite beschreibt typische Abläufe mit den passenden UI-Aktionen.
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.
## Workflow 1: Standardlauf (Disc -> fertige Datei)
## Gemeinsame Grundlagen
1. `Ripper`: Disc einlegen, `Analyse starten`
2. Metadaten im Dialog übernehmen
3. bei `Bereit zum Encodieren` Titel/Tracks prüfen
4. `Encoding starten`
5. Ergebnis in `Historie` kontrollieren
### Statuskette im Normalfall
## Workflow 2: Playlist-Entscheidung bei Blu-ray
`Medium erkannt` -> `Analyse` -> `Metadatenauswahl` -> `Startbereit` -> `Rippen` -> `Mediainfo-Pruefung` -> `Bereit zum Encodieren` -> `Encodieren` -> `Fertig`
1. Job landet in `Warte auf Auswahl`
2. im `Pipeline-Status` Playlist-Kandidaten vergleichen
3. gewünschte Playlist auswählen
4. `Playlist übernehmen`
5. danach normal weiter bis `Bereit zum Encodieren`
Abweichungen:
## Workflow 3: Mehrere Jobs mit Queue
- 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
1. Parallel-Limit in `Settings` über `Parallele Jobs` setzen
2. neue Jobs starten; überschüssige Starts gehen in `Job Queue`
3. Reihenfolge per Drag-and-Drop anpassen
4. bei Bedarf Skript/Kette/Warten als Queue-Eintrag ergänzen
### Job- und Container-Typen
## Workflow 4: Nachbearbeitung eines bestehenden Jobs
| 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 |
In `Historie` -> Detaildialog:
Wichtig:
- Metadaten korrigieren: `OMDb neu zuordnen`
- gleiche Einstellungen erneut nutzen: `Encode neu starten`
- Analyse neu aufbauen: `Review neu starten`
- aus RAW erneut encodieren: `RAW neu encodieren`
- Container sind primär Ordnungs- und Statusobjekte.
- Dateien (RAW/Output) hängen an den Child-Jobs.
## Workflow 5: Automatisierung mit Skripten und Cron
## Workflow A: Film (Blu-ray/DVD)
1. `Settings` -> `Scripte`: Skripte anlegen und testen
2. `Settings` -> `Skriptketten`: Ketten bauen und testen
3. im Ripper-Review Pre-/Post-Ausführungen pro Job auswählen
4. `Settings` -> `Cronjobs`: zeitgesteuerte Ausführung konfigurieren
5. Status im Ripper (`Skript- / Cron-Status`) überwachen
### 1) Disc analysieren und Film-Metadaten wählen
## Workflow 6: Abbruch und Recovery
1. Im `Ripper` `Analyse starten`.
2. Im Metadaten-Dialog Film auswählen (OMDb bzw. manuelle Film-Metadaten).
3. `Auswahl übernehmen`.
### Fall A: Job wurde abgebrochen
Wirkung:
- im Ripper optional erzeugte RAW/Movie-Datei bereinigen
- anschließend je nach Ziel: `Retry Rippen` oder `Disk-Analyse neu starten`
- der Job wird als Film-Workflow geführt
- Film-Fingerprint für Duplikaterkennung wird gebildet (IMDb oder Titel/Jahr)
### Fall B: Job steht in `Bereit zum Encodieren`, ist aber nicht aktive Session
### 2) Duplikatfall entscheiden
- in `Historie`: `Im Ripper öffnen`
- im Ripper Review erneut prüfen und starten
Wenn Film mit gleichem Fingerprint bereits existiert, gibt es zwei Wege:
### Fall C: RAW ohne Historieneintrag
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
- `/database` öffnen
- Bereich `Gefundene RAW-Einträge`
- `Job anlegen`
Bei Multipart gilt:
## Workflow 7: Duplikat als Multipart Movie zusammenführen
- beide Discs brauchen unterschiedliche `Disc-Nummer`
- gleiche Disc-Nummer blockiert den Vorgang (`MULTIPART_DISC_ALREADY_EXISTS`)
1. `Ripper` -> `Metadaten auswählen` für einen Film-Job
2. bei Duplikat-Konflikt `Multipart movie` wählen
3. Disc-Nummern für bestehenden und neuen Job setzen (jeweils >= 1, unterschiedlich)
4. Metadaten übernehmen
5. in `Historie` den gemeinsamen Multipart-Container prüfen
### 3) RAW-Verzeichnis entsteht
## Workflow 8: Selektives Löschen in der Historie
Ordnername basiert auf Metadaten plus Job-ID:
1. in `Historie` einen Job öffnen und `Historieneintrag löschen`
2. Löschvorschau prüfen (`RAW` + Ausgabe)
3. gewünschte RAW-/Ausgabepfade gezielt auswählen
4. passende Aktion ausführen (`Eintrag + nur RAW`, `Eintrag + nur ...`, `Eintrag + RAW + ...`)
- `Incomplete_<Titel> (<Jahr>) - RAW - job-<id>`
## Workflow 9: Audiobook (AAX) verarbeiten
Zustandswechsel des RAW-Ordners:
1. Seite `Audiobooks` öffnen
2. AAX-Datei hochladen
3. Job-Konfiguration prüfen und starten
4. Fortschritt im Job-Panel verfolgen
5. Ergebnis im `Audiobook Output Explorer` und in der `Historie` prüfen
- beim Start: `Incomplete_...`
- nach erfolgreichem Rip: `Rip_Complete_...`
- nach erfolgreichem Encode: Prefix wird entfernt (final)
### 4) Review und Encode
In `Bereit zum Encodieren`:
- Titel wählen
- Audio-/Subtitle-Spuren festlegen
- optional User-Preset
- optional Pre-/Post-Encode-Skripte oder Ketten
Beim Start:
- temporäre Ausgabe in `Incomplete_job-<id>/<Datei>.<ext>`
- nach Erfolg Verschiebung in finalen Zielpfad aus Film-Template
## Workflow B: Serie (Blu-ray/DVD)
### 1) Serienmodus aktivieren
1. Disc analysieren.
2. Im Metadaten-Dialog Serienmetadaten wählen (TMDb-basiert).
3. `Disc-Nummer` setzen (Pflicht, ab 1).
Wirkung:
- Workflow-Kind wird `series`
- Seriencontainer wird gesucht/angelegt
- aktueller Job wird als `dvd_series_child` darunter geführt
### 2) Seriencontainer und Disc-Konflikte
Beim Speichern wird geprüft:
- existiert für Serie/Staffel bereits ein Container?
- existiert in diesem Container bereits dieselbe `Disc-Nummer`?
Wenn ja, wird blockiert (`SERIES_DISC_ALREADY_EXISTS`).
### 3) Serien-RAW-Pfad
Für Serien wird ein eigener RAW-Pfad bevorzugt:
- Blu-ray: `raw_dir_bluray_series` (Fallback: `raw_dir_bluray`)
- DVD: `raw_dir_dvd_series` (Fallback: `raw_dir_dvd`)
RAW-Namensbasis enthält Staffel/Disc (`SxDy`) und wird ebenfalls mit den Prefix-Phasen geführt:
- `Incomplete_...` -> `Rip_Complete_...` -> final
### 4) Serien-Review und Episoden-Ausgabe
Beim Review werden Episoden-/Titelzuordnungen genutzt. Je nach Auswahl:
- Einzel-Episode: Episode-Template
- Multi-Episode-Titel: Multi-Episode-Template
Ausgabepfad:
- Root: `series_dir_*` (Fallback auf `movie_dir_*`)
- Dateiname/Unterordner aus Serien-Template
### 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
## Workflow C: Multipart-Film
### Wann dieser Flow gedacht ist
- gleicher Film auf mehreren Discs (z. B. Disc 1/Disc 2)
- Zusammengehörigkeit soll in Historie und Detailansichten sichtbar sein
### Ablauf
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
## Workflow D: Vorhandenes RAW / RAW-Import
### Fall 1: RAW bereits vorhanden bei Metadatenübernahme
Nach Metadaten-Übernahme erkennt Ripster passende RAW-Ordner und setzt den Job auf Entscheidungsstatus.
Möglichkeiten:
- vorhandenes RAW weiterverwenden (kein neuer Rip)
- RAW löschen/ignorieren und neu rippen
### Fall 2: Orphan-RAW aus `/database`
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.
## Workflow E: Nachbearbeitung bestehender Jobs
In `Historie` (Detaildialog):
| 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 |
## Wo landet was? (Artefakt-Matrix)
| 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 |
## Queue-Verhalten im Alltag
Die Startfreigabe hängt an vier Settings:
- `Max. parallele Film/Video Encodes`
- `Max. parallele Audio CD Jobs`
- `Max. Encodes gesamt`
- `Audio CDs: Queue-Reihenfolge überspringen`
Praxis:
- Film/Video- und Audio/CD laufen in getrennten Lanes
- Gesamtlimit begrenzt beide gemeinsam
- Queue kann neben Jobs auch `Skript`, `Kette`, `Warten` enthalten