1.0.0-rc1 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-05-08 09:01:17 +02:00
parent 9b437fe5e5
commit 9b38d78042
61 changed files with 452 additions and 419 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "ripster-backend", "name": "ripster-backend",
"version": "0.16.1-7", "version": "1.0.0-rc1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ripster-backend", "name": "ripster-backend",
"version": "0.16.1-7", "version": "1.0.0-rc1",
"dependencies": { "dependencies": {
"archiver": "^7.0.1", "archiver": "^7.0.1",
"cors": "^2.8.5", "cors": "^2.8.5",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ripster-backend", "name": "ripster-backend",
"version": "0.16.1-7", "version": "1.0.0-rc1",
"private": true, "private": true,
"type": "commonjs", "type": "commonjs",
"scripts": { "scripts": {
+162 -209
View File
@@ -1,238 +1,191 @@
# Einstellungsreferenz # Einstellungsreferenz
Diese Seite dokumentiert **alle** UI-Settings mit ihrer Wirkung auf Flows, Pfade, Queue und Automatisierung. Diese Seite dokumentiert den aktuellen Stand der Settings auf Basis von `settings_schema` und der aktiven GUI-Logik.
## Wie Ripster Settings auflöst ## Wichtiges Verhalten in der GUI
Ripster arbeitet intern mit profilspezifischen Settings (`bluray`, `dvd`, `cd`, `audiobook`) und bildet sie auf effektive Laufzeitwerte ab. - Speichern erfolgt gesammelt über `Änderungen speichern` (Bulk-Update).
- `ui_expert_mode` wird sofort einzeln gespeichert (nicht erst mit Bulk-Speichern).
- `*_owner`-Felder sind in der GUI erst aktiv, wenn der zugehörige Pfad gesetzt ist.
- Einige Keys sind absichtlich ausgeblendet und nur technisch (API/DB) nutzbar.
- Benachrichtigungs-Event-Toggles sind nur sichtbar, wenn `pushover_enabled=true`.
Wichtige Regeln: ## Fallbacks und Pfadauflösung
1. Für `bluray` wird bei fehlenden profilierten Toolwerten auf `dvd` zurückgefallen, und umgekehrt. - Leere profilspezifische Pfade fallen auf Installationsdefaults zurück.
2. Für `cd` und `audiobook` gibt es nur das eigene Profil. - `download_dir` nutzt bei leerem Wert den Default-Downloadpfad.
3. Strikt profilgebundene Pfadkeys (`raw_dir`, `movie_dir`, `series_dir` plus Owner) fallen bei leeren Werten auf Installationsdefaults zurück. - Die Konfigurationsseite zeigt im Block `Effektive Pfade` die tatsächlich verwendeten Laufzeitpfade.
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
### 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}`, `{title}`, `{year}`, `{narrator}`, `{series}`, `{part}`, `{format}`
### Converter-Templates
- Video: `{title}`, `{year}`
- Audio: `{artist}`, `{title}`, `{album}`, `{year}`, `{trackNr}`
## Vollständige Feldliste ## Vollständige Feldliste
## Kategorie: Benachrichtigungen ## Kategorie: Benachrichtigungen
| GUI-Feld | Key | Typ | Default | Wirkung im System | | GUI-Feld | Key | Typ | Default | Sichtbarkeit | Wirkung im System |
|---|---|---|---|---| |---|---|---|---|---|---|
| `Expertenmodus` | `ui_expert_mode` | `boolean` | `false` | Schaltet erweiterte Einstellungen in der UI ein. | | `Expertenmodus` | `ui_expert_mode` | `boolean` | `false` | Standard | Schaltet erweiterte Einstellungen in der UI ein. |
| `PushOver aktiviert` | `pushover_enabled` | `boolean` | `false` | Master-Schalter für PushOver Versand. | | `PushOver aktiviert` | `pushover_enabled` | `boolean` | `false` | Standard | Master-Schalter für PushOver Versand. |
| `PushOver Token` | `pushover_token` | `string` | `leer` | Application Token für PushOver. | | `PushOver Token` | `pushover_token` | `string` | `leer` | Standard | Application Token für PushOver. |
| `PushOver User` | `pushover_user` | `string` | `leer` | User-Key für PushOver. | | `PushOver User` | `pushover_user` | `string` | `leer` | Standard | User-Key für PushOver. |
| `PushOver Device (optional)` | `pushover_device` | `string` | `leer` | Optionales Ziel-Device in PushOver. | | `PushOver Device (optional)` | `pushover_device` | `string` | `leer` | Expertenmodus | Optionales Ziel-Device in PushOver. |
| `PushOver Titel-Präfix` | `pushover_title_prefix` | `string` | `Ripster` | Prefix im PushOver Titel. | | `PushOver Titel-Präfix` | `pushover_title_prefix` | `string` | `Ripster` | Standard | Prefix im PushOver Titel. |
| `PushOver Priority` | `pushover_priority` | `number` | `0` | Priorität -2 bis 2. | | `PushOver Priority` | `pushover_priority` | `number` | `0` | Expertenmodus | Priorität -2 bis 2. |
| `PushOver Timeout (ms)` | `pushover_timeout_ms` | `number` | `7000` | HTTP Timeout für PushOver Requests. | | `PushOver Timeout (ms)` | `pushover_timeout_ms` | `number` | `7000` | Expertenmodus | HTTP Timeout für PushOver Requests. |
| `Bei Metadaten-Auswahl senden` | `pushover_notify_metadata_ready` | `boolean` | `true` | Sendet wenn Metadaten zur Auswahl bereitstehen. | | `Bei manueller Auswahl senden` | `pushover_notify_metadata_ready` | `boolean` | `true` | Standard | Sendet, wenn ein Job eine manuelle Auswahl/Entscheidung benötigt (z.B. Metadaten, Titel oder Playlist). |
| `Bei Rip-Start senden` | `pushover_notify_rip_started` | `boolean` | `true` | Sendet beim Start des MakeMKV-Rips. | | `Bei Rip-Start senden` | `pushover_notify_rip_started` | `boolean` | `true` | Standard | Sendet beim Start des MakeMKV-Rips. |
| `Bei Encode-Start senden` | `pushover_notify_encoding_started` | `boolean` | `true` | Sendet beim Start von HandBrake. | | `Bei Encode-Start senden` | `pushover_notify_encoding_started` | `boolean` | `true` | Standard | Sendet beim Start von HandBrake. |
| `Bei Erfolg senden` | `pushover_notify_job_finished` | `boolean` | `true` | Sendet bei erfolgreich abgeschlossenem Job. | | `Bei Erfolg senden` | `pushover_notify_job_finished` | `boolean` | `true` | Standard | Sendet bei erfolgreich abgeschlossenem Job. |
| `Bei Fehler senden` | `pushover_notify_job_error` | `boolean` | `true` | Sendet bei Fehlern in der Pipeline. | | `Bei Fehler senden` | `pushover_notify_job_error` | `boolean` | `true` | Standard | Sendet bei Fehlern in der Pipeline. |
| `Bei Abbruch senden` | `pushover_notify_job_cancelled` | `boolean` | `true` | Sendet wenn Job manuell abgebrochen wurde. | | `Bei Abbruch senden` | `pushover_notify_job_cancelled` | `boolean` | `true` | Standard | 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 Start senden` | `pushover_notify_reencode_started` | `boolean` | `true` | Standard | Sendet beim Start von RAW Re-Encode. |
| `Bei Re-Encode Erfolg senden` | `pushover_notify_reencode_finished` | `boolean` | `true` | Sendet bei erfolgreichem RAW Re-Encode. | | `Bei Re-Encode Erfolg senden` | `pushover_notify_reencode_finished` | `boolean` | `true` | Standard | Sendet bei erfolgreichem RAW Re-Encode. |
## Kategorie: Converter ## Kategorie: Converter
| GUI-Feld | Key | Typ | Default | Wirkung im System | | GUI-Feld | Key | Typ | Default | Sichtbarkeit | 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. | | `Erlaubte Datei-Endungen` | `converter_scan_extensions` | `string` | `mkv,mp4,m2ts,iso,avi,mov,flac,mp3,aac,wav,m4a,ogg,opus` | Standard | Komma-getrennte Liste erlaubter Dateiendungen für den Scan (ohne Punkt). |
| `Auto-Scan (Polling)` | `converter_polling_enabled` | `boolean` | `false` | Converter Raw-Ordner automatisch in regelmäßigen Abständen scannen. | | `Auto-Scan (Polling)` | `converter_polling_enabled` | `boolean` | `false` | Standard | 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. | | `Polling-Intervall (Sekunden)` | `converter_polling_interval` | `number` | `300` | Standard | Intervall für automatischen Scan des Converter-Ordners. |
## Kategorie: Laufwerk ## Kategorie: Laufwerk
| GUI-Feld | Key | Typ | Default | Wirkung im System | | GUI-Feld | Key | Typ | Default | Sichtbarkeit | Wirkung im System |
|---|---|---|---|---| |---|---|---|---|---|---|
| `Laufwerksmodus` | `drive_mode` | `select` | `auto` | Auto-Discovery oder explizites Device. | | `Laufwerksmodus` | `drive_mode` | `select` | `auto` | Standard | Auto-Discovery oder explizites Device. |
| `Device Pfad` | `drive_device` | `path` | `/dev/sr0` | Nur für expliziten Modus, z.B. /dev/sr0. | | `Explizite Laufwerke` | `drive_devices` | `path` | `[]` | Standard | Laufwerke für den expliziten Modus als JSON-Array mit Pfad und MakeMKV-Index, z.B. [{"path":"/dev/sr0","makemkvIndex":0},{"path":"/dev/sr1","makemkvIndex":1}]. Nur relevant wenn Modus = Explizites Device. |
| `MakeMKV Source Index` | `makemkv_source_index` | `number` | `0` | Disc Index im Auto-Modus. | | `Device Pfad` | `drive_device` | `path` | `/dev/sr0` | Ausgeblendet (nur API/DB) | Nur für expliziten Modus, z.B. /dev/sr0. |
| `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. | | `MakeMKV Source Index` | `makemkv_source_index` | `number` | `0` | Ausgeblendet (nur API/DB) | Disc Index im Auto-Modus. |
| `Polling Intervall (ms)` | `disc_poll_interval_ms` | `number` | `4000` | Intervall für Disk-Erkennung. | | `Automatische Disk-Erkennung` | `disc_auto_detection_enabled` | `boolean` | `true` | Standard | 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` | Expertenmodus | Intervall für Disk-Erkennung. |
| `Laufwerk nach Rip auswerfen` | `auto_eject_after_rip` | `boolean` | `false` | Standard | Wenn aktiv, wird das Laufwerk nach erfolgreichem Abschluss eines Rip-Vorgangs automatisch ausgeworfen (eject). |
## Kategorie: Logging
| GUI-Feld | Key | Typ | Default | Sichtbarkeit | Wirkung im System |
|---|---|---|---|---|---|
| `Terminal-Ausgabe aktiv` | `server_console_log_output_enabled` | `boolean` | `true` | Expertenmodus | Master-Schalter für die Ausgabe der Server-Logs im Terminal (z.B. start.sh). Das Schreiben in Log-Dateien bleibt immer aktiv. |
| `HTTP-Logs im Terminal` | `server_console_log_http_enabled` | `boolean` | `true` | Expertenmodus | Steuert HTTP Request-Logs im Terminal (z.B. request:start). Dateilogs bleiben unverändert. |
| `DEBUG im Terminal` | `server_console_log_debug_enabled` | `boolean` | `true` | Expertenmodus | Steuert DEBUG-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unverändert. |
| `INFO im Terminal` | `server_console_log_info_enabled` | `boolean` | `true` | Expertenmodus | Steuert INFO-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unverändert. |
| `WARN im Terminal` | `server_console_log_warn_enabled` | `boolean` | `true` | Expertenmodus | Steuert WARN-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unverändert. |
| `ERROR im Terminal` | `server_console_log_error_enabled` | `boolean` | `true` | Expertenmodus | Steuert ERROR-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unverändert. |
## Kategorie: Metadaten ## Kategorie: Metadaten
| GUI-Feld | Key | Typ | Default | Wirkung im System | | GUI-Feld | Key | Typ | Default | Sichtbarkeit | 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` | Standard | Read Access Token für Serien-Metadaten über TheMovieDB (TMDb). |
| `TMDb Read Access Token` | `tmdb_api_read_access_token` | `string` | `leer` | Read Access Token für Film- und Serien-Metadaten über TheMovieDB (TMDb). | | `Film-Sprache` | `dvd_series_language` | `string` | `de-DE` | Standard | Bevorzugte TMDb-Sprache für Film- und Serienmetadaten (DVD/Blu-ray), z.B. de-DE oder en-US. |
| `Film-Sprache` | `dvd_series_language` | `string` | `de-DE` | Bevorzugte TMDb-Sprache für Film- und Serienmetadaten (DVD/Blu-ray), z.B. de-DE oder en-US. | | `Fallback Sprache` | `dvd_series_fallback_languages` | `string` | `de-DE,en-US` | Standard | Kommagetrennte TMDb-Fallback-Sprachen für Film- und Serienmetadaten (DVD/Blu-ray), z.B. de-DE,en-US,fr-FR. |
| `Fallback Sprache` | `dvd_series_fallback_languages` | `string` | `de-DE,en-US` | Kommagetrennte TMDb-Fallback-Sprachen für Film- und Serienmetadaten (DVD/Blu-ray), z.B. de-DE,en-US,fr-FR. | | `Coverart-Nachladen aktiv` | `coverart_recovery_enabled` | `boolean` | `true` | Standard | Wenn aktiv, werden fehlende Coverarts automatisch in Intervallen geprüft und nachgeladen. |
| `DVD Serien-Ordnung` | `dvd_series_order_preference` | `select` | `episode_group` | Bevorzugte Episodenordnung für DVD-Serien. Episode Groups nutzen TMDb Alternate Orders, falls vorhanden. | | `Coverart-Prüfintervall (Stunden)` | `coverart_recovery_interval_hours` | `number` | `6` | Standard | Intervall für automatische Prüfung fehlender Coverarts in Stunden. |
| `DVD Disc-Profile wiederverwenden` | `dvd_series_reuse_disc_profiles` | `boolean` | `true` | Verwendet zuvor bestätigte Disc-Profile erneut, um Episoden automatischer zuzuordnen. | | `NFO nach Encode erzeugen` | `generate_nfo_after_encode` | `boolean` | `false` | Standard | Erstellt nach erfolgreichem Encode automatisch eine .nfo-Datei neben der Ausgabedatei. |
| `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: Monitoring
| GUI-Feld | Key | Typ | Default | Wirkung im System | | GUI-Feld | Key | Typ | Default | Sichtbarkeit | 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 aktiviert` | `hardware_monitoring_enabled` | `boolean` | `true` | Standard | 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. | | `Hardware Monitoring Intervall (ms)` | `hardware_monitoring_interval_ms` | `number` | `5000` | Expertenmodus | Polling-Intervall für CPU/RAM/GPU/Storage-Metriken. |
## Kategorie: Pfade ## Kategorie: Pfade
| GUI-Feld | Key | Typ | Default | Wirkung im System | | GUI-Feld | Key | Typ | Default | Sichtbarkeit | Wirkung im System |
|---|---|---|---|---| |---|---|---|---|---|---|
| `Raw-Ordner (Blu-ray)` | `raw_dir_bluray` | `path` | `leer` | RAW-Zielpfad für Blu-ray. Leer = Standardpfad (data/output/raw). | | `Raw Ausgabeordner (Blu-ray)` | `raw_dir_bluray` | `path` | `leer` | Standard | Optionaler RAW-Zielpfad nur für Blu-ray. Leer = Fallback auf "Raw Ausgabeordner". |
| `Raw-Ordner (DVD)` | `raw_dir_dvd` | `path` | `leer` | RAW-Zielpfad für DVD. Leer = Standardpfad (data/output/raw). | | `Raw Ausgabeordner (DVD)` | `raw_dir_dvd` | `path` | `leer` | Standard | Optionaler RAW-Zielpfad nur für DVD. Leer = Fallback auf "Raw Ausgabeordner". |
| `CD RAW-Ordner` | `raw_dir_cd` | `path` | `leer` | Basisordner für rohe CD-WAV-Dateien (cdparanoia-Output). Leer = Standardpfad (data/output/cd). | | `CD RAW-Ordner` | `raw_dir_cd` | `path` | `leer` | Standard | 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). | | `Audiobook RAW-Ordner` | `raw_dir_audiobook` | `path` | `leer` | Standard | 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). | | `Serien-Ordner (Blu-ray)` | `series_dir_bluray` | `path` | `leer` | Standard | 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 Ausgabeordner (Blu-ray)` | `movie_dir_bluray` | `path` | `leer` | Standard | Optionaler Encode-Zielpfad nur für Blu-ray. Leer = Fallback auf "Film Ausgabeordner". |
| `Film-Ordner (DVD)` | `movie_dir_dvd` | `path` | `leer` | Encode-Zielpfad für DVD. Leer = Standardpfad (data/output/movies). | | `Film Ausgabeordner (DVD)` | `movie_dir_dvd` | `path` | `leer` | Standard | Optionaler Encode-Zielpfad nur für DVD. Leer = Fallback auf "Film Ausgabeordner". |
| `Serien-Ordner (DVD)` | `series_dir_dvd` | `path` | `leer` | Zielordner für DVD-Serienfolgen. Leer = Standardpfad (data/output/series). | | `Serien-Ordner (DVD)` | `series_dir_dvd` | `path` | `leer` | Standard | 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. | | `CD Output-Ordner` | `movie_dir_cd` | `path` | `leer` | Standard | 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). | | `Audiobook Output-Ordner` | `movie_dir_audiobook` | `path` | `leer` | Standard | Zielordner für encodierte Audiobook-Dateien. Leer = Standardpfad (data/output/audiobooks). |
| `Externe Speicher` | `external_storage_paths` | `path` | `[]` | Wird links unter "Freie Speicher" angezeigt. | | `Download ZIP-Ordner` | `download_dir` | `path` | `leer` | Standard | Zielordner für vorbereitete ZIP-Downloads. Leer = Standardpfad (data/downloads). |
| `Log Ordner` | `log_dir` | `path` | `data/logs` | Basisordner für Logs. Job-Logs liegen direkt hier, Backend-Logs in /backend. | | `Externe Speicher` | `external_storage_paths` | `path` | `[]` | Standard | Wird links unter "Freie Speicher" angezeigt. |
| `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. | | `Log Ordner` | `log_dir` | `path` | `installationsabhängig` | Standard | Basisordner für Logs. Job-Logs liegen direkt hier, Backend-Logs in /backend. |
| `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. | | `CD Output Template` | `cd_output_template` | `string` | `{artist} - {album} ({year})/{trackNr} {artist} - {title}` | Standard | Template für relative CD-Ausgabepfade ohne Dateiendung. Platzhalter: {artist}, {album}, {year}, {title}, {trackNr}, {trackNo}. Unterordner sind über "/" möglich. 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)` | `output_template_bluray` | `string` | `${title} (${year})/${title} (${year})` | Standard | 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, 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 (Blu-ray Serie, Episode)` | `output_template_bluray_series_episode` | `string` | `{seriesTitle}/Staffel {seasonNr}/S{seasonNr}E{episodeNr} - {episodeTitle}` | Standard | 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 (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 (Blu-ray Serie, Multi-Episode)` | `output_template_bluray_series_multi_episode` | `string` | `{seriesTitle}/Staffel {seasonNr}/S{0:seasonNr}E{episodeRange} - {episodeTitle} (Teil {parts})` | Standard | 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 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)` | `output_template_dvd` | `string` | `${title} (${year})/${title} (${year})` | Standard | 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, 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 (DVD Serie, Episode)` | `output_template_dvd_series_episode` | `string` | `{seriesTitle}/Season {seasonNr}/{seriesTitle} - S{seasonNo}E{episodeNo} - {episodeTitle}` | Standard | 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 (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. | | `Output Template (DVD Serie, Multi-Episode)` | `output_template_dvd_series_multi_episode` | `string` | `{seriesTitle}/Season {seasonNr}/{seriesTitle} - S{seasonNo}E{episodeRange}` | Standard | 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}. |
| `Audiobook RAW Template` | `audiobook_raw_template` | `string` | `{author} - {title} ({year})` | Template für relative Audiobook-RAW-Ordner. Platzhalter: {author}, {title}, {year}, {narrator}, {series}, {part}. | | `Output Template (Audiobook)` | `output_template_audiobook` | `string` | `{author}/{author} - {title} ({year})` | Standard | Template für relative Audiobook-Ausgabepfade ohne Dateiendung. Platzhalter: {author}, {title}, {year}, {narrator}, {series}, {part}, {format}. Unterordner sind über "/" möglich. |
| `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). | | `Audiobook RAW Template` | `audiobook_raw_template` | `string` | `{author} - {title} ({year})` | Standard | Template für relative Audiobook-RAW-Ordner. Platzhalter: {author}, {title}, {year}, {narrator}, {series}, {part}. |
| `Converter Ausgabe (Video)` | `converter_movie_dir` | `path` | `leer` | Ausgabepfad für konvertierte Video-Dateien. Leer = Standardpfad (data/output/converted-movies). | | `Converter Raw-Ordner` | `converter_raw_dir` | `path` | `leer` | Standard | Eingangsordner für den Converter (Import-Scan und Datei-Uploads). Jeder Upload erhält einen Unterordner. Leer = Standardpfad (data/output/converter-raw). |
| `Converter Ausgabe (Audio)` | `converter_audio_dir` | `path` | `leer` | Ausgabepfad für konvertierte Audio-Dateien. Leer = Standardpfad (data/output/converted-audio). | | `Converter Ausgabe (Video)` | `converter_movie_dir` | `path` | `leer` | Standard | Ausgabepfad für konvertierte Video-Dateien. Leer = Standardpfad (data/output/converted-movies). |
| `Output-Template (Video)` | `converter_output_template_video` | `string` | `{title}` | Dateiname-Template für konvertierte Video-Dateien (ohne Endung). Platzhalter: {title}, {year}. | | `Converter Ausgabe (Audio)` | `converter_audio_dir` | `path` | `leer` | Standard | Ausgabepfad für konvertierte Audio-Dateien. Leer = Standardpfad (data/output/converted-audio). |
| `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}. | | `Output-Template (Video)` | `converter_output_template_video` | `string` | `{title}` | Standard | Dateiname-Template für konvertierte Video-Dateien (ohne Endung). Platzhalter: {title}, {year}. |
| `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). | | `Output-Template (Audio)` | `converter_output_template_audio` | `string` | `{artist} - {title}` | Standard | Dateiname-Template für konvertierte Audio-Dateien (ohne Endung). Platzhalter: {artist}, {title}, {album}, {year}, {trackNr}. |
| `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). | | `RAW-Ordner (Blu-ray Serie)` | `raw_dir_bluray_series` | `path` | `leer` | Standard | RAW-Zielpfad für Blu-ray-Serien. Leer = gleicher Pfad wie 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. | | `Eigentümer RAW-Ordner (Blu-ray Serie)` | `raw_dir_bluray_series_owner` | `string` | `leer` | Standard | Eigentümer der Dateien im Format user:gruppe für Blu-ray-Serien-RAW. Leer = Eigentümer Raw-Ordner (Blu-ray). |
| `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 (Blu-ray)` | `raw_dir_bluray_owner` | `string` | `leer` | Standard | Eigentümer der Dateien im Format user:gruppe. Nur aktiv wenn ein alternativer Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. |
| `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). | | `RAW-Ordner (DVD Serie)` | `raw_dir_dvd_series` | `path` | `leer` | Standard | RAW-Zielpfad für DVD-Serien. Leer = gleicher Pfad wie 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 RAW-Ordner (DVD Serie)` | `raw_dir_dvd_series_owner` | `string` | `leer` | Standard | Eigentümer der Dateien im Format user:gruppe für DVD-Serien-RAW. Leer = Eigentümer Raw-Ordner (DVD). |
| `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 Raw-Ordner (DVD)` | `raw_dir_dvd_owner` | `string` | `leer` | Standard | Eigentümer der Dateien im Format user:gruppe. Nur aktiv wenn ein alternativer 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 CD RAW-Ordner` | `raw_dir_cd_owner` | `string` | `leer` | Standard | Eigentümer der Dateien im Format user:gruppe. Nur aktiv wenn ein alternativer 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 Audiobook RAW-Ordner` | `raw_dir_audiobook_owner` | `string` | `leer` | Standard | Eigentümer der Audiobook-RAW-Dateien im Format user:gruppe. Nur aktiv wenn ein Pfad gesetzt ist. 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 Converter RAW-Ordner` | `converter_raw_dir_owner` | `string` | `leer` | Standard | Eigentümer der Converter-Eingabedateien im Format user:gruppe. 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 (Blu-ray)` | `series_dir_bluray_owner` | `string` | `leer` | Standard | Eigentümer der Blu-ray-Serienausgaben im Format user:gruppe. 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 Film-Ordner (Blu-ray)` | `movie_dir_bluray_owner` | `string` | `leer` | Standard | Eigentümer der Dateien im Format user:gruppe. Nur aktiv wenn ein alternativer Pfad gesetzt ist. 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 Film-Ordner (DVD)` | `movie_dir_dvd_owner` | `string` | `leer` | Standard | Eigentümer der Dateien im Format user:gruppe. Nur aktiv wenn ein alternativer Pfad gesetzt ist. 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. | | `Eigentümer Serien-Ordner (DVD)` | `series_dir_dvd_owner` | `string` | `leer` | Standard | Eigentümer der DVD-Serienausgaben im Format user:gruppe. Leer = Standardbenutzer des Dienstes. |
| `Eigentümer CD Output-Ordner` | `movie_dir_cd_owner` | `string` | `leer` | Standard | 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` | Standard | Eigentümer der encodierten Audiobook-Dateien im Format user:gruppe. Leer = Standardbenutzer des Dienstes. |
| `Eigentümer Converter Video Output-Ordner` | `converter_movie_dir_owner` | `string` | `leer` | Standard | Eigentümer der konvertierten Video-Dateien im Format user:gruppe. Leer = Standardbenutzer des Dienstes. |
| `Eigentümer Converter Audio Output-Ordner` | `converter_audio_dir_owner` | `string` | `leer` | Standard | Eigentümer der konvertierten Audio-Dateien im Format user:gruppe. Leer = Standardbenutzer des Dienstes. |
| `Eigentümer Download ZIP-Ordner` | `download_dir_owner` | `string` | `leer` | Standard | Eigentümer der vorbereiteten ZIP-Dateien im Format user:gruppe. Leer = Standardbenutzer des Dienstes. |
| `Kapitel Template (Audiobook)` | `output_chapter_template_audiobook` | `string` | `{author}/{author} - {title} ({year})/{chapterNr} {chapterTitle}` | Standard | Template für kapitelweise Audiobook-Ausgaben (MP3/FLAC) ohne Dateiendung. Platzhalter: {author}, {title}, {year}, {narrator}, {series}, {part}, {format}, {chapterNr}, {chapterNo}, {chapterTitle}. Unterordner sind über "/" möglich. |
## Kategorie: Tools ## Kategorie: Tools
| GUI-Feld | Key | Typ | Default | Wirkung im System | | GUI-Feld | Key | Typ | Default | Sichtbarkeit | Wirkung im System |
|---|---|---|---|---| |---|---|---|---|---|---|
| `MakeMKV Kommando` | `makemkv_command` | `string` | `makemkvcon` | Pfad oder Befehl für makemkvcon. | | `MakeMKV Kommando` | `makemkv_command` | `string` | `makemkvcon` | Expertenmodus | Pfad oder Befehl für makemkvcon. |
| `MakeMKV Key` | `makemkv_registration_key` | `string` | `leer` | Optionaler Registrierungsschlüssel. Wird beim Speichern nach `~/.MakeMKV/settings.conf` synchronisiert. In der UI kann darunter der aktuelle Betakey geladen und übernommen werden. | | `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. |
| `Mediainfo Kommando` | `mediainfo_command` | `string` | `mediainfo` | Pfad oder Befehl für mediainfo. | | `Mediainfo Kommando` | `mediainfo_command` | `string` | `mediainfo` | Expertenmodus | Pfad oder Befehl für mediainfo. |
| `Minimale Titellänge (Minuten)` | `makemkv_min_length_minutes` | `number` | `60` | Filtert kurze Titel beim Rip. | | `Minimale Titellänge (Minuten)` | `makemkv_min_length_minutes` | `number` | `60` | Standard | Filtert kurze Titel beim Rip. |
| `HandBrake Kommando` | `handbrake_command` | `string` | `HandBrakeCLI` | Pfad oder Befehl für HandBrakeCLI. | | `HandBrake Kommando` | `handbrake_command` | `string` | `HandBrakeCLI` | Expertenmodus | 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. | | `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. |
| `Max. parallele Film/Video Encodes` | `pipeline_max_parallel_jobs` | `number` | `1` | Maximale Anzahl parallel laufender Film/Video Encode-Jobs. Gilt zusätzlich zum Gesamtlimit. | | `Parallele Jobs` | `pipeline_max_parallel_jobs` | `number` | `1` | Standard | Maximale Anzahl parallel laufender Jobs. Weitere Starts landen in der Queue. |
| `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. parallele Audio CD Jobs` | `pipeline_max_parallel_cd_encodes` | `number` | `2` | Standard | 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. | | `Script-Test Timeout (ms)` | `script_test_timeout_ms` | `number` | `0` | Expertenmodus | Timeout für Script-Tests in den Settings. 0 = kein Timeout. |
| `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. | | `Max. Encodes gesamt (medienunabhängig)` | `pipeline_max_total_encodes` | `number` | `3` | Standard | Gesamtlimit für alle parallel laufenden Encode-Jobs (Film + Audio CD). Dieses Limit hat Vorrang vor den Einzellimits. |
| `Script-Test Timeout (ms)` | `script_test_timeout_ms` | `number` | `0` | Timeout fuer Script-Tests in den Settings. 0 = kein Timeout. | | `Audio CDs: Queue-Reihenfolge überspringen` | `pipeline_cd_bypasses_queue` | `boolean` | `false` | Standard | Wenn aktiv, können Audio CD Jobs unabhängig von Film-Jobs starten (überspringen die Film-Queue-Reihenfolge). Einzellimits und Gesamtlimit gelten weiterhin. |
| `cdparanoia Kommando` | `cdparanoia_command` | `string` | `cdparanoia` | Pfad oder Befehl für cdparanoia. Wird als Fallback genutzt wenn kein individuelles Kommando gesetzt ist. | | `cdparanoia Kommando` | `cdparanoia_command` | `string` | `cdparanoia` | Expertenmodus | 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. | | `FFmpeg Kommando` | `ffmpeg_command` | `string` | `ffmpeg` | Standard | 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. | | `FFprobe Kommando` | `ffprobe_command` | `string` | `ffprobe` | Standard | 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). | | `Serie: PlayAll Untergrenze (%)` | `series_playall_tolerance_lower_pct` | `number` | `10` | Standard | Untere Toleranz in Prozent für die Plausibilitätsprüfung von PlayAll gegen Episodensumme (DVD/Blu-ray). |
| `MakeMKV Rip Modus` | `makemkv_rip_mode_bluray` | `select` | `backup` | backup: vollständige Blu-ray Struktur im RAW-Ordner (empfohlen, ermöglicht --decrypt). | | `Serie: PlayAll Obergrenze (%)` | `series_playall_tolerance_upper_pct` | `number` | `10` | Standard | Obere Toleranz in Prozent für die Plausibilitätsprüfung von PlayAll gegen Episodensumme (DVD/Blu-ray). |
| `MakeMKV Analyze Extra Args` | `makemkv_analyze_extra_args_bluray` | `string` | `leer` | Zusätzliche CLI-Parameter für Analyze (Blu-ray). | | `Mediainfo Extra Args` | `mediainfo_extra_args_bluray` | `string` | `leer` | Expertenmodus | Zusätzliche CLI-Parameter für mediainfo (Blu-ray). |
| `MakeMKV Rip Extra Args` | `makemkv_rip_extra_args_bluray` | `string` | `leer` | Zusätzliche CLI-Parameter für Rip (Blu-ray). | | `MakeMKV Rip Modus` | `makemkv_rip_mode_bluray` | `select` | `backup` | Ausgeblendet (nur API/DB) | mkv: direkte MKV-Dateien; backup: vollständige Blu-ray Struktur im RAW-Ordner. |
| `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. | | `MakeMKV Analyze Extra Args` | `makemkv_analyze_extra_args_bluray` | `string` | `leer` | Expertenmodus | Zusätzliche CLI-Parameter für Analyze (Blu-ray). |
| `HandBrake Extra Args` | `handbrake_extra_args_bluray` | `string` | `leer` | Zusätzliche CLI-Argumente (Blu-ray). | | `MakeMKV Rip Extra Args` | `makemkv_rip_extra_args_bluray` | `string` | `leer` | Expertenmodus | Zusätzliche CLI-Parameter für Rip (Blu-ray). |
| `Ausgabeformat` | `output_extension_bluray` | `select` | `mkv` | Dateiendung für finale Datei (Blu-ray). | | `HandBrake Preset` | `handbrake_preset_bluray` | `string` | `H.264 MKV 1080p30` | Standard | Preset Name für -Z (Blu-ray). Leer = kein Preset, nur CLI-Parameter werden verwendet. |
| `Mediainfo Extra Args` | `mediainfo_extra_args_dvd` | `string` | `leer` | Zusätzliche CLI-Parameter für mediainfo (DVD). | | `HandBrake Extra Args` | `handbrake_extra_args_bluray` | `string` | `--audio-lang-list deu,eng --first-audio --subtitle-lang-list deu,eng --first-subtitle --aencoder copy --audio-copy-mask ac3,eac3,dts --au...` | Standard | Zusätzliche CLI-Argumente (Blu-ray). |
| `MakeMKV Rip Modus` | `makemkv_rip_mode_dvd` | `select` | `backup` | backup: vollständige Disc-Struktur im RAW-Ordner (einzig gültige Option für DVDs). | | `Ausgabeformat` | `output_extension_bluray` | `select` | `mkv` | Standard | Dateiendung für finale Datei (Blu-ray). |
| `MakeMKV Analyze Extra Args` | `makemkv_analyze_extra_args_dvd` | `string` | `leer` | Zusätzliche CLI-Parameter für Analyze (DVD). | | `Mediainfo Extra Args` | `mediainfo_extra_args_dvd` | `string` | `leer` | Expertenmodus | Zusätzliche CLI-Parameter für mediainfo (DVD). |
| `MakeMKV Rip Extra Args` | `makemkv_rip_extra_args_dvd` | `string` | `leer` | Zusätzliche CLI-Parameter für Rip (DVD). | | `MakeMKV Rip Modus` | `makemkv_rip_mode_dvd` | `select` | `mkv` | Ausgeblendet (nur API/DB) | mkv: direkte MKV-Dateien; backup: vollständige Disc-Struktur im RAW-Ordner. |
| `HandBrake Preset` | `handbrake_preset_dvd` | `string` | `H.264 MKV 480p30` | Preset Name für -Z (DVD). Leer = kein Preset, nur CLI-Parameter werden verwendet. | | `MakeMKV Analyze Extra Args` | `makemkv_analyze_extra_args_dvd` | `string` | `leer` | Expertenmodus | Zusätzliche CLI-Parameter für Analyze (DVD). |
| `HandBrake Extra Args` | `handbrake_extra_args_dvd` | `string` | `leer` | Zusätzliche CLI-Argumente (DVD). | | `MakeMKV Rip Extra Args` | `makemkv_rip_extra_args_dvd` | `string` | `leer` | Expertenmodus | Zusätzliche CLI-Parameter für Rip (DVD). |
| `Ausgabeformat` | `output_extension_dvd` | `select` | `mkv` | Dateiendung für finale Datei (DVD). | | `HandBrake Preset` | `handbrake_preset_dvd` | `string` | `H.264 MKV 480p30` | Standard | Preset Name für -Z (DVD). Leer = kein Preset, nur CLI-Parameter werden verwendet. |
| `HandBrake Extra Args` | `handbrake_extra_args_dvd` | `string` | `--audio-lang-list deu,eng --first-audio --subtitle-lang-list deu,eng --first-subtitle --aencoder copy --audio-copy-mask ac3,eac3,dts --au...` | Standard | Zusätzliche CLI-Argumente (DVD). |
| `Ausgabeformat` | `output_extension_dvd` | `select` | `mkv` | Standard | Dateiendung für finale Datei (DVD). |
| `mkvmerge Kommando` | `mkvmerge_command` | `string` | `mkvmerge` | Standard | Pfad oder Befehl für mkvmerge. Wird für Multipart-Movie-Merges genutzt. |
## Beispiele für häufige Settings
- `drive_devices`: `[{"path":"/dev/sr0","makemkvIndex":0},{"path":"/dev/sr1","makemkvIndex":1}]`
- `external_storage_paths`: `[{"name":"USB HDD","path":"/mnt/usb-hdd"}]`
- `converter_scan_extensions`: `mkv,mp4,m2ts,iso,avi,mov,flac,mp3,aac,wav,m4a,ogg,opus`
- `output_template_bluray`: `${title} (${year})/${title} (${year})`
- `output_template_audiobook`: `{author}/{author} - {title} ({year})`
- `output_chapter_template_audiobook`: `{author}/{author} - {title} ({year})/{chapterNr} {chapterTitle}`
- `download_dir_owner`: `ripster:media`
## Hinweise zu ausgeblendeten Keys
Folgende Keys liegen im Schema, sind aber im normalen Settings-Formular absichtlich ausgeblendet: `drive_device`, `makemkv_source_index`, `makemkv_rip_mode_bluray`, `makemkv_rip_mode_dvd`.
Änderungen daran erfolgen nur über API/DB oder technische Migrationen.
+56 -42
View File
@@ -1,68 +1,82 @@
# Audiobooks # Audiobooks
Die Seite `Audiobooks` ist der spezialisierte AAX-Workflow. Die Seite `Audiobooks` ist der spezialisierte Workflow für Audible-`*.aax`-Dateien.
## Ablaufübersicht ## Seitenstruktur
Die Oberfläche ist in drei Bereiche gegliedert: Die Oberfläche besteht aus zwei Hauptbereichen:
1. `Audiobooks Upload` 1. `Audiobooks Upload`
2. `Audiobook Jobs` 2. `Audiobook Jobs`
3. `Audiobook Output Explorer`
## 1) Audiobooks Upload ## 1) Audiobooks Upload
Der Upload verarbeitet ausschließlich AAX-Dateien. Der Upload akzeptiert ausschließlich `.aax`.
Direkt nach Upload passieren im Hintergrund: ### Bedienung
- Probe/Metadatenanalyse (ffprobe) - Datei auswählen (Button oder Drag-and-Drop)
- Anlage eines RAW-Ordners per `Audiobook RAW Template` - Upload starten
- Ablage der AAX-Datei im RAW-Pfad - Auswahl entfernen oder laufenden Upload abbrechen
- Initiale Jobkonfiguration (Format, Kapitel, Metadaten)
Wichtige Parameter: Während des Uploads zeigt die UI:
- Zielformat (`m4b`, `mp3`, `flac`) - Prozentfortschritt
- optionaler Sofortstart - übertragene/gesamte Bytes
- Statusmeldung (z. B. „Job vorbereitet“, „in Queue eingereiht“)
Toolabhängigkeit: ### Ablauf nach erfolgreichem Upload
- `ffprobe_command` für Metadaten/Kapitel - AAX wird serverseitig geprüft
- `ffmpeg_command` für Encode/Cover-Extraktion - Audiobook-Job wird angelegt
- Job landet je nach Pipelinezustand in `READY_TO_START`, startet direkt oder wird eingereiht
## 2) Audiobook Jobs ## 2) Audiobook Jobs
Jobkarten zeigen Zustand, Fortschritt und verfügbare Aktionen. Gezeigt werden aktive Jobs (nicht abgeschlossene). Fertige Jobs liegen in der `Historie`.
Typische Aktionen: Jeder Job kann eingeklappt/ausgeklappt werden und zeigt:
- `Starten` - Titel-/Metadatenblock (Titel, Autor, Sprecher, Jahr, Kapitel)
- Statusbadge
- Fortschritt/ETA
- ggf. Kapitel-Fortschritt
### Konfigurierbare Job-Parameter
Im ausgeklappten Job:
- Ausgabeformat (`m4b`, `mp3`, `flac`)
- formatspezifische Optionen (dynamisch je Format)
- Kapitelnamen bearbeiten
- Pre-Rip-Ausführungen (Skript/Kette)
- Post-Rip-Ausführungen (Skript/Kette)
### Formatverhalten
- `m4b`: eine Datei mit Kapiteln
- `mp3`/`flac`: kapitelweise Ausgabedateien
Für `mp3`/`flac` zeigt die UI während/nach dem Lauf eine Kapitel-Status-Tabelle (`Rip`/`Encode`).
### Aktionen je Job
- `Encode starten` (bzw. Neustart mit aktuellen Optionen)
- `Abbrechen` - `Abbrechen`
- `Retry` - `Job löschen` (mit Bestätigung)
- `Löschen`
- `Im Ripper` (Kontextwechsel)
Die Karten werden regelmäßig aktualisiert und durch WebSocket-Ereignisse ergänzt. ## Relevante Settings
## 3) Audiobook Output Explorer - `raw_dir_audiobook`
- `movie_dir_audiobook`
- `audiobook_raw_template`
- `output_template_audiobook`
- `output_chapter_template_audiobook`
- `ffprobe_command`
- `ffmpeg_command`
Read-only Explorer des Audiobook-Outputpfads: ## Typische Fehlerbilder
- Ordner-/Dateistruktur - Upload wird abgelehnt: Datei ist keine gültige `*.aax`.
- Zeitstempel/Größen - Start/Encode schlägt fehl: `ffprobe` oder `ffmpeg` nicht erreichbar.
- schnelle Ergebnisprüfung ohne Dateisystemwechsel - Unerwartete Ausgabeorte: Templates/Pfade passen nicht zur gewünschten Struktur.
## Pfad- und Template-Logik
| Bereich | Gesteuert durch |
|---|---|
| RAW-Ablage | `raw_dir_audiobook` + `audiobook_raw_template` |
| Finale Ausgabe | `movie_dir_audiobook` + `output_template_audiobook` |
| Dateiformat | Jobkonfiguration (`m4b`, `mp3`, `flac`) |
## Typische Probleme
- Upload wird abgelehnt: Eingabedatei ist keine AAX-Datei.
- Start schlägt fehl: `ffmpeg`/`ffprobe` nicht aufrufbar.
- Unerwartete Pfade: Templates enthalten ungültige oder zu generische Platzhalter.
+3 -2
View File
@@ -7,7 +7,7 @@ Dieses Kapitel ist das Bedienhandbuch für die Oberflächen im Alltag.
| Seite | Rolle im Betrieb | Typischer Einsatz | | Seite | Rolle im Betrieb | Typischer Einsatz |
|---|---|---| |---|---|---|
| [Ripper](ripper.md) | Live-Steuerung der Pipeline | Disc-Flow starten, Queue steuern, Review freigeben | | [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 | | [Audiobooks](audiobooks.md) | AAX-Spezialflow | Upload, Jobkonfiguration und Encode von Audiobooks |
| [Settings](settings.md) | Konfiguration/Automatisierung | Pfade, Tools, Queue-Limits, Skripte, Cron | | [Settings](settings.md) | Konfiguration/Automatisierung | Pfade, Tools, Queue-Limits, Skripte, Cron |
| [Historie](history.md) | Nachbearbeitung und Kontrolle | Logs, Re-Encode, Löschvorschau, Recovery-Aktionen | | [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 | | [Converter](converter.md) | dateibasierte Konvertierung | Video/Audio/ISO ohne Disc-Rip verarbeiten |
@@ -29,4 +29,5 @@ Direkt in der Top-Navigation:
Nur per URL: Nur per URL:
- `Database` unter `/database` - `Database` unter `/database` (nur Expertenmodus in der Navigation sichtbar)
- `TMDb Migration` unter `/tmdb-migration` (Direktlink, nicht in der Navigation)
+9
View File
@@ -166,3 +166,12 @@ Du kannst gezielt ab Position einfügen:
- Skript - Skript
- Skriptkette - Skriptkette
- Wartezeit - Wartezeit
### 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.
- Eingabeformat: genau 8 Hex-Zeichen (z.B. `1a2b3c4d`)
- Speicherung: lokal im Activation-Bytes-Cache
- Wirkung: nach dem Speichern kann der Audiobook-Flow fortgesetzt werden
+118 -58
View File
@@ -1,107 +1,167 @@
# Settings # Settings
Die Seite `Settings` steuert alle Betriebsparameter von Ripster: Pfade, Tools, Queue-Limits, Metadatenquellen, Automatisierung. Die Seite `Settings` ist das zentrale Kontrollpanel für Laufzeitverhalten, Automatisierung und Expertenfunktionen.
## Tab-Überblick ## Tab-Überblick
| Tab | Hauptzweck | | Tab | Zweck |
|---|---| |---|---|
| `Konfiguration` | globale und profilspezifische Laufzeitsettings | | `Konfiguration` | Alle fachlichen Settings (Pfade, Tools, Laufwerk, Metadaten, Monitoring, Benachrichtigungen, Converter) |
| `Scripte` | einzelne Skripte verwalten und testen | | `Scripte` | Einzelne Bash-Skripte pflegen, testen und sortieren |
| `Skriptketten` | mehrstufige Abläufe aus Skript/Warten | | `Skriptketten` | Mehrstufige Sequenzen aus `Skript` und `Warten` bauen und testen |
| `Encode-Presets` | wiederverwendbare HandBrake-Profile für Review | | `Encode-Presets` | Benutzer-Presets und Standard-Zuordnungen für Blu-ray/DVD-Workflows |
| `Cronjobs` | zeitgesteuerte Ausführung von Skript/Kette | | `Cronjobs` | Zeitgesteuerte Jobs auf Basis Skript/Skriptkette |
## Tab `Konfiguration` ## Tab `Konfiguration`
### Bedienprinzip ### Bedienlogik
1. Werte ändern. 1. Felder ändern.
2. `Änderungen speichern`. 2. `Änderungen speichern` klicken.
3. erst danach sind Werte für neue Aktionen wirksam. 3. Erst dann werden Änderungen persistiert und für neue Pipeline-Schritte wirksam.
Zusätzliche Bedienhilfen: Aktionen in der Toolbar:
- `Neu laden` verwirft lokale Formzustände - `Änderungen speichern`: schreibt nur geänderte Felder als Bulk-Update.
- `Änderungen verwerfen` setzt auf zuletzt gespeicherten Stand - `Änderungen verwerfen`: setzt den Formularzustand auf zuletzt geladen/zum Server gespeicherten Stand zurück.
- `PushOver Test` validiert Benachrichtigungszugang sofort - `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).
### Was wirkt unmittelbar, was erst bei neuem Job? ### Wichtige UI-Verhalten
- Queue-/Parallelität wirkt auf neue Queue-Entscheidungen und Pump-Läufe. - Jede Einstellung zeigt `Gespeichert` oder `Ungespeichert` direkt am Feld.
- Tool-/Pfad-/Template-Änderungen wirken vollständig auf neu gestartete Schritte. - Pflichtfelder sind mit `*` markiert.
- Bereits laufende Prozesse übernehmen Änderungen in der Regel nicht rückwirkend. - 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.
### Welche Bereiche im Alltag kritisch sind ### Kategorie `Pfade`: Besondere Interaktion
| Bereich | Kritisch für | Die Pfad-Kategorie hat eine eigene Darstellung:
|---|---|
| `Pfade` | wo RAW, finale Ausgaben, Converter/Audiobook-Dateien landen | - Tabelle `Effektive Pfade`: zeigt die aktuell tatsächlich aufgelösten Laufzeitpfade inkl. Fallbacks.
| `Tools` | ob Analyze/Rip/Encode ausführbar sind | - Accordion je Bereich (`Blu-ray`, `DVD`, `CD / Audio`, `Audiobook`, `Converter`, `Downloads`, optional `Externe Speicher`, `Logs`).
| `Metadaten` | Film-/Serienzuordnung und Episode-Mapping | - Für Pfadfelder mit Owner-Pendant (`*_owner`) erscheint direkt darunter das Feld `Eigentümer (user:gruppe)`.
| `Queue-Limits` | Durchsatz und Reihenfolgeverhalten | - Owner-Felder sind deaktiviert, solange der zugehörige Pfad leer ist.
| `Monitoring` | Sichtbarkeit von Last und Speicherengpässen |
| `Benachrichtigungen` | PushOver-Ereignisse je Pipelinephase | ### Spezial-Editoren in der Konfiguration
- `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.
### Laufwerks-Infobox innerhalb `Laufwerk`
In der Kategorie `Laufwerk` wird eine Live-Tabelle erkannter optischer Laufwerke angezeigt:
- `Neu einlesen` lädt Laufwerksinfos neu.
- Im Expertenmodus: `Freigeben` pro Laufwerk und `Alle Laufwerke freigeben`.
## Tab `Scripte` ## Tab `Scripte`
Funktionen: Funktionen:
- anlegen, bearbeiten, löschen - Skript anlegen (Inline-Editor)
- testen (`Test`) - Skript bearbeiten (Dialog)
- sortieren - Skript löschen (mit Bestätigung)
- Skript testen
- Reihenfolge per Drag-and-Drop ändern
Testausführung liefert: Testergebnis enthält:
- Erfolg/Fehler
- Exit-Code - Exit-Code
- Timeout-Info
- Dauer - Dauer
- stdout/stderr - stdout/stderr
Wichtig:
- Nur erfolgreiche Skripte sollten in produktive Pre-/Post-Listen übernommen werden.
## Tab `Skriptketten` ## Tab `Skriptketten`
Ketten bestehen aus Schritten: Skriptketten bestehen aus Schritten:
- `Skript` - `Skript`
- `Warten` - `Warten (Sekunden)`
Typischer Einsatz: Funktionen:
- externe Hooks vor/nach Encode - Ketten anlegen/bearbeiten/löschen
- gestaffelte Abläufe mit Pausen - Reihenfolge der Ketten per Drag-and-Drop
- Kette testen
- Schritte in der Kette per Drag-and-Drop neu anordnen
In der Queue erscheinen Ketten als eigene Einträge und werden dort ausgeführt. Im Ketteneditor:
- linke Palette (`Systemblöcke`, `Scripte`)
- rechte Canvas mit Drop-Zonen
- pro Warte-Schritt konfigurierbare Sekunden
## Tab `Encode-Presets` ## Tab `Encode-Presets`
Ein Preset bündelt: Bereiche:
- optionales HandBrake-Preset (`-Z`) 1. `Standard-Zuordnungen` (Slots)
- optionale Extra-Args 2. `Preset-Liste` (CRUD)
- Medienziel (Universell/Blu-ray/DVD/Sonstiges)
Im Ripper-Review kannst du Presets pro Job auswählen, statt Parameter jedes Mal neu zu setzen. ### Standard-Zuordnungen
Es gibt vier persistente Slots:
- `bluray_movie`
- `bluray_series`
- `dvd_movie`
- `dvd_series`
Die Auswahl ist medientyp-kompatibel gefiltert. Nicht kompatible oder fehlende bereits gespeicherte IDs werden weiterhin sichtbar gemacht, damit bestehende Zuordnungen nachvollziehbar bleiben.
### Preset-Inhalt
Ein Preset umfasst:
- Name
- Medientyp (`all`, `bluray`, `dvd`)
- HandBrake-Preset (`-Z`)
- Extra Args
- optionale Beschreibung
## Tab `Cronjobs` ## Tab `Cronjobs`
Funktionen: Funktionen:
- Cronjob anlegen und bearbeiten - Cronjob erstellen/bearbeiten/löschen
- Quelle wählen (`Skript` oder `Skriptkette`) - Debounced Validierung des Cron-Ausdrucks
- Cron-Ausdruck prüfen - Quelle wählen: `Skript` oder `Skriptkette`
- Aktiv- und PushOver-Toggle je Job
- `Jetzt ausführen` - `Jetzt ausführen`
- Job-Logs ansehen - Lauf-Logs öffnen
- Aktivierung/Pushover toggeln
Empfehlung: Die Seite zeigt zusätzlich Live-Status laufender Cron-Aktivitäten (Runtime Activities).
1. Skript/Kette manuell testen. ## Expertenbereich: Activation Bytes Cache
2. Dann Cron aktivieren.
3. Erste automatische Läufe aktiv im Runtime-Status kontrollieren.
## Verbindung zur Einstellungsreferenz Der Activation-Bytes-Block wird nur im Expertenmodus angezeigt und nur wenn Einträge vorhanden sind.
Die vollständige Wirkung jeder einzelnen Einstellung steht in [Einstellungsreferenz](../configuration/settings-reference.md). Er zeigt:
- AAX-Checksum
- Activation Bytes
- Speicherzeitpunkt
## Validierungshinweise für Template-Felder
Template-Felder akzeptieren nur:
- Buchstaben/Ziffern
- Leerzeichen
- `_` und `-`
- Platzhalter in `{...}` bzw. `${...}`
- `/` für Ordnertrennung
Nicht erlaubt sind z. B. unvollständige geschweifte Klammern oder sonstige Sonderzeichen.
## Siehe auch
- [Einstellungsreferenz](../configuration/settings-reference.md)
- [Ripper](ripper.md)
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "ripster-frontend", "name": "ripster-frontend",
"version": "0.16.1-7", "version": "1.0.0-rc1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ripster-frontend", "name": "ripster-frontend",
"version": "0.16.1-7", "version": "1.0.0-rc1",
"dependencies": { "dependencies": {
"primeicons": "^7.0.0", "primeicons": "^7.0.0",
"primereact": "^10.9.2", "primereact": "^10.9.2",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "ripster-frontend", "name": "ripster-frontend",
"version": "0.16.1-7", "version": "1.0.0-rc1",
"private": true, "private": true,
"type": "module", "type": "module",
"scripts": { "scripts": {
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "ripster", "name": "ripster",
"version": "0.16.1-7", "version": "1.0.0-rc1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ripster", "name": "ripster",
"version": "0.16.1-7", "version": "1.0.0-rc1",
"devDependencies": { "devDependencies": {
"concurrently": "^9.1.2" "concurrently": "^9.1.2"
} }
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "ripster", "name": "ripster",
"private": true, "private": true,
"version": "0.16.1-7", "version": "1.0.0-rc1",
"scripts": { "scripts": {
"dev": "concurrently \"npm run dev --prefix backend\" \"npm run dev --prefix frontend\"", "dev": "concurrently \"npm run dev --prefix backend\" \"npm run dev --prefix frontend\"",
"dev:backend": "npm run dev --prefix backend", "dev:backend": "npm run dev --prefix backend",
+1 -1
View File
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
View File
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
View File
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
View File
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
+45 -49
View File
@@ -2,186 +2,182 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/</loc> <loc>https://mboehmlaender.github.io/ripster/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/api/</loc> <loc>https://mboehmlaender.github.io/ripster/api/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/api/converter/</loc> <loc>https://mboehmlaender.github.io/ripster/api/converter/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/api/crons/</loc> <loc>https://mboehmlaender.github.io/ripster/api/crons/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/api/downloads/</loc> <loc>https://mboehmlaender.github.io/ripster/api/downloads/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/api/history/</loc> <loc>https://mboehmlaender.github.io/ripster/api/history/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/api/pipeline/</loc> <loc>https://mboehmlaender.github.io/ripster/api/pipeline/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/api/runtime-activities/</loc> <loc>https://mboehmlaender.github.io/ripster/api/runtime-activities/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/api/settings/</loc> <loc>https://mboehmlaender.github.io/ripster/api/settings/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/api/websocket/</loc> <loc>https://mboehmlaender.github.io/ripster/api/websocket/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/appendix/</loc> <loc>https://mboehmlaender.github.io/ripster/appendix/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/architecture/</loc> <loc>https://mboehmlaender.github.io/ripster/architecture/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/architecture/backend/</loc> <loc>https://mboehmlaender.github.io/ripster/architecture/backend/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/architecture/database/</loc> <loc>https://mboehmlaender.github.io/ripster/architecture/database/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/architecture/frontend/</loc> <loc>https://mboehmlaender.github.io/ripster/architecture/frontend/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/architecture/overview/</loc> <loc>https://mboehmlaender.github.io/ripster/architecture/overview/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/configuration/</loc> <loc>https://mboehmlaender.github.io/ripster/configuration/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/configuration/environment/</loc> <loc>https://mboehmlaender.github.io/ripster/configuration/environment/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/configuration/settings-reference/</loc> <loc>https://mboehmlaender.github.io/ripster/configuration/settings-reference/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/deployment/</loc> <loc>https://mboehmlaender.github.io/ripster/deployment/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/deployment/development/</loc> <loc>https://mboehmlaender.github.io/ripster/deployment/development/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/deployment/production/</loc> <loc>https://mboehmlaender.github.io/ripster/deployment/production/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/getting-started/</loc> <loc>https://mboehmlaender.github.io/ripster/getting-started/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/getting-started/configuration/</loc> <loc>https://mboehmlaender.github.io/ripster/getting-started/configuration/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/getting-started/installation/</loc> <loc>https://mboehmlaender.github.io/ripster/getting-started/installation/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/getting-started/prerequisites/</loc> <loc>https://mboehmlaender.github.io/ripster/getting-started/prerequisites/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/getting-started/quickstart/</loc> <loc>https://mboehmlaender.github.io/ripster/getting-started/quickstart/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/gui/</loc> <loc>https://mboehmlaender.github.io/ripster/gui/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/gui/audiobooks/</loc> <loc>https://mboehmlaender.github.io/ripster/gui/audiobooks/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/gui/converter/</loc> <loc>https://mboehmlaender.github.io/ripster/gui/converter/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/gui/database/</loc> <loc>https://mboehmlaender.github.io/ripster/gui/database/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/gui/downloads/</loc> <loc>https://mboehmlaender.github.io/ripster/gui/downloads/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/gui/history/</loc> <loc>https://mboehmlaender.github.io/ripster/gui/history/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url>
<url>
<loc>https://mboehmlaender.github.io/ripster/gui/jobs/</loc>
<lastmod>2026-04-21</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/gui/ripper/</loc> <loc>https://mboehmlaender.github.io/ripster/gui/ripper/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/gui/settings/</loc> <loc>https://mboehmlaender.github.io/ripster/gui/settings/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/pipeline/</loc> <loc>https://mboehmlaender.github.io/ripster/pipeline/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/pipeline/encoding/</loc> <loc>https://mboehmlaender.github.io/ripster/pipeline/encoding/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/pipeline/playlist-analysis/</loc> <loc>https://mboehmlaender.github.io/ripster/pipeline/playlist-analysis/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/pipeline/post-encode-scripts/</loc> <loc>https://mboehmlaender.github.io/ripster/pipeline/post-encode-scripts/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/pipeline/workflow/</loc> <loc>https://mboehmlaender.github.io/ripster/pipeline/workflow/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/tools/</loc> <loc>https://mboehmlaender.github.io/ripster/tools/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/tools/handbrake/</loc> <loc>https://mboehmlaender.github.io/ripster/tools/handbrake/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/tools/makemkv/</loc> <loc>https://mboehmlaender.github.io/ripster/tools/makemkv/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/tools/mediainfo/</loc> <loc>https://mboehmlaender.github.io/ripster/tools/mediainfo/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
<url> <url>
<loc>https://mboehmlaender.github.io/ripster/workflows/</loc> <loc>https://mboehmlaender.github.io/ripster/workflows/</loc>
<lastmod>2026-04-21</lastmod> <lastmod>2026-05-08</lastmod>
</url> </url>
</urlset> </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