From c87508d190b1ac19d01245bbe25baa2b4f6d2fcb Mon Sep 17 00:00:00 2001 From: mboehmlaender Date: Fri, 12 Jun 2026 11:11:01 +0200 Subject: [PATCH] 1.0.0 Docs --- docs/configuration/settings-reference.md | 1615 +++++++++++++++-- docs/getting-started/configuration.md | 12 +- docs/getting-started/quickstart.md | 6 +- docs/gui/audiobooks.md | 28 +- docs/gui/converter.md | 20 +- docs/gui/history.md | 4 +- docs/gui/settings.md | 10 +- docs/workflows/index.md | 84 +- .../settings-reference/index.html | 2 +- site/getting-started/configuration/index.html | 2 +- site/getting-started/quickstart/index.html | 2 +- site/gui/audiobooks/index.html | 2 +- site/gui/converter/index.html | 2 +- site/gui/history/index.html | 2 +- site/gui/settings/index.html | 2 +- site/search/search_index.json | 2 +- site/workflows/index.html | 2 +- 17 files changed, 1536 insertions(+), 261 deletions(-) diff --git a/docs/configuration/settings-reference.md b/docs/configuration/settings-reference.md index 9ad28aa..a3a2c37 100644 --- a/docs/configuration/settings-reference.md +++ b/docs/configuration/settings-reference.md @@ -1,199 +1,1472 @@ # Einstellungsreferenz -Diese Seite beschreibt **jede** aktuelle Einstellung aus der Settings-GUI: was technisch passiert und warum man sie setzt. +Diese Seite beschreibt jedes Feld aus `Settings -> Konfiguration` aus Anwendersicht: was du dort steuerst, wann die Einstellung greift und welchen Einfluss sie auf Review, Queue, Pfade oder Automatisierung hat. -## Lesehilfe +## So liest du diese Seite -- `Sichtbarkeit`: `Standard`, `Expertenmodus` oder `Ausgeblendet (nur API/DB)`. -- `Default`: UI-/Schema-Default (sensible Werte werden als `leer` dargestellt). -- `Was passiert technisch?`: direkte Wirkung im Backend/Pipeline-Verhalten. -- `Warum/Wann setzen?`: Praxisgrund inkl. typischem Einsatzzweck. +- `Standard` nennt den voreingestellten Wert oder den üblichen Leerzustand. +- `Greift in` sagt dir, in welchem Ablauf du die Wirkung besonders merkst. +- `Praxis` erklärt, warum du das Feld im Alltag bewusst setzen solltest. -## Wie diese Seite zu lesen ist +## Benachrichtigungen -Wenn du nicht von oben bis unten lesen willst, helfen diese typischen Einstiegsfragen: +### Expertenmodus +Standard: `Aus` -- Disc wird nicht sauber erkannt: zuerst `Laufwerk` -- falsche Playlist- oder Titelauswahl: zuerst `Tools` -- Ausgabe landet im falschen Ordner: zuerst `Pfade` -- zu viele oder zu wenige parallele Jobs: zuerst `Tools` -- Converter scannt nicht wie erwartet: zuerst `Converter` -- Hardware oder Speicher fehlen im Monitoring: zuerst `Monitoring` und `Pfade` +Der Schalter blendet zusätzliche technische Felder in der gesamten Settings-Oberfläche ein, zum Beispiel für Logging, Polling-Intervalle oder CLI-Feinjustierung. Er wird sofort gespeichert und wirkt ohne extra Speichern der ganzen Seite. -## Vollständige Feldliste +Greift in: +- die Sichtbarkeit von Expertenfeldern in `Settings` +- zusätzliche Navigations- und Wartungsbereiche -## Kategorie: Benachrichtigungen +Praxis: +- Aktiviere ihn, wenn du Ripster genauer steuern oder Fehler analysieren willst. +- Lass ihn aus, wenn die Oberfläche bewusst schlank bleiben soll. -| GUI-Feld | Key | Typ | Default | Sichtbarkeit | Was passiert technisch? | Warum/Wann setzen? | -|---|---|---|---|---|---|---| -| `Expertenmodus` | `ui_expert_mode` | `boolean` | `false` | Standard | Schaltet erweiterte Einstellungen in der UI ein. Wird sofort einzeln gespeichert und beeinflusst Sichtbarkeit von Feldern/Kategorien. | Wenn du selten benoetigte technische Felder sehen willst (z.B. Logging- oder CLI-Details). | -| `PushOver aktiviert` | `pushover_enabled` | `boolean` | `false` | Standard | Master-Schalter für PushOver Versand. | Wenn du aktive Laufzeit-Benachrichtigungen auf Mobilgeraete erhalten willst. | -| `PushOver Token` | `pushover_token` | `string` | `leer` | Standard | Application Token für PushOver. | Wenn Ripster in deine PushOver-App senden soll (Token aus PushOver-App-Config). | -| `PushOver User` | `pushover_user` | `string` | `leer` | Standard | User-Key für PushOver. | Wenn Benachrichtigungen an einen bestimmten PushOver-Account gehen sollen. | -| `PushOver Device (optional)` | `pushover_device` | `string` | `leer` | Expertenmodus | Optionales Ziel-Device in PushOver. | Wenn Nachrichten nur auf ein bestimmtes Endgeraet zugestellt werden sollen. | -| `PushOver Titel-Präfix` | `pushover_title_prefix` | `string` | `Ripster` | Standard | Prefix im PushOver Titel. | Wenn du Meldungen mehrerer Instanzen sauber unterscheiden willst (z.B. "Ripper-Wohnzimmer"). | -| `PushOver Priority` | `pushover_priority` | `number` | `0` | Expertenmodus | Priorität -2 bis 2. | Wenn Meldungen bewusst leiser (niedrig) oder dringender (hoch) zugestellt werden sollen. | -| `PushOver Timeout (ms)` | `pushover_timeout_ms` | `number` | `7000` | Expertenmodus | HTTP Timeout für PushOver Requests. | Wenn PushOver bei schlechter Verbindung mehr oder weniger Zeit fuer den Request bekommen soll. | -| `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). | Wenn 'Bei manueller Auswahl senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. | -| `Bei Rip-Start senden` | `pushover_notify_rip_started` | `boolean` | `true` | Standard | Sendet beim Start des MakeMKV-Rips. | Wenn 'Bei Rip-Start senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. | -| `Bei Encode-Start senden` | `pushover_notify_encoding_started` | `boolean` | `true` | Standard | Sendet beim Start von HandBrake. | Wenn 'Bei Encode-Start senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. | -| `Bei Erfolg senden` | `pushover_notify_job_finished` | `boolean` | `true` | Standard | Sendet bei erfolgreich abgeschlossenem Job. | Wenn 'Bei Erfolg senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. | -| `Bei Fehler senden` | `pushover_notify_job_error` | `boolean` | `true` | Standard | Sendet bei Fehlern in der Pipeline. | Wenn 'Bei Fehler senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. | -| `Bei Abbruch senden` | `pushover_notify_job_cancelled` | `boolean` | `true` | Standard | Sendet wenn Job manuell abgebrochen wurde. | Wenn 'Bei Abbruch senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. | -| `Bei Re-Encode Start senden` | `pushover_notify_reencode_started` | `boolean` | `true` | Standard | Sendet beim Start von RAW Re-Encode. | Wenn 'Bei Re-Encode Start senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. | -| `Bei Re-Encode Erfolg senden` | `pushover_notify_reencode_finished` | `boolean` | `true` | Standard | Sendet bei erfolgreichem RAW Re-Encode. | Wenn 'Bei Re-Encode Erfolg senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. | +### PushOver aktiviert +Standard: `Aus` -## Kategorie: Converter +Das ist der Master-Schalter für alle PushOver-Nachrichten. Ist er aus, sendet Ripster unabhängig von den einzelnen Ereignis-Toggles nichts. -| GUI-Feld | Key | Typ | Default | Sichtbarkeit | Was passiert technisch? | Warum/Wann setzen? | -|---|---|---|---|---|---|---| -| `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). Steuert sowohl Upload-Validierung als auch Converter-Scan-Filter. | Wenn 'Erlaubte Datei-Endungen' vom Default abweichen soll. | -| `Auto-Scan (Polling)` | `converter_polling_enabled` | `boolean` | `false` | Standard | Converter Raw-Ordner automatisch in regelmäßigen Abständen scannen. | Wenn neue Dateien im Converter-Ordner automatisch erscheinen sollen, ohne manuellen Scan. | -| `Polling-Intervall (Sekunden)` | `converter_polling_interval` | `number` | `300` | Standard | Intervall für automatischen Scan des Converter-Ordners. | Wenn der Auto-Scan schneller (kleiner Wert) oder ressourcenschonender (groesserer Wert) laufen soll. | +Greift in: +- Push-Benachrichtigungen zu Auswahl, Start, Erfolg, Fehler und Re-Encode -## Kategorie: Laufwerk +Praxis: +- Aktiviere den Schalter nur zusammen mit gültigem Token und User-Key. -| GUI-Feld | Key | Typ | Default | Sichtbarkeit | Was passiert technisch? | Warum/Wann setzen? | -|---|---|---|---|---|---|---| -| `Laufwerksmodus` | `drive_mode` | `select` | `auto` | Standard | Auto-Discovery oder explizites Device. | Wenn du zwischen automatischer Laufwerkserkennung und fixer Device-Liste umschalten willst. | -| `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. Wird als JSON gespeichert und vom Laufwerksdienst fuer explizite Zuordnung genutzt. | Wenn auf dem Host mehrere Laufwerke stabil gemappt werden muessen (z.B. /dev/sr0=disc:0, /dev/sr1=disc:1). | -| `Device Pfad` | `drive_device` | `path` | `/dev/sr0` | Ausgeblendet (nur API/DB) | Nur für expliziten Modus, z.B. /dev/sr0. | Wenn 'Device Pfad' vom Default abweichen soll. | -| `MakeMKV Source Index` | `makemkv_source_index` | `number` | `0` | Ausgeblendet (nur API/DB) | Disc Index im Auto-Modus. | Wenn 'MakeMKV Source Index' fuer Performance, Last oder Genauigkeit feinjustiert werden soll. | -| `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. | Wenn Discs nur manuell statt automatisch erkannt werden sollen. | -| `Polling Intervall (ms)` | `disc_poll_interval_ms` | `number` | `4000` | Expertenmodus | Intervall für Disk-Erkennung. | Wenn die Erkennung schneller reagieren oder weniger oft pollen soll. | -| `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). | Wenn ein Laufwerk nach erfolgreichem Rip direkt freigegeben/ausgeworfen werden soll. | +### PushOver Token +Standard: `leer` -## Kategorie: Logging +Hier hinterlegst du den Application Token deiner PushOver-Anwendung. Ohne diesen Wert kann Ripster keine Nachricht zustellen. -| GUI-Feld | Key | Typ | Default | Sichtbarkeit | Was passiert technisch? | Warum/Wann setzen? | -|---|---|---|---|---|---|---| -| `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. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. | Wenn Terminal-Logs bei Betrieb unter Service/SSH ein- oder ausgeschaltet werden sollen. | -| `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. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. | Wenn HTTP-Request-Logs im Terminal fuer API-Debugging gebraucht werden. | -| `DEBUG im Terminal` | `server_console_log_debug_enabled` | `boolean` | `true` | Expertenmodus | Steuert DEBUG-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unverändert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. | Wenn detailreiche DEBUG-Logs im Terminal benoetigt werden (Fehlersuche). | -| `INFO im Terminal` | `server_console_log_info_enabled` | `boolean` | `true` | Expertenmodus | Steuert INFO-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unverändert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. | Wenn normale INFO-Laufzeitmeldungen im Terminal sichtbar sein sollen. | -| `WARN im Terminal` | `server_console_log_warn_enabled` | `boolean` | `true` | Expertenmodus | Steuert WARN-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unverändert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. | Wenn Warnungen im Terminal hervorgehoben bleiben sollen. | -| `ERROR im Terminal` | `server_console_log_error_enabled` | `boolean` | `true` | Expertenmodus | Steuert ERROR-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unverändert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. | Wenn Fehler zwingend im Terminal sichtbar sein sollen. | +Greift in: +- jeden PushOver-Versand -## Kategorie: Metadaten +Praxis: +- Der Wert stammt aus deiner PushOver-App-Konfiguration. -| GUI-Feld | Key | Typ | Default | Sichtbarkeit | Was passiert technisch? | Warum/Wann setzen? | -|---|---|---|---|---|---|---| -| `TMDb Read Access Token` | `tmdb_api_read_access_token` | `string` | `leer` | Standard | Read Access Token für Serien-Metadaten über TheMovieDB (TMDb). Wird von TMDb-Service und Serienzuordnung in Analyse/Metadaten-Dialog genutzt. | Wenn TMDb-Metadaten (Suche/Zuordnung/Serienepisoden) verlässlich funktionieren sollen. | -| `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. Wird von TMDb-Service und Serienzuordnung in Analyse/Metadaten-Dialog genutzt. | Wenn bevorzugt deutsche, englische oder andere lokalisierte Metadaten genutzt werden sollen. | -| `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. Wird von TMDb-Service und Serienzuordnung in Analyse/Metadaten-Dialog genutzt. | Wenn bei fehlender Primärsprache automatisch andere Sprachversionen ausprobiert werden sollen. | -| `Coverart-Nachladen aktiv` | `coverart_recovery_enabled` | `boolean` | `true` | Standard | Wenn aktiv, werden fehlende Coverarts automatisch in Intervallen geprüft und nachgeladen. Aenderung aktualisiert den Coverart-Recovery-Scheduler. | Wenn fehlende Cover später automatisch nachgezogen werden sollen. | -| `Coverart-Prüfintervall (Stunden)` | `coverart_recovery_interval_hours` | `number` | `6` | Standard | Intervall für automatische Prüfung fehlender Coverarts in Stunden. Aenderung aktualisiert den Coverart-Recovery-Scheduler. | Wenn der Nachlade-Job haeufiger oder seltener laufen soll. | -| `NFO nach Encode erzeugen` | `generate_nfo_after_encode` | `boolean` | `false` | Standard | Erstellt nach erfolgreichem Encode automatisch eine .nfo-Datei neben der Ausgabedatei. Wird nach erfolgreichem Encode in der Historie/Pipeline ausgewertet. | Wenn neben der Ausgabedatei automatisch eine .nfo fuer Media-Center erzeugt werden soll. | +### PushOver User +Standard: `leer` -## Kategorie: Monitoring +Hier steht der User-Key des PushOver-Kontos, an das Ripster senden soll. -| GUI-Feld | Key | Typ | Default | Sichtbarkeit | Was passiert technisch? | Warum/Wann setzen? | -|---|---|---|---|---|---|---| -| `Hardware Monitoring aktiviert` | `hardware_monitoring_enabled` | `boolean` | `true` | Standard | Master-Schalter: aktiviert/deaktiviert das komplette Hardware-Monitoring (Polling + Berechnung + WebSocket-Updates). Aenderung triggert Re-Konfiguration des Hardware-Monitoring-Dienstes. | Wenn CPU/RAM/GPU/Speicher live sichtbar sein sollen. | -| `Hardware Monitoring Intervall (ms)` | `hardware_monitoring_interval_ms` | `number` | `5000` | Expertenmodus | Polling-Intervall für CPU/RAM/GPU/Storage-Metriken. Aenderung triggert Re-Konfiguration des Hardware-Monitoring-Dienstes. | Wenn Monitoring häufiger aktualisiert oder Last reduziert werden soll. | +Greift in: +- jeden PushOver-Versand -## Kategorie: Pfade +Praxis: +- Trage hier den Zielaccount ein, der die Meldungen wirklich erhalten soll. -| GUI-Feld | Key | Typ | Default | Sichtbarkeit | Was passiert technisch? | Warum/Wann setzen? | -|---|---|---|---|---|---|---| -| `Raw Ausgabeordner (Blu-ray)` | `raw_dir_bluray` | `path` | `leer` | Standard | Optionaler RAW-Zielpfad nur für Blu-ray. Leer = Fallback auf "Raw Ausgabeordner". | Wenn 'Raw Ausgabeordner (Blu-ray)' vom Default abweichen soll. | -| `Raw Ausgabeordner (DVD)` | `raw_dir_dvd` | `path` | `leer` | Standard | Optionaler RAW-Zielpfad nur für DVD. Leer = Fallback auf "Raw Ausgabeordner". | Wenn 'Raw Ausgabeordner (DVD)' vom Default abweichen soll. | -| `CD RAW-Ordner` | `raw_dir_cd` | `path` | `leer` | Standard | Basisordner für rohe CD-WAV-Dateien (cdparanoia-Output). Leer = Standardpfad (data/output/cd). | Wenn 'CD RAW-Ordner' vom Default abweichen soll. | -| `Audiobook RAW-Ordner` | `raw_dir_audiobook` | `path` | `leer` | Standard | Basisordner für hochgeladene AAX-Dateien. Leer = Standardpfad (data/output/audiobook-raw). | Wenn 'Audiobook RAW-Ordner' vom Default abweichen soll. | -| `Serien-Ordner (Blu-ray)` | `series_dir_bluray` | `path` | `leer` | Standard | Zielordner für Blu-ray-Serienfolgen. Leer = Standardpfad (data/output/series). | Wenn 'Serien-Ordner (Blu-ray)' vom Default abweichen soll. | -| `Film Ausgabeordner (Blu-ray)` | `movie_dir_bluray` | `path` | `leer` | Standard | Optionaler Encode-Zielpfad nur für Blu-ray. Leer = Fallback auf "Film Ausgabeordner". | Wenn 'Film Ausgabeordner (Blu-ray)' vom Default abweichen soll. | -| `Film Ausgabeordner (DVD)` | `movie_dir_dvd` | `path` | `leer` | Standard | Optionaler Encode-Zielpfad nur für DVD. Leer = Fallback auf "Film Ausgabeordner". | Wenn 'Film Ausgabeordner (DVD)' vom Default abweichen soll. | -| `Serien-Ordner (DVD)` | `series_dir_dvd` | `path` | `leer` | Standard | Zielordner für DVD-Serienfolgen. Leer = Standardpfad (data/output/series). | Wenn 'Serien-Ordner (DVD)' vom Default abweichen soll. | -| `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. | Wenn 'CD Output-Ordner' vom Default abweichen soll. | -| `Audiobook Output-Ordner` | `movie_dir_audiobook` | `path` | `leer` | Standard | Zielordner für encodierte Audiobook-Dateien. Leer = Standardpfad (data/output/audiobooks). | Wenn 'Audiobook Output-Ordner' vom Default abweichen soll. | -| `Download ZIP-Ordner` | `download_dir` | `path` | `leer` | Standard | Zielordner für vorbereitete ZIP-Downloads. Leer = Standardpfad (data/downloads). Leere Werte nutzen automatisch den Installations-Defaultpfad. | Wenn RAW/Output/Download auf andere Datentraeger verschoben werden sollen (z.B. grosse HDD/NAS). | -| `Externe Speicher` | `external_storage_paths` | `path` | `[]` | Standard | Wird links unter "Freie Speicher" angezeigt. | Wenn 'Externe Speicher' vom Default abweichen soll. | -| `Log Ordner` | `log_dir` | `path` | `installationsabhaengig` | Standard | Basisordner für Logs. Job-Logs liegen direkt hier, Backend-Logs in /backend. Wird zur Laufzeit angewendet; bei ungueltigem Pfad faellt Ripster auf Fallback-Logpfad zurueck. | Wenn Logs auf ein anderes Medium sollen (z.B. persistentes NAS/SSD statt Standardpfad). | -| `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. | Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. | -| `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. | Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. | -| `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}. | Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. | -| `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}. | Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. | -| `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. | Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. | -| `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}. | Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. | -| `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}. | Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. | -| `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. | Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. | -| `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}. | Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. | -| `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). Leere Werte nutzen automatisch den Installations-Defaultpfad. | Wenn RAW/Output/Download auf andere Datentraeger verschoben werden sollen (z.B. grosse HDD/NAS). | -| `Converter Ausgabe (Video)` | `converter_movie_dir` | `path` | `leer` | Standard | Ausgabepfad für konvertierte Video-Dateien. Leer = Standardpfad (data/output/converted-movies). Leere Werte nutzen automatisch den Installations-Defaultpfad. | Wenn RAW/Output/Download auf andere Datentraeger verschoben werden sollen (z.B. grosse HDD/NAS). | -| `Converter Ausgabe (Audio)` | `converter_audio_dir` | `path` | `leer` | Standard | Ausgabepfad für konvertierte Audio-Dateien. Leer = Standardpfad (data/output/converted-audio). Leere Werte nutzen automatisch den Installations-Defaultpfad. | Wenn RAW/Output/Download auf andere Datentraeger verschoben werden sollen (z.B. grosse HDD/NAS). | -| `Output-Template (Video)` | `converter_output_template_video` | `string` | `{title}` | Standard | Dateiname-Template für konvertierte Video-Dateien (ohne Endung). Platzhalter: {title}, {year}. | Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. | -| `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}. | Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. | -| `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). | Wenn 'RAW-Ordner (Blu-ray Serie)' vom Default abweichen soll. | -| `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). Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `RAW-Ordner (DVD Serie)` | `raw_dir_dvd_series` | `path` | `leer` | Standard | RAW-Zielpfad für DVD-Serien. Leer = gleicher Pfad wie RAW-Ordner (DVD). | Wenn 'RAW-Ordner (DVD Serie)' vom Default abweichen soll. | -| `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). Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. Wird beim Anlegen/Finalisieren per `chown` auf Zielpfade angewendet. Greift bei ZIP-Ordner, Archivdatei und Metadatei. | Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: `media:media`. | -| `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. | Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. | +### PushOver Device (optional) +Standard: `leer` -## Kategorie: Tools +Mit diesem Feld begrenzt du PushOver-Nachrichten auf ein bestimmtes Gerät. Bleibt es leer, gehen die Nachrichten an alle Geräte des PushOver-Users. -| GUI-Feld | Key | Typ | Default | Sichtbarkeit | Was passiert technisch? | Warum/Wann setzen? | -|---|---|---|---|---|---|---| -| `MakeMKV Kommando` | `makemkv_command` | `string` | `makemkvcon` | Expertenmodus | Pfad oder Befehl für makemkvcon. | Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). | -| `MakeMKV Key` | `makemkv_registration_key` | `string` | `leer` | Standard | Optionaler Registrierungsschlüssel. Wird beim Speichern nach ~/.MakeMKV/settings.conf synchronisiert. Darunter kann der aktuelle Betakey per API übernommen werden. | Wenn MakeMKV-Features ohne Trial-Limit genutzt werden sollen (inkl. Betakey-Usecase). | -| `Mediainfo Kommando` | `mediainfo_command` | `string` | `mediainfo` | Expertenmodus | Pfad oder Befehl für mediainfo. | Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). | -| `Minimale Titellänge (Minuten)` | `makemkv_min_length_minutes` | `number` | `60` | Standard | Filtert kurze Titel beim Rip. | Wenn kurze Bonus-/Trailer-Titel automatisch ausgefiltert werden sollen. | -| `TMDb Runtime-Abzug für Playlistfilter (%)` | `playlist_tmdb_runtime_subtract_percent` | `number` | `0` | Standard | Zieht optional einen Prozentsatz von der TMDb-Laufzeit ab, damit Ripster bei problematischen Blu-rays leicht kürzere Hauptfassungen trotzdem als Playlist-Kandidaten zulässt. Eine Mindesttoleranz von 2 Minuten nach unten bleibt erhalten. | Wenn die Playlist-Analyse bei einzelnen Discs zu streng ist und der Hauptfilm knapp unter der TMDb-Laufzeit liegt. Beispiel: TMDb sagt 120 Minuten, die Disc liefert 116 bis 118 Minuten, aber die Fassung ist trotzdem korrekt. | -| `HandBrake Kommando` | `handbrake_command` | `string` | `HandBrakeCLI` | Expertenmodus | Pfad oder Befehl für HandBrakeCLI. | Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). | -| `Encode-Neustart: unvollständige Ausgabe löschen` | `handbrake_restart_delete_incomplete_output` | `boolean` | `true` | Standard | Wenn aktiv, wird bei "Encode neu starten" der bisherige (nicht erfolgreiche) Output vor Start entfernt. | Wenn bei Encode-Neustart alte, unvollstaendige Dateien sicher entfernt werden sollen. | -| `Parallele Jobs` | `pipeline_max_parallel_jobs` | `number` | `1` | Standard | Maximale Anzahl parallel laufender Jobs. Weitere Starts landen in der Queue. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. | Wenn Durchsatz und CPU-Last fuer Videojobs ausbalanciert werden sollen. | -| `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. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. | Wenn mehrere Audio-CD-Jobs parallel erlaubt/begrenzt werden sollen. | -| `Script-Test Timeout (ms)` | `script_test_timeout_ms` | `number` | `0` | Expertenmodus | Timeout fuer Script-Tests in den Settings. 0 = kein Timeout. Wird beim Testlauf von Scripts in Settings angewendet. | Wenn Script-Tests bei Haengern automatisch abgebrochen werden sollen. | -| `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. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. | Wenn ein harter Deckel fuer alle Encodes zusammen gelten soll. | -| `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. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. | Wenn Audio-CD-Jobs nicht hinter langen Video-Warteschlangen blockieren sollen. | -| `cdparanoia Kommando` | `cdparanoia_command` | `string` | `cdparanoia` | Expertenmodus | Pfad oder Befehl für cdparanoia. Wird als Fallback genutzt wenn kein individuelles Kommando gesetzt ist. | Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). | -| `FFmpeg Kommando` | `ffmpeg_command` | `string` | `ffmpeg` | Standard | Pfad oder Befehl für ffmpeg. Wird für Audiobook-Encoding genutzt. | Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). | -| `FFprobe Kommando` | `ffprobe_command` | `string` | `ffprobe` | Standard | Pfad oder Befehl für ffprobe. Wird für Audiobook-Metadaten und Kapitel genutzt. | Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). | -| `Mediainfo Extra Args` | `mediainfo_extra_args_bluray` | `string` | `leer` | Expertenmodus | Zusätzliche CLI-Parameter für mediainfo (Blu-ray). | Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). | -| `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. | Wenn fuer 'MakeMKV Rip Modus' ein anderes Standardverhalten benoetigt wird. | -| `MakeMKV Analyze Extra Args` | `makemkv_analyze_extra_args_bluray` | `string` | `leer` | Expertenmodus | Zusätzliche CLI-Parameter für Analyze (Blu-ray). | Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). | -| `MakeMKV Rip Extra Args` | `makemkv_rip_extra_args_bluray` | `string` | `leer` | Expertenmodus | Zusätzliche CLI-Parameter für Rip (Blu-ray). | Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). | -| `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. | Wenn ein bevorzugtes Standard-Preset fuer Blu-ray nicht jedes Mal manuell gewaehlt werden soll. | -| `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-ma...` | Standard | Zusätzliche CLI-Argumente (Blu-ray). | Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). | -| `Review Audio-Sprachen (Blu-ray Film)` | `handbrake_review_audio_languages_bluray_movie` | `string` | `leer` | Standard | Kommagetrennte Sprachliste für die Review-Vorauswahl von Audio-Spuren bei Blu-ray-Filmen. Beispiel: `de,en,jp`. Greift nur, wenn Preset/Extra Args keine Audio-Auswahl vorgeben. | Wenn bei Blu-ray-Filmen im Review nicht mehr alle Audio-Spuren vorausgewählt werden sollen, sondern nur bestimmte Sprachen. | -| `Review UT-Sprachen (Blu-ray Film)` | `handbrake_review_subtitle_languages_bluray_movie` | `string` | `leer` | Standard | Kommagetrennte Sprachliste für die Review-Vorauswahl von Untertiteln bei Blu-ray-Filmen. Beispiel: `de,en,jp`. Greift nur, wenn Preset/Extra Args keine Subtitle-Auswahl vorgeben. | Wenn bei Blu-ray-Filmen im Review nicht mehr alle Untertitel vorausgewählt werden sollen, sondern nur bestimmte Sprachen. | -| `Review Audio-Sprachen (Blu-ray Serie)` | `handbrake_review_audio_languages_bluray_series` | `string` | `leer` | Standard | Kommagetrennte Sprachliste für die Review-Vorauswahl von Audio-Spuren bei Blu-ray-Serien. Beispiel: `de,en,jp`. Greift nur, wenn Preset/Extra Args keine Audio-Auswahl vorgeben. | Wenn bei Blu-ray-Serien im Review nicht mehr alle Audio-Spuren vorausgewählt werden sollen, sondern nur bestimmte Sprachen. | -| `Review UT-Sprachen (Blu-ray Serie)` | `handbrake_review_subtitle_languages_bluray_series` | `string` | `leer` | Standard | Kommagetrennte Sprachliste für die Review-Vorauswahl von Untertiteln bei Blu-ray-Serien. Beispiel: `de,en,jp`. Greift nur, wenn Preset/Extra Args keine Subtitle-Auswahl vorgeben. | Wenn bei Blu-ray-Serien im Review nicht mehr alle Untertitel vorausgewählt werden sollen, sondern nur bestimmte Sprachen. | -| `Ausgabeformat` | `output_extension_bluray` | `select` | `mkv` | Standard | Dateiendung für finale Datei (Blu-ray). | Wenn finale Blu-ray-Dateien standardmaessig als MKV oder MP4 ausgegeben werden sollen. | -| `Mediainfo Extra Args` | `mediainfo_extra_args_dvd` | `string` | `leer` | Expertenmodus | Zusätzliche CLI-Parameter für mediainfo (DVD). | Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). | -| `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. | Wenn fuer 'MakeMKV Rip Modus' ein anderes Standardverhalten benoetigt wird. | -| `MakeMKV Analyze Extra Args` | `makemkv_analyze_extra_args_dvd` | `string` | `leer` | Expertenmodus | Zusätzliche CLI-Parameter für Analyze (DVD). | Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). | -| `MakeMKV Rip Extra Args` | `makemkv_rip_extra_args_dvd` | `string` | `leer` | Expertenmodus | Zusätzliche CLI-Parameter für Rip (DVD). | Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). | -| `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. | Wenn ein bevorzugtes Standard-Preset fuer DVD nicht jedes Mal manuell gewaehlt werden soll. | -| `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-ma...` | Standard | Zusätzliche CLI-Argumente (DVD). | Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). | -| `Review Audio-Sprachen (DVD Film)` | `handbrake_review_audio_languages_dvd_movie` | `string` | `leer` | Standard | Kommagetrennte Sprachliste für die Review-Vorauswahl von Audio-Spuren bei DVD-Filmen. Beispiel: `de,en,jp`. Greift nur, wenn Preset/Extra Args keine Audio-Auswahl vorgeben. | Wenn bei DVD-Filmen im Review nicht mehr alle Audio-Spuren vorausgewählt werden sollen, sondern nur bestimmte Sprachen. | -| `Review UT-Sprachen (DVD Film)` | `handbrake_review_subtitle_languages_dvd_movie` | `string` | `leer` | Standard | Kommagetrennte Sprachliste für die Review-Vorauswahl von Untertiteln bei DVD-Filmen. Beispiel: `de,en,jp`. Greift nur, wenn Preset/Extra Args keine Subtitle-Auswahl vorgeben. | Wenn bei DVD-Filmen im Review nicht mehr alle Untertitel vorausgewählt werden sollen, sondern nur bestimmte Sprachen. | -| `Review Audio-Sprachen (DVD Serie)` | `handbrake_review_audio_languages_dvd_series` | `string` | `leer` | Standard | Kommagetrennte Sprachliste für die Review-Vorauswahl von Audio-Spuren bei DVD-Serien. Beispiel: `de,en,jp`. Greift nur, wenn Preset/Extra Args keine Audio-Auswahl vorgeben. | Wenn bei DVD-Serien im Review nicht mehr alle Audio-Spuren vorausgewählt werden sollen, sondern nur bestimmte Sprachen. | -| `Review UT-Sprachen (DVD Serie)` | `handbrake_review_subtitle_languages_dvd_series` | `string` | `leer` | Standard | Kommagetrennte Sprachliste für die Review-Vorauswahl von Untertiteln bei DVD-Serien. Beispiel: `de,en,jp`. Greift nur, wenn Preset/Extra Args keine Subtitle-Auswahl vorgeben. | Wenn bei DVD-Serien im Review nicht mehr alle Untertitel vorausgewählt werden sollen, sondern nur bestimmte Sprachen. | -| `Ausgabeformat` | `output_extension_dvd` | `select` | `mkv` | Standard | Dateiendung für finale Datei (DVD). | Wenn finale DVD-Dateien standardmaessig als MKV oder MP4 ausgegeben werden sollen. | -| `mkvmerge Kommando` | `mkvmerge_command` | `string` | `mkvmerge` | Standard | Pfad oder Befehl für mkvmerge. Wird für Multipart-Movie-Merges genutzt. | Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). | +Greift in: +- die Zielauswahl beim Versand -## Spezielle Werteformate +Praxis: +- Sinnvoll, wenn Ripster nur ein bestimmtes Telefon oder Tablet benachrichtigen soll. -- `Eigentümer (user:gruppe)`: z.B. `media:media` oder `1000:1000`. -- `drive_devices` (JSON): `[{"path":"/dev/sr0","makemkvIndex":0},{"path":"/dev/sr1","makemkvIndex":1}]` -- `external_storage_paths` (JSON): `[{"name":"USB HDD","path":"/mnt/usb-hdd"}]` -- `converter_scan_extensions`: kommagetrennt, ohne Punkt, z.B. `mkv,mp4,flac,mp3`. -- Template-Felder: erlauben Platzhalter (`{...}` / `${...}`) und `/` fuer Unterordner. +### PushOver Titel-Präfix +Standard: `Ripster` -## Hinweis zu ausgeblendeten Feldern +Das Präfix wird vor den eigentlichen Titel jeder PushOver-Nachricht gesetzt. So kannst du mehrere Instanzen oder Systeme leichter auseinanderhalten. -Die Keys `drive_device`, `makemkv_source_index`, `makemkv_rip_mode_bluray`, `makemkv_rip_mode_dvd` liegen im Schema, werden aber bewusst nicht im normalen Formular angezeigt. +Greift in: +- die Betreffzeile aller PushOver-Nachrichten + +Praxis: +- Typische Werte sind zum Beispiel `Ripster Keller`, `Wohnzimmer-Ripper` oder der Hostname. + +### PushOver Priority +Standard: `0` + +Die Priorität steuert, wie dringend PushOver die Nachricht behandelt. Niedrigere Werte sind leiser, höhere Werte auffälliger. + +Greift in: +- die Zustellungsart auf der PushOver-Seite + +Praxis: +- Für normale Statusmeldungen reicht meist `0`. +- Höhere Prioritäten sind eher für Fehler oder manuelle Eingriffe gedacht. + +### PushOver Timeout (ms) +Standard: `7000` + +Dieser Wert legt fest, wie lange Ripster auf eine Antwort von PushOver wartet, bevor der Versand als fehlgeschlagen gilt. + +Greift in: +- die HTTP-Verbindung zu PushOver + +Praxis: +- Ein höherer Wert kann bei langsamen Verbindungen helfen. +- Ein niedrigerer Wert sorgt dafür, dass Hänger schneller abgebrochen werden. + +### Bei manueller Auswahl senden +Standard: `An` + +Ripster sendet eine Nachricht, wenn ein Job auf eine Benutzerentscheidung wartet, zum Beispiel bei Metadatenauswahl, RAW-Entscheidung, Playlist-Auswahl oder Titelwahl vor dem Review. + +Greift in: +- Playlistflow +- RAW-Wiederverwendung +- manuelle Review-Vorbereitung + +Praxis: +- Das ist eines der wichtigsten Events, wenn Ripster unbeaufsichtigt laufen soll. + +### Bei Rip-Start senden +Standard: `An` + +Sendet eine Nachricht in dem Moment, in dem der eigentliche MakeMKV-Rip startet. + +Greift in: +- Disc-Workflows im Ripper + +Praxis: +- Nützlich, wenn du wissen willst, dass die Wartephase beendet ist und das Laufwerk jetzt wirklich arbeitet. + +### Bei Encode-Start senden +Standard: `An` + +Sendet eine Nachricht beim Start von HandBrake oder eines anderen Encode-Schritts. + +Greift in: +- Film-, Serien-, Converter- und Audiobook-Encodes + +Praxis: +- Hilfreich, wenn Rip und Encode auf unterschiedlichen Systemlasten beruhen und du den eigentlichen Rechenstart mitbekommen willst. + +### Bei Erfolg senden +Standard: `An` + +Sendet eine Nachricht nach erfolgreichem Abschluss eines Jobs. + +Greift in: +- alle erfolgreichen Pipeline-Läufe + +Praxis: +- Gut für lange Nachtläufe oder Stapelverarbeitung. + +### Bei Fehler senden +Standard: `An` + +Sendet eine Nachricht, sobald ein Job in einen Fehlerzustand läuft. + +Greift in: +- Fehler in Rip, Analyse, Review-Aufbau, Encode oder Folgeaktionen + +Praxis: +- Dieses Event sollte in produktiven Umgebungen fast immer aktiv bleiben. + +### Bei Abbruch senden +Standard: `An` + +Sendet eine Nachricht, wenn ein Job manuell abgebrochen wurde. + +Greift in: +- Benutzerabbrüche im laufenden Workflow + +Praxis: +- Vor allem nützlich, wenn mehrere Personen mit derselben Instanz arbeiten. + +### Bei Re-Encode Start senden +Standard: `An` + +Sendet eine Nachricht beim Start eines Re-Encodes aus vorhandenem RAW. + +Greift in: +- `RAW neu encodieren` +- `Review neu starten` mit erneutem Encode + +Praxis: +- Praktisch, wenn du bestehende RAWs später gesammelt neu verarbeitest. + +### Bei Re-Encode Erfolg senden +Standard: `An` + +Sendet eine Nachricht, wenn ein Re-Encode erfolgreich abgeschlossen wurde. + +Greift in: +- Nachbearbeitung aus der Historie + +Praxis: +- Besonders hilfreich bei Korrekturläufen auf Basis alter RAWs. + +## Converter + +### Erlaubte Datei-Endungen +Standard: `mkv,mp4,m2ts,iso,avi,mov,flac,mp3,aac,wav,m4a,ogg,opus` + +Die Liste bestimmt, welche Dateitypen der Converter-Upload akzeptiert und welche Dateien beim Scannen des Converter-Eingangsordners berücksichtigt werden. Die Einträge werden kommagetrennt und ohne Punkt gepflegt. + +Greift in: +- Upload im Converter +- manueller Scan +- Auto-Scan + +Praxis: +- Entferne Formate, die in deiner Umgebung nie verarbeitet werden sollen. +- Ergänze nur Formate, die Ripster später auch sinnvoll als Job behandeln kann. + +### Auto-Scan (Polling) +Standard: `Aus` + +Wenn dieser Schalter aktiv ist, scannt Ripster den Converter-Eingangsordner in festen Abständen automatisch neu. Neue oder verschobene Dateien tauchen dann ohne manuellen Klick auf. + +Greift in: +- die Dateiansicht des Converters +- automatisches Erkennen externer Dateiimporte + +Praxis: +- Sinnvoll, wenn Dateien per Netzfreigabe, Script oder anderer Software in den Converter gelegt werden. + +### Polling-Intervall (Sekunden) +Standard: `300` + +Der Wert bestimmt, wie oft der Converter-Eingangsordner bei aktivem Auto-Scan geprüft wird. + +Greift in: +- Reaktionsgeschwindigkeit des Converter-Scans +- Systemlast durch wiederholte Verzeichnisprüfungen + +Praxis: +- Kleinere Werte aktualisieren schneller, erzeugen aber mehr Dateisystemzugriffe. + +## Laufwerk + +### Laufwerksmodus +Standard: `auto` + +Hier legst du fest, ob Ripster optische Laufwerke automatisch erkennen soll oder ob du feste Laufwerke manuell definierst. + +Greift in: +- Laufwerkserkennung +- Disc-Monitoring +- Zuordnung von Laufwerk und MakeMKV-Quelle + +Praxis: +- `auto` passt für die meisten Einzel-Laufwerke. +- Ein expliziter Modus ist besser, wenn mehrere Laufwerke stabil an bestimmte Geräte gebunden werden sollen. + +### Explizite Laufwerke +Standard: `leer` + +In diesem Editor legst du pro Laufwerk einen Gerätepfad und den passenden MakeMKV-Index fest. Diese Liste wird nur verwendet, wenn der Laufwerksmodus auf einen expliziten Betrieb gestellt ist. + +Greift in: +- Multi-Drive-Setups +- stabile Zuordnung zwischen Linux-Gerät und MakeMKV-Quelle + +Praxis: +- Besonders hilfreich bei zwei oder mehr Laufwerken oder bei wechselnden USB-Adaptern. + +### Device Pfad +Standard: `/dev/sr0` + +Dieses Feld ist normalerweise ausgeblendet und dient nur als älterer Einzelwert für feste Laufwerkskonfigurationen. In der Praxis solltest du stattdessen den Editor `Explizite Laufwerke` verwenden. + +Greift in: +- interne Fallbacks bei expliziter Laufwerkskonfiguration + +Praxis: +- Nur relevant für Sonderfälle oder Altdaten. + +### MakeMKV Source Index +Standard: `0` + +Dieses normalerweise ausgeblendete Feld legt den MakeMKV-Quellindex fest, wenn kein expliziter Laufwerks-Eintrag greift. + +Greift in: +- interne Quellauflösung für MakeMKV + +Praxis: +- Im Alltag wird dieser Wert meist automatisch aus der Laufwerkskonfiguration abgeleitet. + +### Automatische Disk-Erkennung +Standard: `An` + +Wenn der Schalter aktiv ist, prüft Ripster regelmäßig, ob neue Discs eingelegt wurden. Ist er aus, musst du Laufwerke manuell neu einlesen. + +Greift in: +- automatisches Erkennen neu eingelegter Discs + +Praxis: +- Deaktiviere die Automatik nur, wenn sie in deiner Umgebung stört oder du volle manuelle Kontrolle willst. + +### Polling Intervall (ms) +Standard: `4000` + +Der Wert bestimmt, wie häufig Ripster nach neuen oder entfernten Discs sucht. + +Greift in: +- Reaktionsgeschwindigkeit der Disc-Erkennung +- Häufigkeit der Laufwerksabfragen + +Praxis: +- Ein kleinerer Wert reagiert schneller. +- Ein größerer Wert reduziert die Polling-Last. + +### Laufwerk nach Rip auswerfen +Standard: `Aus` + +Wenn aktiv, wirft Ripster das beteiligte Laufwerk nach einem erfolgreich abgeschlossenen Rip automatisch aus. + +Greift in: +- Disc-Workflows nach erfolgreichem Rip + +Praxis: +- Nützlich bei Stapelbetrieb, damit du sofort siehst, welches Laufwerk fertig ist. + +## Logging + +### Terminal-Ausgabe aktiv +Standard: `An` + +Dieser Schalter steuert die Konsolenausgabe des Servers im Terminal. Die Log-Dateien auf Platte bleiben davon unberührt. + +Greift in: +- `start.sh` +- Service-Diagnose im Terminal + +Praxis: +- Deaktiviere die Ausgabe, wenn die Konsole bewusst ruhig bleiben soll. + +### HTTP-Logs im Terminal +Standard: `An` + +Zeigt oder unterdrückt eingehende HTTP-Requests in der Konsolenausgabe. + +Greift in: +- API-Debugging +- Analyse von Frontend-/Backend-Kommunikation + +Praxis: +- Besonders bei Fehlersuche im Webinterface nützlich. + +### DEBUG im Terminal +Standard: `An` + +Steuert, ob sehr detaillierte Debug-Meldungen im Terminal mitlaufen. + +Greift in: +- tiefes Troubleshooting + +Praxis: +- Gut für Fehlersuche, oft zu ausführlich für den Dauerbetrieb. + +### INFO im Terminal +Standard: `An` + +Steuert normale Statusmeldungen in der Konsolenausgabe. + +Greift in: +- alltägliche Laufzeitbeobachtung + +Praxis: +- Für normale Bedienung meist sinnvoll aktiviert. + +### WARN im Terminal +Standard: `An` + +Steuert Warnmeldungen in der Konsole. + +Greift in: +- Hinweise auf ungewöhnliche, aber nicht sofort kritische Situationen + +Praxis: +- Sollte fast immer sichtbar bleiben. + +### ERROR im Terminal +Standard: `An` + +Steuert Fehlermeldungen in der Konsole. + +Greift in: +- alle ernsthaften Laufzeitfehler + +Praxis: +- Sollte im Regelfall immer aktiviert bleiben. + +## Metadaten + +### TMDb Read Access Token +Standard: `leer` + +Ohne diesen Token kann Ripster keine reguläre TMDb-Metadatensuche für Filme und Serien durchführen. Der Wert wird für Suche, Zuordnung und spätere Neu-Zuweisungen verwendet. + +Greift in: +- Metadatenauswahl nach der Analyse +- Serienzuordnung +- `TMDb neu zuweisen` +- Poster- und Titellookups + +Praxis: +- Dieses Feld gehört zu den wichtigsten Grundeinstellungen für Disc-Workflows. + +### Film-Sprache +Standard: `de-DE` + +Hier legst du fest, in welcher TMDb-Sprache Ripster Titel, Beschreibungen, Staffelnamen und ähnliche Daten zuerst abruft. + +Greift in: +- Film- und Serienmetadaten in der Auswahl +- Sprache der zurückgegebenen TMDb-Daten + +Praxis: +- Wähle die Sprache, in der du Titel und Episodennamen später auch in Ordnern und Historie sehen willst. + +### Fallback Sprache +Standard: `de-DE,en-US` + +Wenn in der Hauptsprache keine brauchbaren Daten vorhanden sind, versucht Ripster nacheinander diese Fallback-Sprachen. + +Greift in: +- Trefferqualität bei seltenen oder schlecht lokalisierten Titeln + +Praxis: +- Eine Kombination aus lokaler Sprache und `en-US` ist oft am robustesten. + +### Coverart-Nachladen aktiv +Standard: `An` + +Wenn bei Jobs oder Containern Cover fehlen, prüft Ripster in Intervallen automatisch nach und versucht das Material später nachzuladen. + +Greift in: +- nachträgliche Pflege von Postern und Covern + +Praxis: +- Sinnvoll, wenn beim ersten Lauf gelegentlich noch keine vollständigen Bilder verfügbar waren. + +### Coverart-Prüfintervall (Stunden) +Standard: `6` + +Legt fest, wie oft die automatische Cover-Prüfung laufen darf. + +Greift in: +- Häufigkeit des Cover-Nachladens + +Praxis: +- Kleinere Werte aktualisieren schneller, größere Werte reduzieren Hintergrundaktivität. + +### NFO nach Encode erzeugen +Standard: `Aus` + +Wenn dieser Schalter aktiv ist, legt Ripster nach erfolgreichem Encode eine `.nfo`-Datei neben der finalen Ausgabedatei an. + +Greift in: +- Film- und Serienausgabe +- Nachbearbeitung in Media-Centern + +Praxis: +- Hilfreich für Setups mit Kodi, Jellyfin-Begleitdateien oder eigener Archivierung. + +## Monitoring + +### Hardware Monitoring aktiviert +Standard: `An` + +Das ist der Master-Schalter für CPU-, RAM-, GPU- und Speicher-Monitoring. Ist er aus, stoppt Ripster Polling und Live-Updates für diese Daten. + +Greift in: +- die kompakte Anzeige im `Ripper` +- die Seite `Hardware` + +Praxis: +- Deaktiviere das Monitoring nur, wenn du die Werte nicht brauchst oder die Abfragen in deiner Umgebung unerwünscht sind. + +### Hardware Monitoring Intervall (ms) +Standard: `5000` + +Hier stellst du ein, wie oft Hardware- und Speicherwerte neu ermittelt werden. + +Greift in: +- Aktualität der Hardware-Daten +- Polling-Last + +Praxis: +- Kürzere Intervalle fühlen sich live an, erzeugen aber mehr Messaufrufe. + +## Pfade + +### Grundregeln für Pfade, Besitzer und Templates + +- Leere Pfadfelder fallen je nach Bereich auf eingebaute Standardpfade oder auf den allgemeineren Profilpfad zurück. +- Besitzer-Felder erwarten `Benutzer:Gruppe` oder `UID:GID`, zum Beispiel `media:media` oder `1000:1000`. +- Wenn ein Besitzer gesetzt ist, versucht Ripster neue oder fertiggestellte Dateien nach dem Schreiben entsprechend zu übernehmen. +- In Templates erzeugt `/` Unterordner. +- Templates greifen immer auf die relative Struktur innerhalb des jeweiligen Zielordners. + +### Raw Ausgabeordner (Blu-ray) +Standard: `leer` + +Hier landet das von Blu-ray-Discs erzeugte RAW-Material, sofern kein spezieller Serien-RAW-Ordner greift. + +Greift in: +- Film- und Disc-Vorbereitung für Blu-ray +- Wiederverwendung vorhandener RAWs + +Praxis: +- Lege RAW-Material gern auf ein großes, schnelles Laufwerk. + +### Raw Ausgabeordner (DVD) +Standard: `leer` + +Hier landet das von DVD-Discs erzeugte RAW-Material, sofern kein spezieller Serien-RAW-Ordner greift. + +Greift in: +- DVD-Rip-Phase +- RAW-Wiederverwendung bei DVDs + +Praxis: +- Trenne Blu-ray- und DVD-RAW, wenn du unterschiedliche Speicherorte oder Aufbewahrungsstrategien willst. + +### CD RAW-Ordner +Standard: `leer` + +In diesem Ordner legt Ripster die rohen CD-Dateien aus dem Audio-CD-Rip ab, bevor das endgültige Ausgabeformat erzeugt wird. + +Greift in: +- Audio-CD-Rip + +Praxis: +- Sinnvoll auf einem lokalen Datenträger mit genug Platz für WAV-Zwischendaten. + +### Audiobook RAW-Ordner +Standard: `leer` + +Das ist der Basisordner für hochgeladene Audiobook-Quelldateien und deren vorbereitete Rohdaten. + +Greift in: +- AAX-Upload +- Audiobook-Vorbereitung + +Praxis: +- Gut geeignet für einen Bereich, in dem auch größere temporäre Quelldateien liegen dürfen. + +### Serien-Ordner (Blu-ray) +Standard: `leer` + +Das ist der Zielordner für fertige Blu-ray-Serienepisoden. + +Greift in: +- Ausgabe von Blu-ray-Serien + +Praxis: +- Typisch ist eine Trennung von Serien und Filmen auf Verzeichnisebene. + +### Film Ausgabeordner (Blu-ray) +Standard: `leer` + +Hierhin schreibt Ripster fertige Blu-ray-Filme. + +Greift in: +- finale Film-Ausgabe für Blu-ray + +Praxis: +- Wenn leer, greift Ripster auf den allgemeinen Film-Output zurück. + +### Film Ausgabeordner (DVD) +Standard: `leer` + +Hierhin schreibt Ripster fertige DVD-Filme. + +Greift in: +- finale Film-Ausgabe für DVD + +Praxis: +- Praktisch, wenn DVD- und Blu-ray-Filme getrennt archiviert werden sollen. + +### Serien-Ordner (DVD) +Standard: `leer` + +Das ist der Zielordner für fertige DVD-Serienepisoden. + +Greift in: +- Ausgabe von DVD-Serien + +Praxis: +- Kann bewusst getrennt vom Blu-ray-Serienordner geführt werden. + +### CD Output-Ordner +Standard: `leer` + +Hier landen die final encodierten Audio-CD-Dateien. Wenn das Feld leer ist, nutzt Ripster denselben Bereich wie für die CD-RAW-Daten oder den eingebauten Standard. + +Greift in: +- finale Audio-CD-Ausgabe + +Praxis: +- Trenne RAW und Ausgabe, wenn du Rohdaten nur kurzfristig behalten willst. + +### Audiobook Output-Ordner +Standard: `leer` + +Hier landen die fertigen Audiobook-Dateien. + +Greift in: +- `m4b` +- kapitelweises `mp3` +- kapitelweises `flac` + +Praxis: +- Lege diesen Ordner dort an, wo dein Hörbuch-Archiv liegen soll. + +### Download ZIP-Ordner +Standard: `leer` + +Ripster erstellt hier vorbereitete ZIP-Downloads aus RAW oder Output und legt auch die zugehörigen Metadateien dort ab. + +Greift in: +- Download-Aktionen aus der Historie + +Praxis: +- Gut geeignet für einen Bereich mit genug temporärem Platz für Archive. + +### Externe Speicher +Standard: `leer` + +Hier hinterlegst du zusätzliche Speicherorte, die Ripster in der Oberfläche unter den freien Speichern anzeigen soll. Diese Liste ist für die Überwachung gedacht, nicht als Schreibziel. + +Greift in: +- Speicheranzeige im Monitoring + +Praxis: +- Nützlich für USB-Platten, NAS-Mounts oder andere Zielmedien, deren freien Platz du im Blick behalten willst. + +### Log Ordner +Standard: `installationsabhängig` + +Das ist der Basisordner für die Log-Dateien von Ripster. Wenn der Pfad ungültig ist, fällt Ripster auf einen internen Fallback zurück. + +Greift in: +- Backend-Logs +- Job-Logs + +Praxis: +- Lege Logs auf persistenten Speicher, wenn du Fehlerverläufe langfristig aufbewahren willst. + +### CD Output Template +Standard: `{artist} - {album} ({year})/{trackNr} {artist} - {title}` + +Dieses Template steuert Ordnerstruktur und Dateinamen der finalen Audio-CD-Ausgabe. Der letzte Abschnitt wird Dateiname, alles davor Unterordner. + +Greift in: +- Audio-CD-Ordnerstruktur +- Track-Dateinamen + +Praxis: +- Beispiel: Mit dem Standard entsteht typischerweise `Interpret - Album (2024)/01 Interpret - Titel.flac`. + +### Output Template (Blu-ray) +Standard: `${title} (${year})/${title} (${year})` + +Dieses Template bestimmt Ordner und Dateiname für fertige Blu-ray-Filme. + +Greift in: +- finale Blu-ray-Filmausgabe + +Praxis: +- Das Standardtemplate erzeugt einen Filmordner und darin eine gleichnamige Datei. + +### Output Template (Blu-ray Serie, Episode) +Standard: `{seriesTitle}/Staffel {seasonNr}/S{seasonNr}E{episodeNr} - {episodeTitle}` + +Dieses Template bestimmt den Pfad für einzelne Blu-ray-Serienfolgen. + +Greift in: +- Serien-Workflow mit Einzel-Episoden + +Praxis: +- Beispiel: `Serie/Staffel 02/S02E05 - Episodentitel.mkv`. + +### Output Template (Blu-ray Serie, Multi-Episode) +Standard: `{seriesTitle}/Staffel {seasonNr}/S{0:seasonNr}E{episodeRange} - {episodeTitle} (Teil {parts})` + +Dieses Template greift, wenn mehrere Folgen in einer Datei zusammengefasst bleiben. + +Greift in: +- Serien-Workflow mit Doppelfolgen oder Play-All-Fällen + +Praxis: +- So bleibt direkt im Dateinamen sichtbar, dass mehrere Episoden in einer Datei liegen. + +### Output Template (DVD) +Standard: `${title} (${year})/${title} (${year})` + +Dieses Template bestimmt Ordner und Dateiname für fertige DVD-Filme. + +Greift in: +- finale DVD-Filmausgabe + +Praxis: +- Das Verhalten entspricht dem Blu-ray-Filmtemplate, nur für das DVD-Profil. + +### Output Template (DVD Serie, Episode) +Standard: `{seriesTitle}/Season {seasonNr}/{seriesTitle} - S{seasonNo}E{episodeNo} - {episodeTitle}` + +Dieses Template steuert den Pfad für einzelne DVD-Serienfolgen. + +Greift in: +- DVD-Serien mit einzelner Episodenausgabe + +Praxis: +- Nutze es, um dein bevorzugtes Serien-Schema exakt abzubilden. + +### Output Template (DVD Serie, Multi-Episode) +Standard: `{seriesTitle}/Season {seasonNr}/{seriesTitle} - S{seasonNo}E{episodeRange}` + +Dieses Template greift für zusammengefasste DVD-Folgen in einer Datei. + +Greift in: +- Multi-Episode-Ausgabe im DVD-Serienworkflow + +Praxis: +- Besonders relevant bei TV-DVDs mit Play-All-Titeln oder Doppelfolgen. + +### Output Template (Audiobook) +Standard: `{author}/{author} - {title} ({year})` + +Dieses Template bestimmt den Dateipfad für die Ein-Datei-Ausgabe von Audiobooks, also vor allem für `m4b`. + +Greift in: +- Audiobook-Ausgabe als Einzeltitel + +Praxis: +- Beispiel: `Autor/Autor - Titel (2023).m4b`. + +### Audiobook RAW Template +Standard: `{author} - {title} ({year})` + +Dieses Template steuert den Namen des relativen RAW-Unterordners, in den die Audiobook-Quelldaten gelegt werden. + +Greift in: +- Audiobook-Upload und RAW-Ablage + +Praxis: +- Es hilft dabei, AAX-Rohdaten sauber nach Titel und Jahr zu organisieren. + +### Converter Raw-Ordner +Standard: `leer` + +Das ist der Eingangsordner des Converters. Uploads, neue Unterordner und externe Dateiimporte landen hier. + +Greift in: +- gesamte Converter-Dateiverwaltung + +Praxis: +- Dieser Ordner sollte gut erreichbar und groß genug für Rohdateien sein. + +### Converter Ausgabe (Video) +Standard: `leer` + +Hierhin schreibt Ripster final konvertierte Video- oder ISO-Ergebnisse aus dem Converter. + +Greift in: +- Converter-Videojobs + +Praxis: +- Lege hier den Zielbereich für fertige Video-Transcodes fest. + +### Converter Ausgabe (Audio) +Standard: `leer` + +Hierhin schreibt Ripster die finalen Audio-Ergebnisse aus dem Converter. + +Greift in: +- Converter-Audiojobs + +Praxis: +- Sinnvoll getrennt vom Video-Ausgabeordner. + +### Output-Template (Video) +Standard: `{title}` + +Dieses Template bestimmt den Dateinamen von Converter-Videojobs. Unterordner sind ebenfalls möglich. + +Greift in: +- Converter-Videoausgabe + +Praxis: +- Beispiel: `{title}/{title}` erzeugt einen Unterordner pro Titel. + +### Output-Template (Audio) +Standard: `{artist} - {title}` + +Dieses Template bestimmt Dateiname und bei Bedarf Ordnerstruktur von Converter-Audiojobs. + +Greift in: +- einzelne Audio-Dateien +- gemeinsame Audio-Jobs +- Ordnerjobs + +Praxis: +- Bei gemeinsamen Audio-Jobs kann der vordere Teil des Templates als Ordner dienen, der hintere Teil als Track-Schema. + +### RAW-Ordner (Blu-ray Serie) +Standard: `leer` + +Hier kannst du Blu-ray-Serien-RAW bewusst getrennt vom allgemeinen Blu-ray-RAW ablegen. + +Greift in: +- Serien-RAW-Erzeugung bei Blu-ray + +Praxis: +- Sinnvoll, wenn Serien deutlich andere Speicher- oder Aufbewahrungsregeln haben als Filme. + +### Eigentümer RAW-Ordner (Blu-ray Serie) +Standard: `leer` + +Legt den Besitzer für Blu-ray-Serien-RAW fest. Ripster versucht neue Dateien und Ordner nach dem Schreiben entsprechend zu übernehmen. + +Greift in: +- Dateirechte auf Serien-RAW + +Praxis: +- Typisch für NAS-Freigaben oder Docker-Setups mit getrennten Nutzern. + +### Eigentümer Raw-Ordner (Blu-ray) +Standard: `leer` + +Legt den Besitzer für allgemeine Blu-ray-RAW-Daten fest. + +Greift in: +- Dateirechte auf Blu-ray-RAW + +Praxis: +- Relevant, wenn der Ripster-Dienst nicht als Zielnutzer schreiben soll. + +### RAW-Ordner (DVD Serie) +Standard: `leer` + +Hier kannst du DVD-Serien-RAW getrennt vom allgemeinen DVD-RAW ablegen. + +Greift in: +- Serien-RAW-Erzeugung bei DVD + +Praxis: +- Sinnvoll, wenn Serienmaterial getrennt verwaltet werden soll. + +### Eigentümer RAW-Ordner (DVD Serie) +Standard: `leer` + +Legt den Besitzer für DVD-Serien-RAW fest. + +Greift in: +- Dateirechte auf DVD-Serien-RAW + +Praxis: +- Besonders wichtig in Mehrbenutzer- oder NAS-Umgebungen. + +### Eigentümer Raw-Ordner (DVD) +Standard: `leer` + +Legt den Besitzer für allgemeine DVD-RAW-Daten fest. + +Greift in: +- Dateirechte auf DVD-RAW + +Praxis: +- Nutze das Feld, wenn finale Rechte nicht beim Service-User liegen sollen. + +### Eigentümer CD RAW-Ordner +Standard: `leer` + +Legt den Besitzer für Rohdaten aus Audio-CD-Rips fest. + +Greift in: +- Rechte auf CD-Zwischendaten + +Praxis: +- Hilfreich, wenn andere Tools oder Nutzer auf die Rohdaten zugreifen sollen. + +### Eigentümer Audiobook RAW-Ordner +Standard: `leer` + +Legt den Besitzer für Audiobook-Rohdaten fest. + +Greift in: +- Rechte auf AAX- und Vorbereitungsdaten + +Praxis: +- Relevant, wenn Audiobook-RAW nicht beim Dienstbenutzer verbleiben soll. + +### Eigentümer Converter RAW-Ordner +Standard: `leer` + +Legt den Besitzer für Dateien im Converter-Eingangsbereich fest. + +Greift in: +- Rechte auf Uploads und importierte Converter-Dateien + +Praxis: +- Praktisch, wenn Dateien nach dem Upload auch außerhalb von Ripster bearbeitet werden. + +### Eigentümer Serien-Ordner (Blu-ray) +Standard: `leer` + +Legt den Besitzer für fertige Blu-ray-Serienausgaben fest. + +Greift in: +- finale Rechte auf Blu-ray-Serien + +Praxis: +- Sinnvoll für Media-Center-Freigaben. + +### Eigentümer Film-Ordner (Blu-ray) +Standard: `leer` + +Legt den Besitzer für fertige Blu-ray-Filmdateien fest. + +Greift in: +- finale Rechte auf Blu-ray-Filme + +Praxis: +- Nutze das Feld, wenn Filme auf einem NAS oder von anderen Diensten gelesen werden. + +### Eigentümer Film-Ordner (DVD) +Standard: `leer` + +Legt den Besitzer für fertige DVD-Filmdateien fest. + +Greift in: +- finale Rechte auf DVD-Filme + +Praxis: +- Gleiches Prinzip wie beim Blu-ray-Filmordner, nur für DVD. + +### Eigentümer Serien-Ordner (DVD) +Standard: `leer` + +Legt den Besitzer für fertige DVD-Serienausgaben fest. + +Greift in: +- finale Rechte auf DVD-Serien + +Praxis: +- Hilfreich für gemeinsame Medienarchive. + +### Eigentümer CD Output-Ordner +Standard: `leer` + +Legt den Besitzer der finalen Audio-CD-Ausgabe fest. + +Greift in: +- Rechte auf FLAC-, MP3- oder andere CD-Endformate + +Praxis: +- Wichtig, wenn Musik später durch andere Anwendungen verwaltet wird. + +### Eigentümer Audiobook Output-Ordner +Standard: `leer` + +Legt den Besitzer der finalen Audiobook-Dateien fest. + +Greift in: +- Rechte auf `m4b`, `mp3` und `flac` + +Praxis: +- Sinnvoll für Bibliotheken, die von separaten Diensten gelesen werden. + +### Eigentümer Converter Video Output-Ordner +Standard: `leer` + +Legt den Besitzer der finalen Converter-Videoausgabe fest. + +Greift in: +- Rechte auf konvertierte Video-Dateien + +Praxis: +- Nützlich bei geteilten Medienordnern. + +### Eigentümer Converter Audio Output-Ordner +Standard: `leer` + +Legt den Besitzer der finalen Converter-Audioausgabe fest. + +Greift in: +- Rechte auf konvertierte Audio-Dateien + +Praxis: +- Hilfreich, wenn Audio-Dateien später von anderen Diensten verschoben oder indiziert werden. + +### Eigentümer Download ZIP-Ordner +Standard: `leer` + +Legt den Besitzer der erzeugten Download-Archive und Begleitdateien fest. + +Greift in: +- Rechte auf ZIP-Downloads aus der Historie + +Praxis: +- Besonders relevant, wenn Downloads über Freigaben oder einen anderen Webserver bereitgestellt werden. + +### Kapitel Template (Audiobook) +Standard: `{author}/{author} - {title} ({year})/{chapterNr} {chapterTitle}` + +Dieses Template steuert die Zielstruktur für kapitelweise Audiobook-Ausgaben wie `mp3` oder `flac`. + +Greift in: +- Kapiteldateien im Audiobook-Workflow + +Praxis: +- Beispiel: `Autor/Autor - Titel (2023)/01 Kapitelname.mp3`. + +## Tools + +### Grundregeln für diese Kategorie + +- Die Tool-Kommandos sagen Ripster, welches externe Programm gestartet werden soll. +- `Preset` und `Extra Args` bestimmen das Verhalten der jeweiligen CLI. +- Sprach-Review-Felder greifen nur als Vorauswahl in der Review und nur dann, wenn ein Preset nicht bereits selbst eine explizite Trackauswahl erzwingt. + +### MakeMKV Kommando +Standard: `makemkvcon` + +Hier gibst du den Befehl oder den vollständigen Pfad zur MakeMKV-CLI an. + +Greift in: +- Disc-Analyse +- Rip von Blu-ray und DVD + +Praxis: +- Trage einen absoluten Pfad ein, wenn das Tool nicht im `PATH` des Dienstes liegt. + +### MakeMKV Key +Standard: `leer` + +Hier hinterlegst du den Registrierungsschlüssel für MakeMKV. Ripster synchronisiert ihn beim Speichern in die MakeMKV-Konfiguration und kann außerdem den aktuellen Betakey übernehmen. + +Greift in: +- MakeMKV-Nutzung ohne Trial-Einschränkungen + +Praxis: +- Sinnvoll, wenn die CLI dauerhaft und ohne manuelle Host-Pflege nutzbar bleiben soll. + +### Mediainfo Kommando +Standard: `mediainfo` + +Hier gibst du den Befehl oder Pfad zu `mediainfo` an. + +Greift in: +- Mediainfo-Prüfung +- Review-Aufbau +- Analyse vorhandener Dateien + +Praxis: +- Wichtig für alle Workflows, die Track- und Streaminformationen zuverlässig aufbauen sollen. + +### Minimale Titellänge (Minuten) +Standard: `60` + +Diese Einstellung wirkt doppelt: Ripster hängt den Wert bei der MakeMKV-Analyse als Mindestlänge an, sofern du nicht schon selbst eine explizite Mindestlänge in den Extra-Args gesetzt hast. Zusätzlich markiert Ripster Titel unterhalb dieser Schwelle später im Review als nicht encodierwürdig. + +Greift in: +- Titel- und Playlist-Vorfilterung +- Disc-Analyse +- Review-Aufbau + +Praxis: +- Ein hoher Wert blendet Bonusmaterial und Trailer aus. +- Ein zu hoher Wert kann aber auch kürzere Haupttitel oder Episoden verdrängen. + +### TMDb Runtime-Abzug für Playlistfilter (%) +Standard: `0` + +Ripster vergleicht bei problematischen Blu-rays die Disc-Playlists mit der Laufzeit aus TMDb. Dieser Wert wird prozentual von der TMDb-Laufzeit abgezogen und bildet damit eine lockerere Untergrenze für akzeptable Playlist-Kandidaten. Zusätzlich bleibt immer eine Mindesttoleranz von zwei Minuten nach unten erhalten. + +Greift in: +- Playlistflow vor der Review +- Kandidatenauswahl bei Hauptfilm-Playlists + +Praxis: +- Beispiel: Steht ein Film in TMDb mit 120 Minuten und du trägst `5` ein, arbeitet Ripster für die Kandidatensuche mit rund 114 Minuten als Untergrenze, solange die feste Zweiminuten-Toleranz nicht ohnehin höher wäre. +- Das hilft bei Discs, deren korrekte Hauptfassung etwas kürzer gemeldet wird als in TMDb. + +### HandBrake Kommando +Standard: `HandBrakeCLI` + +Hier gibst du den Befehl oder Pfad zu `HandBrakeCLI` an. + +Greift in: +- alle Video-Encodes +- Re-Encode aus RAW +- Converter-Videojobs + +Praxis: +- Bei mehreren HandBrake-Installationen kannst du hier gezielt eine bestimmte Binary verwenden. + +### Encode-Neustart: unvollständige Ausgabe löschen +Standard: `An` + +Wenn du einen Encode aus der Historie neu startest und der vorherige Lauf nicht erfolgreich war, entfernt Ripster den unvollständigen Output vor dem Neustart automatisch. Erfolgreiche Ausgaben bleiben davon unberührt. + +Greift in: +- `Encode neu starten` + +Praxis: +- Aktiviert verhindert diese Option, dass alte Teil-Dateien mit dem neuen Lauf kollidieren. + +### Parallele Jobs +Standard: `1` + +Das ist das allgemeine Startlimit für gleichzeitig laufende Jobs in der Pipeline. Alles darüber wird in die Warteschlange gestellt. + +Greift in: +- Ripper +- Converter +- Audiobooks +- Queue-Pumpe im Hintergrund + +Praxis: +- Ein höherer Wert erhöht den Durchsatz, belastet aber CPU, I/O und ggf. mehrere Laufwerke stärker. + +### Script-Test Timeout (ms) +Standard: `0` + +Dieser Wert gilt nur für den Testlauf von Skripten in `Settings`. `0` bedeutet: kein Timeout. + +Greift in: +- `Scripte`-Tab +- Tests einzelner Skripte oder Kettenbausteine + +Praxis: +- Setze hier einen festen Wert, wenn du hängende Testskripte automatisch abbrechen willst. + +### Max. parallele Audio CD Jobs +Standard: `2` + +Diese Einstellung begrenzt speziell, wie viele Audio-CD-Jobs gleichzeitig laufen dürfen. Sie wirkt zusätzlich zum allgemeinen Joblimit. + +Greift in: +- Audio-CD-Queue +- Start mehrerer CDs hintereinander + +Praxis: +- So kannst du mehrere CDs parallel zulassen, ohne den Videobereich freizugeben. + +### Max. Encodes gesamt (medienunabhängig) +Standard: `3` + +Das ist der harte Deckel für alle gleichzeitig laufenden Encodes zusammen, unabhängig davon, ob sie von Film, Serie, Converter, CD oder Audiobook stammen. + +Greift in: +- alle Encode-Starts +- Gesamtlast der Maschine + +Praxis: +- Diese Grenze sticht die Einzellimits aus, wenn zu viele Medienarten gleichzeitig starten wollen. + +### Audio CDs: Queue-Reihenfolge überspringen +Standard: `Aus` + +Wenn aktiviert, dürfen Audio-CD-Jobs vor normalen Film- oder Videojobs starten, auch wenn diese früher in der Queue stehen. Die Parallelitäts- und Gesamtlimits gelten trotzdem weiter. + +Greift in: +- Reihenfolge der Queue +- Audio-CD-Durchsatz in gemischten Warteschlangen + +Praxis: +- Sinnvoll, wenn CDs schnell abgearbeitet werden sollen und nicht hinter langen Videoencodes hängen bleiben sollen. + +### cdparanoia Kommando +Standard: `cdparanoia` + +Hier gibst du den Befehl oder Pfad zu `cdparanoia` an. + +Greift in: +- Audio-CD-Rip + +Praxis: +- Wichtig, wenn `cdparanoia` nicht im Standardpfad des Systems liegt. + +### FFmpeg Kommando +Standard: `ffmpeg` + +Hier gibst du den Befehl oder Pfad zu `ffmpeg` an. + +Greift in: +- Audiobook-Encodes +- Audio-Nachbearbeitung + +Praxis: +- Ohne korrektes `ffmpeg` schlagen Audiobook-Ausgaben fehl. + +### FFprobe Kommando +Standard: `ffprobe` + +Hier gibst du den Befehl oder Pfad zu `ffprobe` an. + +Greift in: +- Analyse von Audiobooks +- Kapitel- und Metadatenaufbau + +Praxis: +- Ohne `ffprobe` kann Ripster Kapitel und Dateidetails nicht zuverlässig auslesen. + +### Mediainfo Extra Args (Blu-ray) +Standard: `leer` + +Diese zusätzlichen Argumente hängt Ripster bei Blu-ray-Mediainfo-Aufrufen an den Befehl an. + +Greift in: +- Mediainfo-Prüfung für Blu-ray +- Review-Aufbau aus bestehenden Dateien + +Praxis: +- Nur für gezielte Spezialfälle anpassen, wenn du das CLI-Verhalten bewusst überschreiben willst. + +### MakeMKV Rip Modus (Blu-ray) +Standard: `backup` + +Dieses normalerweise ausgeblendete Systemfeld bestimmt, ob Blu-rays als vollständige Disc-Struktur oder direkt als MKV gerippt werden. + +Greift in: +- technische RAW-Erzeugung bei Blu-ray + +Praxis: +- Für normale Nutzung bleibt dieser Wert unverändert. + +### MakeMKV Analyze Extra Args (Blu-ray) +Standard: `leer` + +Diese zusätzlichen Argumente werden an den Blu-ray-Analyseaufruf von MakeMKV angehängt. + +Greift in: +- Disc-Analyse +- Titel- und Playlist-Erkennung + +Praxis: +- Beachte, dass eine selbst gesetzte Mindestlänge in diesen Args die allgemeine Einstellung zur minimalen Titellänge übersteuert. + +### MakeMKV Rip Extra Args (Blu-ray) +Standard: `leer` + +Diese zusätzlichen Argumente werden an den eigentlichen Blu-ray-Rip angehängt. + +Greift in: +- RAW-Erzeugung bei Blu-ray + +Praxis: +- Nur anpassen, wenn du das MakeMKV-Verhalten sehr gezielt erweitern oder überschreiben willst. + +### HandBrake Preset (Blu-ray) +Standard: `H.264 MKV 1080p30` + +Dieses Feld setzt den technischen HandBrake-Standard für Blu-ray-Jobs, sofern im konkreten Job nichts anderes gewählt wird. + +Greift in: +- Review-Vorgaben +- Encode-Start bei Blu-ray + +Praxis: +- Das Preset ist deine Grundlinie; im Review oder über User-Presets kann später bewusst davon abgewichen werden. + +### HandBrake Extra Args (Blu-ray) +Standard: sprach- und codecbezogene Standardargumente + +Hier definierst du zusätzliche HandBrake-CLI-Argumente für Blu-ray-Jobs. Sie steuern zum Beispiel Audio-Sprachauswahl, Untertitelvorgaben, Encoder-Profil und Qualitätsparameter. + +Greift in: +- finalen HandBrake-Aufruf bei Blu-ray +- Vorauswahl von Audio und Untertiteln + +Praxis: +- Diese Einstellung ist sehr mächtig: Ein expliziter Audio- oder Untertitel-Selektor hier kann die separaten Review-Sprachfelder faktisch überstimmen. + +### Review Audio-Sprachen (Blu-ray Film) +Standard: `leer` + +Hier definierst du, welche Audiosprachen in der Review eines Blu-ray-Films automatisch vorausgewählt werden sollen. Ripster normalisiert übliche Schreibweisen wie `de`, `deu`, `en` oder `eng`. + +Greift in: +- `Bereit zum Encodieren` bei Blu-ray-Filmen + +Praxis: +- Beispiel: `de, en`. +- Bleibt das Feld leer, entscheidet Ripster stärker aus Preset und vorhandenen Tracks heraus. + +### Review UT-Sprachen (Blu-ray Film) +Standard: `leer` + +Hier definierst du die Untertitelsprachen, die in der Review eines Blu-ray-Films vorselektiert werden. + +Greift in: +- Untertitelvorauswahl im Film-Review + +Praxis: +- Gut für feste Standards wie nur Deutsch und Englisch. + +### Review Audio-Sprachen (Blu-ray Serie) +Standard: `leer` + +Dieses Feld funktioniert wie das Film-Pendant, greift aber nur bei Blu-ray-Serien. + +Greift in: +- Audio-Vorauswahl im Serien-Review + +Praxis: +- Praktisch, wenn du für Serien andere Sprachregeln als für Filme nutzt. + +### Review UT-Sprachen (Blu-ray Serie) +Standard: `leer` + +Dieses Feld funktioniert wie das Film-Pendant, greift aber nur bei Blu-ray-Serien. + +Greift in: +- Untertitel-Vorauswahl im Serien-Review + +Praxis: +- So lassen sich Serien-Defaults getrennt von Film-Defaults pflegen. + +### Ausgabeformat (Blu-ray) +Standard: `mkv` + +Hier legst du die Dateiendung der finalen Blu-ray-Ausgabe fest. + +Greift in: +- finalen Dateinamen +- Containerformat der Ausgabe + +Praxis: +- Wähle das Format, das zu deinem Player- oder Archiv-Setup passt. + +### Mediainfo Extra Args (DVD) +Standard: `leer` + +Diese zusätzlichen Argumente hängen an den Mediainfo-Aufrufen für DVD-Jobs. + +Greift in: +- Mediainfo-Prüfung für DVD + +Praxis: +- Nur für gezielte technische Sonderfälle anpassen. + +### MakeMKV Rip Modus (DVD) +Standard: `mkv` + +Dieses normalerweise ausgeblendete Systemfeld legt fest, ob DVDs direkt als MKV oder als Disc-Struktur gerippt werden. + +Greift in: +- technische RAW-Erzeugung bei DVD + +Praxis: +- Im Normalfall unverändert lassen. + +### MakeMKV Analyze Extra Args (DVD) +Standard: `leer` + +Diese zusätzlichen Argumente werden an den DVD-Analyseaufruf von MakeMKV angehängt. + +Greift in: +- DVD-Titelerkennung +- spätere Review-Vorbereitung + +Praxis: +- Wie bei Blu-ray gilt: eigene Mindestlängen-Args können die allgemeine Mindestlänge übersteuern. + +### MakeMKV Rip Extra Args (DVD) +Standard: `leer` + +Diese zusätzlichen Argumente werden beim eigentlichen DVD-Rip an MakeMKV angehängt. + +Greift in: +- RAW-Erzeugung bei DVD + +Praxis: +- Nur bewusst ändern, wenn du das CLI-Verhalten genau kennst. + +### HandBrake Preset (DVD) +Standard: `H.264 MKV 480p30` + +Dieses Feld setzt den technischen HandBrake-Standard für DVD-Jobs. + +Greift in: +- Review-Vorgaben +- Encode-Start bei DVD + +Praxis: +- Eine gute Basis für DVD kann sich deutlich von Blu-ray unterscheiden, deshalb gibt es ein eigenes Feld. + +### HandBrake Extra Args (DVD) +Standard: sprach- und codecbezogene Standardargumente + +Hier definierst du die zusätzlichen HandBrake-CLI-Argumente für DVD-Jobs. + +Greift in: +- finalen HandBrake-Aufruf bei DVD +- Audio- und Untertitelvorauswahl + +Praxis: +- Wie bei Blu-ray können explizite Selektionsargumente in diesen Args separate Review-Sprachfelder aushebeln. + +### Review Audio-Sprachen (DVD Film) +Standard: `leer` + +Definiert die Audio-Vorauswahl für DVD-Filme in der Review. + +Greift in: +- Film-Review bei DVD + +Praxis: +- Beispiel: `de, en`. + +### Review UT-Sprachen (DVD Film) +Standard: `leer` + +Definiert die Untertitel-Vorauswahl für DVD-Filme in der Review. + +Greift in: +- Untertitel-Review bei DVD-Filmen + +Praxis: +- Gut für feste Disc-Standards in deiner Sammlung. + +### Review Audio-Sprachen (DVD Serie) +Standard: `leer` + +Definiert die Audio-Vorauswahl für DVD-Serien in der Review. + +Greift in: +- Serien-Review bei DVD + +Praxis: +- Trenne Serien-Defaults bewusst von Film-Defaults, wenn nötig. + +### Review UT-Sprachen (DVD Serie) +Standard: `leer` + +Definiert die Untertitel-Vorauswahl für DVD-Serien in der Review. + +Greift in: +- Untertitel-Review bei DVD-Serien + +Praxis: +- Besonders nützlich bei Serien mit vielen redundanten UT-Spuren. + +### Ausgabeformat (DVD) +Standard: `mkv` + +Hier legst du die Dateiendung der finalen DVD-Ausgabe fest. + +Greift in: +- finalen Dateinamen +- Containerformat der DVD-Ausgabe + +Praxis: +- Dieses Feld ist vom Blu-ray-Format getrennt, damit beide Profile unabhängig voneinander arbeiten können. + +### mkvmerge Kommando +Standard: `mkvmerge` + +Hier gibst du den Befehl oder Pfad zu `mkvmerge` an. + +Greift in: +- Multipart-Film-Zusammenführungen + +Praxis: +- Relevant, wenn du mehrteilige Filme oder Disc-Splits später in eine zusammenhängende Ausgabe überführen willst. + +## Ausgeblendete Felder + +Einige technische Systemfelder sind im Schema vorhanden, werden aber im normalen Formular nicht aktiv angeboten oder nur intern benutzt. In der Doku sind sie oben trotzdem erklärt, damit auch Altdaten, API-Fälle und Spezialsetups nachvollziehbar bleiben. diff --git a/docs/getting-started/configuration.md b/docs/getting-started/configuration.md index 20be8cf..41022d4 100644 --- a/docs/getting-started/configuration.md +++ b/docs/getting-started/configuration.md @@ -30,13 +30,13 @@ Danach speichern. Wichtig für den Alltag: -- Film-Workflows nutzen `raw_dir_*`, `movie_dir_*` und `output_template_*` -- Serien-Workflows nutzen zusätzlich `raw_dir_*_series`, `series_dir_*` und die Episode-/Multi-Episode-Templates -- Audiobooks nutzen `raw_dir_audiobook`, `movie_dir_audiobook`, `audiobook_raw_template`, `output_template_audiobook`, `output_chapter_template_audiobook` -- Converter nutzt `converter_raw_dir`, `converter_movie_dir`, `converter_audio_dir` und die beiden Converter-Templates -- Downloads nutzen `download_dir` +- Film-Workflows nutzen die RAW- und Film-Ausgabeordner sowie die Film-Output-Templates +- Serien-Workflows nutzen zusätzlich die Serien-RAW-Ordner, die Serien-Zielordner und die Episode-/Multi-Episode-Templates +- Audiobooks nutzen `Audiobook RAW-Ordner`, `Audiobook Output-Ordner`, `Audiobook RAW Template`, `Output Template (Audiobook)` und `Kapitel Template (Audiobook)` +- Converter nutzt `Converter Raw-Ordner`, `Converter Ausgabe (Video)`, `Converter Ausgabe (Audio)` sowie `Output-Template (Video)` und `Output-Template (Audio)` +- Downloads nutzen `Download ZIP-Ordner` -Wenn du auf NAS, USB oder andere Benutzer/Gruppen schreiben willst, prüfe auch die jeweiligen `*_owner`-Felder. +Wenn du auf NAS, USB oder mit anderen Benutzern/Gruppen schreiben willst, prüfe auch die jeweils zugehörigen `Eigentümer ...`-Felder. ### 3. Laufwerk und automatische Erkennung prüfen diff --git a/docs/getting-started/quickstart.md b/docs/getting-started/quickstart.md index 8aad634..4642590 100644 --- a/docs/getting-started/quickstart.md +++ b/docs/getting-started/quickstart.md @@ -138,9 +138,9 @@ Kontrollpunkte: Relevante Settings: -- `output_template_*` -- `series_dir_*` und Serien-Templates -- `generate_nfo_after_encode` +- Film-Output-Templates oder Serien-Templates +- `Serien-Ordner (Blu-ray)` und `Serien-Ordner (DVD)` plus die Episode-/Multi-Episode-Templates +- `NFO nach Encode erzeugen` ## 8. Typische Folgeaktionen diff --git a/docs/gui/audiobooks.md b/docs/gui/audiobooks.md index e4e0c57..db1fa89 100644 --- a/docs/gui/audiobooks.md +++ b/docs/gui/audiobooks.md @@ -73,23 +73,23 @@ Wichtig: ## Relevante Settings -- `raw_dir_audiobook` -- `movie_dir_audiobook` -- `raw_dir_audiobook_owner` -- `movie_dir_audiobook_owner` -- `audiobook_raw_template` -- `output_template_audiobook` -- `output_chapter_template_audiobook` -- `ffprobe_command` -- `ffmpeg_command` +- `Audiobook RAW-Ordner` +- `Audiobook Output-Ordner` +- `Eigentümer Audiobook RAW-Ordner` +- `Eigentümer Audiobook Output-Ordner` +- `Audiobook RAW Template` +- `Output Template (Audiobook)` +- `Kapitel Template (Audiobook)` +- `FFprobe Kommando` +- `FFmpeg Kommando` ### So wirken die Settings im Alltag -- `audiobook_raw_template` bestimmt den Namen des AAX-RAW-Ordners -- `output_template_audiobook` bestimmt die Einzeldatei für `m4b` -- `output_chapter_template_audiobook` bestimmt Zielstruktur und Dateinamen für `mp3`/`flac` -- `ffprobe_command` liest Kapitel und Metadaten -- `ffmpeg_command` erzeugt die finalen Dateien +- `Audiobook RAW Template` bestimmt den Namen des AAX-RAW-Ordners +- `Output Template (Audiobook)` bestimmt die Einzeldatei für `m4b` +- `Kapitel Template (Audiobook)` bestimmt Zielstruktur und Dateinamen für `mp3`/`flac` +- `FFprobe Kommando` liest Kapitel und Metadaten +- `FFmpeg Kommando` erzeugt die finalen Dateien ## Queue und Laufzeit diff --git a/docs/gui/converter.md b/docs/gui/converter.md index 080da58..61fc125 100644 --- a/docs/gui/converter.md +++ b/docs/gui/converter.md @@ -4,7 +4,7 @@ Die Seite `Converter` verarbeitet vorhandene Dateien ohne Laufwerks-Rip. Sie ist ## Betriebsmodell -Der Converter arbeitet auf dem Eingangspfad `converter_raw_dir`. +Der Converter arbeitet auf dem in `Settings` festgelegten `Converter Raw-Ordner`. Dort landen: @@ -20,7 +20,7 @@ Wichtig: ## Datei-Explorer -Der Explorer zeigt den kompletten Baum unter `converter_raw_dir`. +Der Explorer zeigt den kompletten Baum unter `Converter Raw-Ordner`. Aktionen: @@ -82,24 +82,24 @@ Spezifika: ### Video / ISO -- Zielordner: `converter_movie_dir` +- Zielordner: `Converter Ausgabe (Video)` - Dateiname: `Output-Template (Video)` - Endung: aus dem gewählten Ausgabeformat ### Audio -- Zielordner: `converter_audio_dir` +- Zielordner: `Converter Ausgabe (Audio)` - Dateiname/Ordner: `Output-Template (Audio)` - bei Shared- oder Folder-Jobs entsteht eine Ordnerstruktur mit mehreren Track-Dateien Relevante Settings: -- `converter_movie_dir` -- `converter_audio_dir` -- `converter_output_template_video` -- `converter_output_template_audio` -- `converter_movie_dir_owner` -- `converter_audio_dir_owner` +- `Converter Ausgabe (Video)` +- `Converter Ausgabe (Audio)` +- `Output-Template (Video)` +- `Output-Template (Audio)` +- `Eigentümer Converter Video Output-Ordner` +- `Eigentümer Converter Audio Output-Ordner` ## Queue und Start diff --git a/docs/gui/history.md b/docs/gui/history.md index 41c43bb..324a0c4 100644 --- a/docs/gui/history.md +++ b/docs/gui/history.md @@ -45,8 +45,8 @@ Bei Seriencontainern und Multipart-Jobs wird container- und child-orientiert dar Relevante Settings: -- `handbrake_restart_delete_incomplete_output` -- `generate_nfo_after_encode` +- `Encode-Neustart: unvollständige Ausgabe löschen` +- `NFO nach Encode erzeugen` ## Löschaktionen und Vorschau diff --git a/docs/gui/settings.md b/docs/gui/settings.md index 6a38d3a..80504b8 100644 --- a/docs/gui/settings.md +++ b/docs/gui/settings.md @@ -161,10 +161,10 @@ Die Pfad-Kategorie hat eine eigene Darstellung: ### Spezial-Editoren -- `drive_devices`: Editor für mehrere Laufwerke mit Pfad und MakeMKV-Index -- `external_storage_paths`: Liste aus Anzeigename und Pfad für die Speicheranzeige -- `converter_scan_extensions`: Auswahl der erlaubten Upload-/Scan-Endungen -- `makemkv_registration_key`: inkl. Betakey-Hinweis und Übernahme-Button +- `Explizite Laufwerke`: Editor für mehrere Laufwerke mit Pfad und MakeMKV-Index +- `Externe Speicher`: Liste aus Anzeigename und Pfad für die Speicheranzeige +- `Erlaubte Datei-Endungen`: Auswahl der erlaubten Upload-/Scan-Endungen +- `MakeMKV Key`: inkl. Betakey-Hinweis und Übernahme-Button ### Wichtig für Reviews und Workflows @@ -175,6 +175,8 @@ Die Seite `Settings` bestimmt direkt, was Nutzer später im Workflow sehen: - automatisch vorgeschlagene Presets hängen an den Standard-Zuordnungen unter `Encode-Presets` - Queue-Verhalten im `Ripper` hängt an den drei Parallelitätsfeldern plus `Audio CDs: Queue-Reihenfolge überspringen` +Für die detaillierte Feld-für-Feld-Erklärung jeder einzelnen Einstellung nutze die Seite [Einstellungsreferenz](../configuration/settings-reference.md). Dort ist jedes sichtbare Feld aus der GUI mit Wirkung, Workflow-Bezug und typischem Einsatz beschrieben. + ## Tab `Scripte` Funktionen: diff --git a/docs/workflows/index.md b/docs/workflows/index.md index 6597f65..aa6babf 100644 --- a/docs/workflows/index.md +++ b/docs/workflows/index.md @@ -80,8 +80,8 @@ Wenn bereits ein passendes RAW gefunden wird: Relevante Settings: -- `raw_dir_bluray`, `raw_dir_dvd` -- `raw_dir_bluray_owner`, `raw_dir_dvd_owner` +- `Raw Ausgabeordner (Blu-ray)` und `Raw Ausgabeordner (DVD)` +- `Eigentümer Raw-Ordner (Blu-ray)` und `Eigentümer Raw-Ordner (DVD)` ### 4. Playlist- oder Titelauswahl @@ -127,8 +127,8 @@ Relevante Settings: Finale Ausgabe: -- Zielordner: `movie_dir_bluray` oder `movie_dir_dvd` -- Dateiname und Ordner: `output_template_bluray` oder `output_template_dvd` +- Zielordner: `Film Ausgabeordner (Blu-ray)` oder `Film Ausgabeordner (DVD)` +- Dateiname und Ordner: `Output Template (Blu-ray)` oder `Output Template (DVD)` Optional: @@ -136,10 +136,10 @@ Optional: Relevante Settings: -- `movie_dir_bluray`, `movie_dir_dvd` -- `movie_dir_bluray_owner`, `movie_dir_dvd_owner` -- `output_template_bluray`, `output_template_dvd` -- `generate_nfo_after_encode` +- `Film Ausgabeordner (Blu-ray)` und `Film Ausgabeordner (DVD)` +- `Eigentümer Film-Ordner (Blu-ray)` und `Eigentümer Film-Ordner (DVD)` +- `Output Template (Blu-ray)` und `Output Template (DVD)` +- `NFO nach Encode erzeugen` ## Workflow B: Serie von Disc (Blu-ray / DVD) @@ -159,12 +159,12 @@ Wirkung: Für Serien bevorzugt Ripster eigene Serien-RAW-Verzeichnisse: -- `raw_dir_bluray_series` -- `raw_dir_dvd_series` +- `RAW-Ordner (Blu-ray Serie)` +- `RAW-Ordner (DVD Serie)` Falls leer: -- Fallback auf `raw_dir_bluray` bzw. `raw_dir_dvd` +- Fallback auf `Raw Ausgabeordner (Blu-ray)` bzw. `Raw Ausgabeordner (DVD)` ### 3. Episodenprüfung und Multi-Episode-Fälle @@ -177,12 +177,12 @@ Ausgabevarianten: Relevante Settings: -- `output_template_bluray_series_episode` -- `output_template_bluray_series_multi_episode` -- `output_template_dvd_series_episode` -- `output_template_dvd_series_multi_episode` -- `series_dir_bluray` -- `series_dir_dvd` +- `Output Template (Blu-ray Serie, Episode)` +- `Output Template (Blu-ray Serie, Multi-Episode)` +- `Output Template (DVD Serie, Episode)` +- `Output Template (DVD Serie, Multi-Episode)` +- `Serien-Ordner (Blu-ray)` +- `Serien-Ordner (DVD)` ### 4. Playlistflow auch bei Serien @@ -244,12 +244,12 @@ Die CD läuft anschließend als Track-für-Track-Flow: Relevante Settings: -- `raw_dir_cd` -- `movie_dir_cd` -- `raw_dir_cd_owner` -- `movie_dir_cd_owner` -- `cd_output_template` -- `cdparanoia_command` +- `CD RAW-Ordner` +- `CD Output-Ordner` +- `Eigentümer CD RAW-Ordner` +- `Eigentümer CD Output-Ordner` +- `CD Output Template` +- `cdparanoia Kommando` - `Max. parallele Audio CD Jobs` - `Audio CDs: Queue-Reihenfolge überspringen` @@ -260,7 +260,7 @@ Relevante Settings: Dateien gelangen in den Converter über: - Upload -- bestehende Ordner im `converter_raw_dir` +- bestehende Ordner im `Converter Raw-Ordner` - manuelle Dateiverwaltung im Explorer ### 2. Jobs aus Auswahl erzeugen @@ -277,14 +277,14 @@ Je nach Medium: Relevante Settings: -- `converter_scan_extensions` -- `converter_polling_enabled` -- `converter_polling_interval` -- `converter_raw_dir` -- `converter_movie_dir` -- `converter_audio_dir` -- `converter_output_template_video` -- `converter_output_template_audio` +- `Erlaubte Datei-Endungen` +- `Auto-Scan (Polling)` +- `Polling-Intervall (Sekunden)` +- `Converter Raw-Ordner` +- `Converter Ausgabe (Video)` +- `Converter Ausgabe (Audio)` +- `Output-Template (Video)` +- `Output-Template (Audio)` - globale Queue-Limits ## Workflow F: Audiobooks @@ -311,13 +311,13 @@ Vor dem Start anpassbar: Relevante Settings: -- `raw_dir_audiobook` -- `movie_dir_audiobook` -- `audiobook_raw_template` -- `output_template_audiobook` -- `output_chapter_template_audiobook` -- `ffprobe_command` -- `ffmpeg_command` +- `Audiobook RAW-Ordner` +- `Audiobook Output-Ordner` +- `Audiobook RAW Template` +- `Output Template (Audiobook)` +- `Kapitel Template (Audiobook)` +- `FFprobe Kommando` +- `FFmpeg Kommando` - globale Queue-Limits ## Workflow G: Nachbearbeitung in der Historie @@ -334,7 +334,7 @@ Typische Folgeaktionen: Besonders wichtig: - `Encode neu starten` verwendet den letzten bestätigten Plan -- `handbrake_restart_delete_incomplete_output` entscheidet, ob unvollständige Ausgaben vorher gelöscht werden +- `Encode-Neustart: unvollständige Ausgabe löschen` entscheidet, ob unvollständige Ausgaben vorher gelöscht werden ## Workflow H: Downloads und Recovery @@ -349,8 +349,8 @@ erstellt werden. Relevante Settings: -- `download_dir` -- `download_dir_owner` +- `Download ZIP-Ordner` +- `Eigentümer Download ZIP-Ordner` ### Database (Expert) diff --git a/site/configuration/settings-reference/index.html b/site/configuration/settings-reference/index.html index d1efeb9..3e8fc07 100644 --- a/site/configuration/settings-reference/index.html +++ b/site/configuration/settings-reference/index.html @@ -1 +1 @@ - Alle Einstellungen - Ripster
Zum Inhalt

Einstellungsreferenz

Diese Seite beschreibt jede aktuelle Einstellung aus der Settings-GUI: was technisch passiert und warum man sie setzt.

Lesehilfe

  • Sichtbarkeit: Standard, Expertenmodus oder Ausgeblendet (nur API/DB).
  • Default: UI-/Schema-Default (sensible Werte werden als leer dargestellt).
  • Was passiert technisch?: direkte Wirkung im Backend/Pipeline-Verhalten.
  • Warum/Wann setzen?: Praxisgrund inkl. typischem Einsatzzweck.

Wie diese Seite zu lesen ist

Wenn du nicht von oben bis unten lesen willst, helfen diese typischen Einstiegsfragen:

  • Disc wird nicht sauber erkannt: zuerst Laufwerk
  • falsche Playlist- oder Titelauswahl: zuerst Tools
  • Ausgabe landet im falschen Ordner: zuerst Pfade
  • zu viele oder zu wenige parallele Jobs: zuerst Tools
  • Converter scannt nicht wie erwartet: zuerst Converter
  • Hardware oder Speicher fehlen im Monitoring: zuerst Monitoring und Pfade

Vollständige Feldliste

Kategorie: Benachrichtigungen

GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen?
Expertenmodus ui_expert_mode boolean false Standard Schaltet erweiterte Einstellungen in der UI ein. Wird sofort einzeln gespeichert und beeinflusst Sichtbarkeit von Feldern/Kategorien. Wenn du selten benoetigte technische Felder sehen willst (z.B. Logging- oder CLI-Details).
PushOver aktiviert pushover_enabled boolean false Standard Master-Schalter für PushOver Versand. Wenn du aktive Laufzeit-Benachrichtigungen auf Mobilgeraete erhalten willst.
PushOver Token pushover_token string leer Standard Application Token für PushOver. Wenn Ripster in deine PushOver-App senden soll (Token aus PushOver-App-Config).
PushOver User pushover_user string leer Standard User-Key für PushOver. Wenn Benachrichtigungen an einen bestimmten PushOver-Account gehen sollen.
PushOver Device (optional) pushover_device string leer Expertenmodus Optionales Ziel-Device in PushOver. Wenn Nachrichten nur auf ein bestimmtes Endgeraet zugestellt werden sollen.
PushOver Titel-Präfix pushover_title_prefix string Ripster Standard Prefix im PushOver Titel. Wenn du Meldungen mehrerer Instanzen sauber unterscheiden willst (z.B. "Ripper-Wohnzimmer").
PushOver Priority pushover_priority number 0 Expertenmodus Priorität -2 bis 2. Wenn Meldungen bewusst leiser (niedrig) oder dringender (hoch) zugestellt werden sollen.
PushOver Timeout (ms) pushover_timeout_ms number 7000 Expertenmodus HTTP Timeout für PushOver Requests. Wenn PushOver bei schlechter Verbindung mehr oder weniger Zeit fuer den Request bekommen soll.
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). Wenn 'Bei manueller Auswahl senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen.
Bei Rip-Start senden pushover_notify_rip_started boolean true Standard Sendet beim Start des MakeMKV-Rips. Wenn 'Bei Rip-Start senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen.
Bei Encode-Start senden pushover_notify_encoding_started boolean true Standard Sendet beim Start von HandBrake. Wenn 'Bei Encode-Start senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen.
Bei Erfolg senden pushover_notify_job_finished boolean true Standard Sendet bei erfolgreich abgeschlossenem Job. Wenn 'Bei Erfolg senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen.
Bei Fehler senden pushover_notify_job_error boolean true Standard Sendet bei Fehlern in der Pipeline. Wenn 'Bei Fehler senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen.
Bei Abbruch senden pushover_notify_job_cancelled boolean true Standard Sendet wenn Job manuell abgebrochen wurde. Wenn 'Bei Abbruch senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen.
Bei Re-Encode Start senden pushover_notify_reencode_started boolean true Standard Sendet beim Start von RAW Re-Encode. Wenn 'Bei Re-Encode Start senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen.
Bei Re-Encode Erfolg senden pushover_notify_reencode_finished boolean true Standard Sendet bei erfolgreichem RAW Re-Encode. Wenn 'Bei Re-Encode Erfolg senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen.

Kategorie: Converter

GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen?
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). Steuert sowohl Upload-Validierung als auch Converter-Scan-Filter. Wenn 'Erlaubte Datei-Endungen' vom Default abweichen soll.
Auto-Scan (Polling) converter_polling_enabled boolean false Standard Converter Raw-Ordner automatisch in regelmäßigen Abständen scannen. Wenn neue Dateien im Converter-Ordner automatisch erscheinen sollen, ohne manuellen Scan.
Polling-Intervall (Sekunden) converter_polling_interval number 300 Standard Intervall für automatischen Scan des Converter-Ordners. Wenn der Auto-Scan schneller (kleiner Wert) oder ressourcenschonender (groesserer Wert) laufen soll.

Kategorie: Laufwerk

GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen?
Laufwerksmodus drive_mode select auto Standard Auto-Discovery oder explizites Device. Wenn du zwischen automatischer Laufwerkserkennung und fixer Device-Liste umschalten willst.
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. Wird als JSON gespeichert und vom Laufwerksdienst fuer explizite Zuordnung genutzt. Wenn auf dem Host mehrere Laufwerke stabil gemappt werden muessen (z.B. /dev/sr0=disc:0, /dev/sr1=disc:1).
Device Pfad drive_device path /dev/sr0 Ausgeblendet (nur API/DB) Nur für expliziten Modus, z.B. /dev/sr0. Wenn 'Device Pfad' vom Default abweichen soll.
MakeMKV Source Index makemkv_source_index number 0 Ausgeblendet (nur API/DB) Disc Index im Auto-Modus. Wenn 'MakeMKV Source Index' fuer Performance, Last oder Genauigkeit feinjustiert werden soll.
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. Wenn Discs nur manuell statt automatisch erkannt werden sollen.
Polling Intervall (ms) disc_poll_interval_ms number 4000 Expertenmodus Intervall für Disk-Erkennung. Wenn die Erkennung schneller reagieren oder weniger oft pollen soll.
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). Wenn ein Laufwerk nach erfolgreichem Rip direkt freigegeben/ausgeworfen werden soll.

Kategorie: Logging

GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen?
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. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. Wenn Terminal-Logs bei Betrieb unter Service/SSH ein- oder ausgeschaltet werden sollen.
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. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. Wenn HTTP-Request-Logs im Terminal fuer API-Debugging gebraucht werden.
DEBUG im Terminal server_console_log_debug_enabled boolean true Expertenmodus Steuert DEBUG-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unverändert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. Wenn detailreiche DEBUG-Logs im Terminal benoetigt werden (Fehlersuche).
INFO im Terminal server_console_log_info_enabled boolean true Expertenmodus Steuert INFO-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unverändert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. Wenn normale INFO-Laufzeitmeldungen im Terminal sichtbar sein sollen.
WARN im Terminal server_console_log_warn_enabled boolean true Expertenmodus Steuert WARN-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unverändert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. Wenn Warnungen im Terminal hervorgehoben bleiben sollen.
ERROR im Terminal server_console_log_error_enabled boolean true Expertenmodus Steuert ERROR-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unverändert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. Wenn Fehler zwingend im Terminal sichtbar sein sollen.

Kategorie: Metadaten

GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen?
TMDb Read Access Token tmdb_api_read_access_token string leer Standard Read Access Token für Serien-Metadaten über TheMovieDB (TMDb). Wird von TMDb-Service und Serienzuordnung in Analyse/Metadaten-Dialog genutzt. Wenn TMDb-Metadaten (Suche/Zuordnung/Serienepisoden) verlässlich funktionieren sollen.
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. Wird von TMDb-Service und Serienzuordnung in Analyse/Metadaten-Dialog genutzt. Wenn bevorzugt deutsche, englische oder andere lokalisierte Metadaten genutzt werden sollen.
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. Wird von TMDb-Service und Serienzuordnung in Analyse/Metadaten-Dialog genutzt. Wenn bei fehlender Primärsprache automatisch andere Sprachversionen ausprobiert werden sollen.
Coverart-Nachladen aktiv coverart_recovery_enabled boolean true Standard Wenn aktiv, werden fehlende Coverarts automatisch in Intervallen geprüft und nachgeladen. Aenderung aktualisiert den Coverart-Recovery-Scheduler. Wenn fehlende Cover später automatisch nachgezogen werden sollen.
Coverart-Prüfintervall (Stunden) coverart_recovery_interval_hours number 6 Standard Intervall für automatische Prüfung fehlender Coverarts in Stunden. Aenderung aktualisiert den Coverart-Recovery-Scheduler. Wenn der Nachlade-Job haeufiger oder seltener laufen soll.
NFO nach Encode erzeugen generate_nfo_after_encode boolean false Standard Erstellt nach erfolgreichem Encode automatisch eine .nfo-Datei neben der Ausgabedatei. Wird nach erfolgreichem Encode in der Historie/Pipeline ausgewertet. Wenn neben der Ausgabedatei automatisch eine .nfo fuer Media-Center erzeugt werden soll.

Kategorie: Monitoring

GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen?
Hardware Monitoring aktiviert hardware_monitoring_enabled boolean true Standard Master-Schalter: aktiviert/deaktiviert das komplette Hardware-Monitoring (Polling + Berechnung + WebSocket-Updates). Aenderung triggert Re-Konfiguration des Hardware-Monitoring-Dienstes. Wenn CPU/RAM/GPU/Speicher live sichtbar sein sollen.
Hardware Monitoring Intervall (ms) hardware_monitoring_interval_ms number 5000 Expertenmodus Polling-Intervall für CPU/RAM/GPU/Storage-Metriken. Aenderung triggert Re-Konfiguration des Hardware-Monitoring-Dienstes. Wenn Monitoring häufiger aktualisiert oder Last reduziert werden soll.

Kategorie: Pfade

GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen?
Raw Ausgabeordner (Blu-ray) raw_dir_bluray path leer Standard Optionaler RAW-Zielpfad nur für Blu-ray. Leer = Fallback auf "Raw Ausgabeordner". Wenn 'Raw Ausgabeordner (Blu-ray)' vom Default abweichen soll.
Raw Ausgabeordner (DVD) raw_dir_dvd path leer Standard Optionaler RAW-Zielpfad nur für DVD. Leer = Fallback auf "Raw Ausgabeordner". Wenn 'Raw Ausgabeordner (DVD)' vom Default abweichen soll.
CD RAW-Ordner raw_dir_cd path leer Standard Basisordner für rohe CD-WAV-Dateien (cdparanoia-Output). Leer = Standardpfad (data/output/cd). Wenn 'CD RAW-Ordner' vom Default abweichen soll.
Audiobook RAW-Ordner raw_dir_audiobook path leer Standard Basisordner für hochgeladene AAX-Dateien. Leer = Standardpfad (data/output/audiobook-raw). Wenn 'Audiobook RAW-Ordner' vom Default abweichen soll.
Serien-Ordner (Blu-ray) series_dir_bluray path leer Standard Zielordner für Blu-ray-Serienfolgen. Leer = Standardpfad (data/output/series). Wenn 'Serien-Ordner (Blu-ray)' vom Default abweichen soll.
Film Ausgabeordner (Blu-ray) movie_dir_bluray path leer Standard Optionaler Encode-Zielpfad nur für Blu-ray. Leer = Fallback auf "Film Ausgabeordner". Wenn 'Film Ausgabeordner (Blu-ray)' vom Default abweichen soll.
Film Ausgabeordner (DVD) movie_dir_dvd path leer Standard Optionaler Encode-Zielpfad nur für DVD. Leer = Fallback auf "Film Ausgabeordner". Wenn 'Film Ausgabeordner (DVD)' vom Default abweichen soll.
Serien-Ordner (DVD) series_dir_dvd path leer Standard Zielordner für DVD-Serienfolgen. Leer = Standardpfad (data/output/series). Wenn 'Serien-Ordner (DVD)' vom Default abweichen soll.
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. Wenn 'CD Output-Ordner' vom Default abweichen soll.
Audiobook Output-Ordner movie_dir_audiobook path leer Standard Zielordner für encodierte Audiobook-Dateien. Leer = Standardpfad (data/output/audiobooks). Wenn 'Audiobook Output-Ordner' vom Default abweichen soll.
Download ZIP-Ordner download_dir path leer Standard Zielordner für vorbereitete ZIP-Downloads. Leer = Standardpfad (data/downloads). Leere Werte nutzen automatisch den Installations-Defaultpfad. Wenn RAW/Output/Download auf andere Datentraeger verschoben werden sollen (z.B. grosse HDD/NAS).
Externe Speicher external_storage_paths path [] Standard Wird links unter "Freie Speicher" angezeigt. Wenn 'Externe Speicher' vom Default abweichen soll.
Log Ordner log_dir path installationsabhaengig Standard Basisordner für Logs. Job-Logs liegen direkt hier, Backend-Logs in /backend. Wird zur Laufzeit angewendet; bei ungueltigem Pfad faellt Ripster auf Fallback-Logpfad zurueck. Wenn Logs auf ein anderes Medium sollen (z.B. persistentes NAS/SSD statt Standardpfad).
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. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren.
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. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren.
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}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren.
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}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren.
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. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren.
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}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren.
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}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren.
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. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren.
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}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren.
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). Leere Werte nutzen automatisch den Installations-Defaultpfad. Wenn RAW/Output/Download auf andere Datentraeger verschoben werden sollen (z.B. grosse HDD/NAS).
Converter Ausgabe (Video) converter_movie_dir path leer Standard Ausgabepfad für konvertierte Video-Dateien. Leer = Standardpfad (data/output/converted-movies). Leere Werte nutzen automatisch den Installations-Defaultpfad. Wenn RAW/Output/Download auf andere Datentraeger verschoben werden sollen (z.B. grosse HDD/NAS).
Converter Ausgabe (Audio) converter_audio_dir path leer Standard Ausgabepfad für konvertierte Audio-Dateien. Leer = Standardpfad (data/output/converted-audio). Leere Werte nutzen automatisch den Installations-Defaultpfad. Wenn RAW/Output/Download auf andere Datentraeger verschoben werden sollen (z.B. grosse HDD/NAS).
Output-Template (Video) converter_output_template_video string {title} Standard Dateiname-Template für konvertierte Video-Dateien (ohne Endung). Platzhalter: {title}, {year}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren.
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}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren.
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). Wenn 'RAW-Ordner (Blu-ray Serie)' vom Default abweichen soll.
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). Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
RAW-Ordner (DVD Serie) raw_dir_dvd_series path leer Standard RAW-Zielpfad für DVD-Serien. Leer = gleicher Pfad wie RAW-Ordner (DVD). Wenn 'RAW-Ordner (DVD Serie)' vom Default abweichen soll.
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). Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Greift bei ZIP-Ordner, Archivdatei und Metadatei. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media.
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. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren.

Kategorie: Tools

GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen?
MakeMKV Kommando makemkv_command string makemkvcon Expertenmodus Pfad oder Befehl für makemkvcon. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad).
MakeMKV Key makemkv_registration_key string leer Standard Optionaler Registrierungsschlüssel. Wird beim Speichern nach ~/.MakeMKV/settings.conf synchronisiert. Darunter kann der aktuelle Betakey per API übernommen werden. Wenn MakeMKV-Features ohne Trial-Limit genutzt werden sollen (inkl. Betakey-Usecase).
Mediainfo Kommando mediainfo_command string mediainfo Expertenmodus Pfad oder Befehl für mediainfo. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad).
Minimale Titellänge (Minuten) makemkv_min_length_minutes number 60 Standard Filtert kurze Titel beim Rip. Wenn kurze Bonus-/Trailer-Titel automatisch ausgefiltert werden sollen.
TMDb Runtime-Abzug für Playlistfilter (%) playlist_tmdb_runtime_subtract_percent number 0 Standard Zieht optional einen Prozentsatz von der TMDb-Laufzeit ab, damit Ripster bei problematischen Blu-rays leicht kürzere Hauptfassungen trotzdem als Playlist-Kandidaten zulässt. Eine Mindesttoleranz von 2 Minuten nach unten bleibt erhalten. Wenn die Playlist-Analyse bei einzelnen Discs zu streng ist und der Hauptfilm knapp unter der TMDb-Laufzeit liegt. Beispiel: TMDb sagt 120 Minuten, die Disc liefert 116 bis 118 Minuten, aber die Fassung ist trotzdem korrekt.
HandBrake Kommando handbrake_command string HandBrakeCLI Expertenmodus Pfad oder Befehl für HandBrakeCLI. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad).
Encode-Neustart: unvollständige Ausgabe löschen handbrake_restart_delete_incomplete_output boolean true Standard Wenn aktiv, wird bei "Encode neu starten" der bisherige (nicht erfolgreiche) Output vor Start entfernt. Wenn bei Encode-Neustart alte, unvollstaendige Dateien sicher entfernt werden sollen.
Parallele Jobs pipeline_max_parallel_jobs number 1 Standard Maximale Anzahl parallel laufender Jobs. Weitere Starts landen in der Queue. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. Wenn Durchsatz und CPU-Last fuer Videojobs ausbalanciert werden sollen.
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. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. Wenn mehrere Audio-CD-Jobs parallel erlaubt/begrenzt werden sollen.
Script-Test Timeout (ms) script_test_timeout_ms number 0 Expertenmodus Timeout fuer Script-Tests in den Settings. 0 = kein Timeout. Wird beim Testlauf von Scripts in Settings angewendet. Wenn Script-Tests bei Haengern automatisch abgebrochen werden sollen.
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. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. Wenn ein harter Deckel fuer alle Encodes zusammen gelten soll.
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. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. Wenn Audio-CD-Jobs nicht hinter langen Video-Warteschlangen blockieren sollen.
cdparanoia Kommando cdparanoia_command string cdparanoia Expertenmodus Pfad oder Befehl für cdparanoia. Wird als Fallback genutzt wenn kein individuelles Kommando gesetzt ist. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad).
FFmpeg Kommando ffmpeg_command string ffmpeg Standard Pfad oder Befehl für ffmpeg. Wird für Audiobook-Encoding genutzt. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad).
FFprobe Kommando ffprobe_command string ffprobe Standard Pfad oder Befehl für ffprobe. Wird für Audiobook-Metadaten und Kapitel genutzt. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad).
Mediainfo Extra Args mediainfo_extra_args_bluray string leer Expertenmodus Zusätzliche CLI-Parameter für mediainfo (Blu-ray). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen).
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. Wenn fuer 'MakeMKV Rip Modus' ein anderes Standardverhalten benoetigt wird.
MakeMKV Analyze Extra Args makemkv_analyze_extra_args_bluray string leer Expertenmodus Zusätzliche CLI-Parameter für Analyze (Blu-ray). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen).
MakeMKV Rip Extra Args makemkv_rip_extra_args_bluray string leer Expertenmodus Zusätzliche CLI-Parameter für Rip (Blu-ray). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen).
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. Wenn ein bevorzugtes Standard-Preset fuer Blu-ray nicht jedes Mal manuell gewaehlt werden soll.
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-ma... Standard Zusätzliche CLI-Argumente (Blu-ray). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen).
Review Audio-Sprachen (Blu-ray Film) handbrake_review_audio_languages_bluray_movie string leer Standard Kommagetrennte Sprachliste für die Review-Vorauswahl von Audio-Spuren bei Blu-ray-Filmen. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Audio-Auswahl vorgeben. Wenn bei Blu-ray-Filmen im Review nicht mehr alle Audio-Spuren vorausgewählt werden sollen, sondern nur bestimmte Sprachen.
Review UT-Sprachen (Blu-ray Film) handbrake_review_subtitle_languages_bluray_movie string leer Standard Kommagetrennte Sprachliste für die Review-Vorauswahl von Untertiteln bei Blu-ray-Filmen. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Subtitle-Auswahl vorgeben. Wenn bei Blu-ray-Filmen im Review nicht mehr alle Untertitel vorausgewählt werden sollen, sondern nur bestimmte Sprachen.
Review Audio-Sprachen (Blu-ray Serie) handbrake_review_audio_languages_bluray_series string leer Standard Kommagetrennte Sprachliste für die Review-Vorauswahl von Audio-Spuren bei Blu-ray-Serien. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Audio-Auswahl vorgeben. Wenn bei Blu-ray-Serien im Review nicht mehr alle Audio-Spuren vorausgewählt werden sollen, sondern nur bestimmte Sprachen.
Review UT-Sprachen (Blu-ray Serie) handbrake_review_subtitle_languages_bluray_series string leer Standard Kommagetrennte Sprachliste für die Review-Vorauswahl von Untertiteln bei Blu-ray-Serien. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Subtitle-Auswahl vorgeben. Wenn bei Blu-ray-Serien im Review nicht mehr alle Untertitel vorausgewählt werden sollen, sondern nur bestimmte Sprachen.
Ausgabeformat output_extension_bluray select mkv Standard Dateiendung für finale Datei (Blu-ray). Wenn finale Blu-ray-Dateien standardmaessig als MKV oder MP4 ausgegeben werden sollen.
Mediainfo Extra Args mediainfo_extra_args_dvd string leer Expertenmodus Zusätzliche CLI-Parameter für mediainfo (DVD). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen).
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. Wenn fuer 'MakeMKV Rip Modus' ein anderes Standardverhalten benoetigt wird.
MakeMKV Analyze Extra Args makemkv_analyze_extra_args_dvd string leer Expertenmodus Zusätzliche CLI-Parameter für Analyze (DVD). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen).
MakeMKV Rip Extra Args makemkv_rip_extra_args_dvd string leer Expertenmodus Zusätzliche CLI-Parameter für Rip (DVD). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen).
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. Wenn ein bevorzugtes Standard-Preset fuer DVD nicht jedes Mal manuell gewaehlt werden soll.
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-ma... Standard Zusätzliche CLI-Argumente (DVD). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen).
Review Audio-Sprachen (DVD Film) handbrake_review_audio_languages_dvd_movie string leer Standard Kommagetrennte Sprachliste für die Review-Vorauswahl von Audio-Spuren bei DVD-Filmen. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Audio-Auswahl vorgeben. Wenn bei DVD-Filmen im Review nicht mehr alle Audio-Spuren vorausgewählt werden sollen, sondern nur bestimmte Sprachen.
Review UT-Sprachen (DVD Film) handbrake_review_subtitle_languages_dvd_movie string leer Standard Kommagetrennte Sprachliste für die Review-Vorauswahl von Untertiteln bei DVD-Filmen. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Subtitle-Auswahl vorgeben. Wenn bei DVD-Filmen im Review nicht mehr alle Untertitel vorausgewählt werden sollen, sondern nur bestimmte Sprachen.
Review Audio-Sprachen (DVD Serie) handbrake_review_audio_languages_dvd_series string leer Standard Kommagetrennte Sprachliste für die Review-Vorauswahl von Audio-Spuren bei DVD-Serien. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Audio-Auswahl vorgeben. Wenn bei DVD-Serien im Review nicht mehr alle Audio-Spuren vorausgewählt werden sollen, sondern nur bestimmte Sprachen.
Review UT-Sprachen (DVD Serie) handbrake_review_subtitle_languages_dvd_series string leer Standard Kommagetrennte Sprachliste für die Review-Vorauswahl von Untertiteln bei DVD-Serien. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Subtitle-Auswahl vorgeben. Wenn bei DVD-Serien im Review nicht mehr alle Untertitel vorausgewählt werden sollen, sondern nur bestimmte Sprachen.
Ausgabeformat output_extension_dvd select mkv Standard Dateiendung für finale Datei (DVD). Wenn finale DVD-Dateien standardmaessig als MKV oder MP4 ausgegeben werden sollen.
mkvmerge Kommando mkvmerge_command string mkvmerge Standard Pfad oder Befehl für mkvmerge. Wird für Multipart-Movie-Merges genutzt. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad).

Spezielle Werteformate

  • Eigentümer (user:gruppe): z.B. media:media oder 1000:1000.
  • drive_devices (JSON): [{"path":"/dev/sr0","makemkvIndex":0},{"path":"/dev/sr1","makemkvIndex":1}]
  • external_storage_paths (JSON): [{"name":"USB HDD","path":"/mnt/usb-hdd"}]
  • converter_scan_extensions: kommagetrennt, ohne Punkt, z.B. mkv,mp4,flac,mp3.
  • Template-Felder: erlauben Platzhalter ({...} / ${...}) und / fuer Unterordner.

Hinweis zu ausgeblendeten Feldern

Die Keys drive_device, makemkv_source_index, makemkv_rip_mode_bluray, makemkv_rip_mode_dvd liegen im Schema, werden aber bewusst nicht im normalen Formular angezeigt.

\ No newline at end of file + Alle Einstellungen - Ripster
Zum Inhalt

Einstellungsreferenz

Diese Seite beschreibt jedes Feld aus Settings -> Konfiguration aus Anwendersicht: was du dort steuerst, wann die Einstellung greift und welchen Einfluss sie auf Review, Queue, Pfade oder Automatisierung hat.

So liest du diese Seite

  • Standard nennt den voreingestellten Wert oder den üblichen Leerzustand.
  • Greift in sagt dir, in welchem Ablauf du die Wirkung besonders merkst.
  • Praxis erklärt, warum du das Feld im Alltag bewusst setzen solltest.

Benachrichtigungen

Expertenmodus

Standard: Aus

Der Schalter blendet zusätzliche technische Felder in der gesamten Settings-Oberfläche ein, zum Beispiel für Logging, Polling-Intervalle oder CLI-Feinjustierung. Er wird sofort gespeichert und wirkt ohne extra Speichern der ganzen Seite.

Greift in: - die Sichtbarkeit von Expertenfeldern in Settings - zusätzliche Navigations- und Wartungsbereiche

Praxis: - Aktiviere ihn, wenn du Ripster genauer steuern oder Fehler analysieren willst. - Lass ihn aus, wenn die Oberfläche bewusst schlank bleiben soll.

PushOver aktiviert

Standard: Aus

Das ist der Master-Schalter für alle PushOver-Nachrichten. Ist er aus, sendet Ripster unabhängig von den einzelnen Ereignis-Toggles nichts.

Greift in: - Push-Benachrichtigungen zu Auswahl, Start, Erfolg, Fehler und Re-Encode

Praxis: - Aktiviere den Schalter nur zusammen mit gültigem Token und User-Key.

PushOver Token

Standard: leer

Hier hinterlegst du den Application Token deiner PushOver-Anwendung. Ohne diesen Wert kann Ripster keine Nachricht zustellen.

Greift in: - jeden PushOver-Versand

Praxis: - Der Wert stammt aus deiner PushOver-App-Konfiguration.

PushOver User

Standard: leer

Hier steht der User-Key des PushOver-Kontos, an das Ripster senden soll.

Greift in: - jeden PushOver-Versand

Praxis: - Trage hier den Zielaccount ein, der die Meldungen wirklich erhalten soll.

PushOver Device (optional)

Standard: leer

Mit diesem Feld begrenzt du PushOver-Nachrichten auf ein bestimmtes Gerät. Bleibt es leer, gehen die Nachrichten an alle Geräte des PushOver-Users.

Greift in: - die Zielauswahl beim Versand

Praxis: - Sinnvoll, wenn Ripster nur ein bestimmtes Telefon oder Tablet benachrichtigen soll.

PushOver Titel-Präfix

Standard: Ripster

Das Präfix wird vor den eigentlichen Titel jeder PushOver-Nachricht gesetzt. So kannst du mehrere Instanzen oder Systeme leichter auseinanderhalten.

Greift in: - die Betreffzeile aller PushOver-Nachrichten

Praxis: - Typische Werte sind zum Beispiel Ripster Keller, Wohnzimmer-Ripper oder der Hostname.

PushOver Priority

Standard: 0

Die Priorität steuert, wie dringend PushOver die Nachricht behandelt. Niedrigere Werte sind leiser, höhere Werte auffälliger.

Greift in: - die Zustellungsart auf der PushOver-Seite

Praxis: - Für normale Statusmeldungen reicht meist 0. - Höhere Prioritäten sind eher für Fehler oder manuelle Eingriffe gedacht.

PushOver Timeout (ms)

Standard: 7000

Dieser Wert legt fest, wie lange Ripster auf eine Antwort von PushOver wartet, bevor der Versand als fehlgeschlagen gilt.

Greift in: - die HTTP-Verbindung zu PushOver

Praxis: - Ein höherer Wert kann bei langsamen Verbindungen helfen. - Ein niedrigerer Wert sorgt dafür, dass Hänger schneller abgebrochen werden.

Bei manueller Auswahl senden

Standard: An

Ripster sendet eine Nachricht, wenn ein Job auf eine Benutzerentscheidung wartet, zum Beispiel bei Metadatenauswahl, RAW-Entscheidung, Playlist-Auswahl oder Titelwahl vor dem Review.

Greift in: - Playlistflow - RAW-Wiederverwendung - manuelle Review-Vorbereitung

Praxis: - Das ist eines der wichtigsten Events, wenn Ripster unbeaufsichtigt laufen soll.

Bei Rip-Start senden

Standard: An

Sendet eine Nachricht in dem Moment, in dem der eigentliche MakeMKV-Rip startet.

Greift in: - Disc-Workflows im Ripper

Praxis: - Nützlich, wenn du wissen willst, dass die Wartephase beendet ist und das Laufwerk jetzt wirklich arbeitet.

Bei Encode-Start senden

Standard: An

Sendet eine Nachricht beim Start von HandBrake oder eines anderen Encode-Schritts.

Greift in: - Film-, Serien-, Converter- und Audiobook-Encodes

Praxis: - Hilfreich, wenn Rip und Encode auf unterschiedlichen Systemlasten beruhen und du den eigentlichen Rechenstart mitbekommen willst.

Bei Erfolg senden

Standard: An

Sendet eine Nachricht nach erfolgreichem Abschluss eines Jobs.

Greift in: - alle erfolgreichen Pipeline-Läufe

Praxis: - Gut für lange Nachtläufe oder Stapelverarbeitung.

Bei Fehler senden

Standard: An

Sendet eine Nachricht, sobald ein Job in einen Fehlerzustand läuft.

Greift in: - Fehler in Rip, Analyse, Review-Aufbau, Encode oder Folgeaktionen

Praxis: - Dieses Event sollte in produktiven Umgebungen fast immer aktiv bleiben.

Bei Abbruch senden

Standard: An

Sendet eine Nachricht, wenn ein Job manuell abgebrochen wurde.

Greift in: - Benutzerabbrüche im laufenden Workflow

Praxis: - Vor allem nützlich, wenn mehrere Personen mit derselben Instanz arbeiten.

Bei Re-Encode Start senden

Standard: An

Sendet eine Nachricht beim Start eines Re-Encodes aus vorhandenem RAW.

Greift in: - RAW neu encodieren - Review neu starten mit erneutem Encode

Praxis: - Praktisch, wenn du bestehende RAWs später gesammelt neu verarbeitest.

Bei Re-Encode Erfolg senden

Standard: An

Sendet eine Nachricht, wenn ein Re-Encode erfolgreich abgeschlossen wurde.

Greift in: - Nachbearbeitung aus der Historie

Praxis: - Besonders hilfreich bei Korrekturläufen auf Basis alter RAWs.

Converter

Erlaubte Datei-Endungen

Standard: mkv,mp4,m2ts,iso,avi,mov,flac,mp3,aac,wav,m4a,ogg,opus

Die Liste bestimmt, welche Dateitypen der Converter-Upload akzeptiert und welche Dateien beim Scannen des Converter-Eingangsordners berücksichtigt werden. Die Einträge werden kommagetrennt und ohne Punkt gepflegt.

Greift in: - Upload im Converter - manueller Scan - Auto-Scan

Praxis: - Entferne Formate, die in deiner Umgebung nie verarbeitet werden sollen. - Ergänze nur Formate, die Ripster später auch sinnvoll als Job behandeln kann.

Auto-Scan (Polling)

Standard: Aus

Wenn dieser Schalter aktiv ist, scannt Ripster den Converter-Eingangsordner in festen Abständen automatisch neu. Neue oder verschobene Dateien tauchen dann ohne manuellen Klick auf.

Greift in: - die Dateiansicht des Converters - automatisches Erkennen externer Dateiimporte

Praxis: - Sinnvoll, wenn Dateien per Netzfreigabe, Script oder anderer Software in den Converter gelegt werden.

Polling-Intervall (Sekunden)

Standard: 300

Der Wert bestimmt, wie oft der Converter-Eingangsordner bei aktivem Auto-Scan geprüft wird.

Greift in: - Reaktionsgeschwindigkeit des Converter-Scans - Systemlast durch wiederholte Verzeichnisprüfungen

Praxis: - Kleinere Werte aktualisieren schneller, erzeugen aber mehr Dateisystemzugriffe.

Laufwerk

Laufwerksmodus

Standard: auto

Hier legst du fest, ob Ripster optische Laufwerke automatisch erkennen soll oder ob du feste Laufwerke manuell definierst.

Greift in: - Laufwerkserkennung - Disc-Monitoring - Zuordnung von Laufwerk und MakeMKV-Quelle

Praxis: - auto passt für die meisten Einzel-Laufwerke. - Ein expliziter Modus ist besser, wenn mehrere Laufwerke stabil an bestimmte Geräte gebunden werden sollen.

Explizite Laufwerke

Standard: leer

In diesem Editor legst du pro Laufwerk einen Gerätepfad und den passenden MakeMKV-Index fest. Diese Liste wird nur verwendet, wenn der Laufwerksmodus auf einen expliziten Betrieb gestellt ist.

Greift in: - Multi-Drive-Setups - stabile Zuordnung zwischen Linux-Gerät und MakeMKV-Quelle

Praxis: - Besonders hilfreich bei zwei oder mehr Laufwerken oder bei wechselnden USB-Adaptern.

Device Pfad

Standard: /dev/sr0

Dieses Feld ist normalerweise ausgeblendet und dient nur als älterer Einzelwert für feste Laufwerkskonfigurationen. In der Praxis solltest du stattdessen den Editor Explizite Laufwerke verwenden.

Greift in: - interne Fallbacks bei expliziter Laufwerkskonfiguration

Praxis: - Nur relevant für Sonderfälle oder Altdaten.

MakeMKV Source Index

Standard: 0

Dieses normalerweise ausgeblendete Feld legt den MakeMKV-Quellindex fest, wenn kein expliziter Laufwerks-Eintrag greift.

Greift in: - interne Quellauflösung für MakeMKV

Praxis: - Im Alltag wird dieser Wert meist automatisch aus der Laufwerkskonfiguration abgeleitet.

Automatische Disk-Erkennung

Standard: An

Wenn der Schalter aktiv ist, prüft Ripster regelmäßig, ob neue Discs eingelegt wurden. Ist er aus, musst du Laufwerke manuell neu einlesen.

Greift in: - automatisches Erkennen neu eingelegter Discs

Praxis: - Deaktiviere die Automatik nur, wenn sie in deiner Umgebung stört oder du volle manuelle Kontrolle willst.

Polling Intervall (ms)

Standard: 4000

Der Wert bestimmt, wie häufig Ripster nach neuen oder entfernten Discs sucht.

Greift in: - Reaktionsgeschwindigkeit der Disc-Erkennung - Häufigkeit der Laufwerksabfragen

Praxis: - Ein kleinerer Wert reagiert schneller. - Ein größerer Wert reduziert die Polling-Last.

Laufwerk nach Rip auswerfen

Standard: Aus

Wenn aktiv, wirft Ripster das beteiligte Laufwerk nach einem erfolgreich abgeschlossenen Rip automatisch aus.

Greift in: - Disc-Workflows nach erfolgreichem Rip

Praxis: - Nützlich bei Stapelbetrieb, damit du sofort siehst, welches Laufwerk fertig ist.

Logging

Terminal-Ausgabe aktiv

Standard: An

Dieser Schalter steuert die Konsolenausgabe des Servers im Terminal. Die Log-Dateien auf Platte bleiben davon unberührt.

Greift in: - start.sh - Service-Diagnose im Terminal

Praxis: - Deaktiviere die Ausgabe, wenn die Konsole bewusst ruhig bleiben soll.

HTTP-Logs im Terminal

Standard: An

Zeigt oder unterdrückt eingehende HTTP-Requests in der Konsolenausgabe.

Greift in: - API-Debugging - Analyse von Frontend-/Backend-Kommunikation

Praxis: - Besonders bei Fehlersuche im Webinterface nützlich.

DEBUG im Terminal

Standard: An

Steuert, ob sehr detaillierte Debug-Meldungen im Terminal mitlaufen.

Greift in: - tiefes Troubleshooting

Praxis: - Gut für Fehlersuche, oft zu ausführlich für den Dauerbetrieb.

INFO im Terminal

Standard: An

Steuert normale Statusmeldungen in der Konsolenausgabe.

Greift in: - alltägliche Laufzeitbeobachtung

Praxis: - Für normale Bedienung meist sinnvoll aktiviert.

WARN im Terminal

Standard: An

Steuert Warnmeldungen in der Konsole.

Greift in: - Hinweise auf ungewöhnliche, aber nicht sofort kritische Situationen

Praxis: - Sollte fast immer sichtbar bleiben.

ERROR im Terminal

Standard: An

Steuert Fehlermeldungen in der Konsole.

Greift in: - alle ernsthaften Laufzeitfehler

Praxis: - Sollte im Regelfall immer aktiviert bleiben.

Metadaten

TMDb Read Access Token

Standard: leer

Ohne diesen Token kann Ripster keine reguläre TMDb-Metadatensuche für Filme und Serien durchführen. Der Wert wird für Suche, Zuordnung und spätere Neu-Zuweisungen verwendet.

Greift in: - Metadatenauswahl nach der Analyse - Serienzuordnung - TMDb neu zuweisen - Poster- und Titellookups

Praxis: - Dieses Feld gehört zu den wichtigsten Grundeinstellungen für Disc-Workflows.

Film-Sprache

Standard: de-DE

Hier legst du fest, in welcher TMDb-Sprache Ripster Titel, Beschreibungen, Staffelnamen und ähnliche Daten zuerst abruft.

Greift in: - Film- und Serienmetadaten in der Auswahl - Sprache der zurückgegebenen TMDb-Daten

Praxis: - Wähle die Sprache, in der du Titel und Episodennamen später auch in Ordnern und Historie sehen willst.

Fallback Sprache

Standard: de-DE,en-US

Wenn in der Hauptsprache keine brauchbaren Daten vorhanden sind, versucht Ripster nacheinander diese Fallback-Sprachen.

Greift in: - Trefferqualität bei seltenen oder schlecht lokalisierten Titeln

Praxis: - Eine Kombination aus lokaler Sprache und en-US ist oft am robustesten.

Coverart-Nachladen aktiv

Standard: An

Wenn bei Jobs oder Containern Cover fehlen, prüft Ripster in Intervallen automatisch nach und versucht das Material später nachzuladen.

Greift in: - nachträgliche Pflege von Postern und Covern

Praxis: - Sinnvoll, wenn beim ersten Lauf gelegentlich noch keine vollständigen Bilder verfügbar waren.

Coverart-Prüfintervall (Stunden)

Standard: 6

Legt fest, wie oft die automatische Cover-Prüfung laufen darf.

Greift in: - Häufigkeit des Cover-Nachladens

Praxis: - Kleinere Werte aktualisieren schneller, größere Werte reduzieren Hintergrundaktivität.

NFO nach Encode erzeugen

Standard: Aus

Wenn dieser Schalter aktiv ist, legt Ripster nach erfolgreichem Encode eine .nfo-Datei neben der finalen Ausgabedatei an.

Greift in: - Film- und Serienausgabe - Nachbearbeitung in Media-Centern

Praxis: - Hilfreich für Setups mit Kodi, Jellyfin-Begleitdateien oder eigener Archivierung.

Monitoring

Hardware Monitoring aktiviert

Standard: An

Das ist der Master-Schalter für CPU-, RAM-, GPU- und Speicher-Monitoring. Ist er aus, stoppt Ripster Polling und Live-Updates für diese Daten.

Greift in: - die kompakte Anzeige im Ripper - die Seite Hardware

Praxis: - Deaktiviere das Monitoring nur, wenn du die Werte nicht brauchst oder die Abfragen in deiner Umgebung unerwünscht sind.

Hardware Monitoring Intervall (ms)

Standard: 5000

Hier stellst du ein, wie oft Hardware- und Speicherwerte neu ermittelt werden.

Greift in: - Aktualität der Hardware-Daten - Polling-Last

Praxis: - Kürzere Intervalle fühlen sich live an, erzeugen aber mehr Messaufrufe.

Pfade

Grundregeln für Pfade, Besitzer und Templates

  • Leere Pfadfelder fallen je nach Bereich auf eingebaute Standardpfade oder auf den allgemeineren Profilpfad zurück.
  • Besitzer-Felder erwarten Benutzer:Gruppe oder UID:GID, zum Beispiel media:media oder 1000:1000.
  • Wenn ein Besitzer gesetzt ist, versucht Ripster neue oder fertiggestellte Dateien nach dem Schreiben entsprechend zu übernehmen.
  • In Templates erzeugt / Unterordner.
  • Templates greifen immer auf die relative Struktur innerhalb des jeweiligen Zielordners.

Raw Ausgabeordner (Blu-ray)

Standard: leer

Hier landet das von Blu-ray-Discs erzeugte RAW-Material, sofern kein spezieller Serien-RAW-Ordner greift.

Greift in: - Film- und Disc-Vorbereitung für Blu-ray - Wiederverwendung vorhandener RAWs

Praxis: - Lege RAW-Material gern auf ein großes, schnelles Laufwerk.

Raw Ausgabeordner (DVD)

Standard: leer

Hier landet das von DVD-Discs erzeugte RAW-Material, sofern kein spezieller Serien-RAW-Ordner greift.

Greift in: - DVD-Rip-Phase - RAW-Wiederverwendung bei DVDs

Praxis: - Trenne Blu-ray- und DVD-RAW, wenn du unterschiedliche Speicherorte oder Aufbewahrungsstrategien willst.

CD RAW-Ordner

Standard: leer

In diesem Ordner legt Ripster die rohen CD-Dateien aus dem Audio-CD-Rip ab, bevor das endgültige Ausgabeformat erzeugt wird.

Greift in: - Audio-CD-Rip

Praxis: - Sinnvoll auf einem lokalen Datenträger mit genug Platz für WAV-Zwischendaten.

Audiobook RAW-Ordner

Standard: leer

Das ist der Basisordner für hochgeladene Audiobook-Quelldateien und deren vorbereitete Rohdaten.

Greift in: - AAX-Upload - Audiobook-Vorbereitung

Praxis: - Gut geeignet für einen Bereich, in dem auch größere temporäre Quelldateien liegen dürfen.

Serien-Ordner (Blu-ray)

Standard: leer

Das ist der Zielordner für fertige Blu-ray-Serienepisoden.

Greift in: - Ausgabe von Blu-ray-Serien

Praxis: - Typisch ist eine Trennung von Serien und Filmen auf Verzeichnisebene.

Film Ausgabeordner (Blu-ray)

Standard: leer

Hierhin schreibt Ripster fertige Blu-ray-Filme.

Greift in: - finale Film-Ausgabe für Blu-ray

Praxis: - Wenn leer, greift Ripster auf den allgemeinen Film-Output zurück.

Film Ausgabeordner (DVD)

Standard: leer

Hierhin schreibt Ripster fertige DVD-Filme.

Greift in: - finale Film-Ausgabe für DVD

Praxis: - Praktisch, wenn DVD- und Blu-ray-Filme getrennt archiviert werden sollen.

Serien-Ordner (DVD)

Standard: leer

Das ist der Zielordner für fertige DVD-Serienepisoden.

Greift in: - Ausgabe von DVD-Serien

Praxis: - Kann bewusst getrennt vom Blu-ray-Serienordner geführt werden.

CD Output-Ordner

Standard: leer

Hier landen die final encodierten Audio-CD-Dateien. Wenn das Feld leer ist, nutzt Ripster denselben Bereich wie für die CD-RAW-Daten oder den eingebauten Standard.

Greift in: - finale Audio-CD-Ausgabe

Praxis: - Trenne RAW und Ausgabe, wenn du Rohdaten nur kurzfristig behalten willst.

Audiobook Output-Ordner

Standard: leer

Hier landen die fertigen Audiobook-Dateien.

Greift in: - m4b - kapitelweises mp3 - kapitelweises flac

Praxis: - Lege diesen Ordner dort an, wo dein Hörbuch-Archiv liegen soll.

Download ZIP-Ordner

Standard: leer

Ripster erstellt hier vorbereitete ZIP-Downloads aus RAW oder Output und legt auch die zugehörigen Metadateien dort ab.

Greift in: - Download-Aktionen aus der Historie

Praxis: - Gut geeignet für einen Bereich mit genug temporärem Platz für Archive.

Externe Speicher

Standard: leer

Hier hinterlegst du zusätzliche Speicherorte, die Ripster in der Oberfläche unter den freien Speichern anzeigen soll. Diese Liste ist für die Überwachung gedacht, nicht als Schreibziel.

Greift in: - Speicheranzeige im Monitoring

Praxis: - Nützlich für USB-Platten, NAS-Mounts oder andere Zielmedien, deren freien Platz du im Blick behalten willst.

Log Ordner

Standard: installationsabhängig

Das ist der Basisordner für die Log-Dateien von Ripster. Wenn der Pfad ungültig ist, fällt Ripster auf einen internen Fallback zurück.

Greift in: - Backend-Logs - Job-Logs

Praxis: - Lege Logs auf persistenten Speicher, wenn du Fehlerverläufe langfristig aufbewahren willst.

CD Output Template

Standard: {artist} - {album} ({year})/{trackNr} {artist} - {title}

Dieses Template steuert Ordnerstruktur und Dateinamen der finalen Audio-CD-Ausgabe. Der letzte Abschnitt wird Dateiname, alles davor Unterordner.

Greift in: - Audio-CD-Ordnerstruktur - Track-Dateinamen

Praxis: - Beispiel: Mit dem Standard entsteht typischerweise Interpret - Album (2024)/01 Interpret - Titel.flac.

Output Template (Blu-ray)

Standard: ${title} (${year})/${title} (${year})

Dieses Template bestimmt Ordner und Dateiname für fertige Blu-ray-Filme.

Greift in: - finale Blu-ray-Filmausgabe

Praxis: - Das Standardtemplate erzeugt einen Filmordner und darin eine gleichnamige Datei.

Output Template (Blu-ray Serie, Episode)

Standard: {seriesTitle}/Staffel {seasonNr}/S{seasonNr}E{episodeNr} - {episodeTitle}

Dieses Template bestimmt den Pfad für einzelne Blu-ray-Serienfolgen.

Greift in: - Serien-Workflow mit Einzel-Episoden

Praxis: - Beispiel: Serie/Staffel 02/S02E05 - Episodentitel.mkv.

Output Template (Blu-ray Serie, Multi-Episode)

Standard: {seriesTitle}/Staffel {seasonNr}/S{0:seasonNr}E{episodeRange} - {episodeTitle} (Teil {parts})

Dieses Template greift, wenn mehrere Folgen in einer Datei zusammengefasst bleiben.

Greift in: - Serien-Workflow mit Doppelfolgen oder Play-All-Fällen

Praxis: - So bleibt direkt im Dateinamen sichtbar, dass mehrere Episoden in einer Datei liegen.

Output Template (DVD)

Standard: ${title} (${year})/${title} (${year})

Dieses Template bestimmt Ordner und Dateiname für fertige DVD-Filme.

Greift in: - finale DVD-Filmausgabe

Praxis: - Das Verhalten entspricht dem Blu-ray-Filmtemplate, nur für das DVD-Profil.

Output Template (DVD Serie, Episode)

Standard: {seriesTitle}/Season {seasonNr}/{seriesTitle} - S{seasonNo}E{episodeNo} - {episodeTitle}

Dieses Template steuert den Pfad für einzelne DVD-Serienfolgen.

Greift in: - DVD-Serien mit einzelner Episodenausgabe

Praxis: - Nutze es, um dein bevorzugtes Serien-Schema exakt abzubilden.

Output Template (DVD Serie, Multi-Episode)

Standard: {seriesTitle}/Season {seasonNr}/{seriesTitle} - S{seasonNo}E{episodeRange}

Dieses Template greift für zusammengefasste DVD-Folgen in einer Datei.

Greift in: - Multi-Episode-Ausgabe im DVD-Serienworkflow

Praxis: - Besonders relevant bei TV-DVDs mit Play-All-Titeln oder Doppelfolgen.

Output Template (Audiobook)

Standard: {author}/{author} - {title} ({year})

Dieses Template bestimmt den Dateipfad für die Ein-Datei-Ausgabe von Audiobooks, also vor allem für m4b.

Greift in: - Audiobook-Ausgabe als Einzeltitel

Praxis: - Beispiel: Autor/Autor - Titel (2023).m4b.

Audiobook RAW Template

Standard: {author} - {title} ({year})

Dieses Template steuert den Namen des relativen RAW-Unterordners, in den die Audiobook-Quelldaten gelegt werden.

Greift in: - Audiobook-Upload und RAW-Ablage

Praxis: - Es hilft dabei, AAX-Rohdaten sauber nach Titel und Jahr zu organisieren.

Converter Raw-Ordner

Standard: leer

Das ist der Eingangsordner des Converters. Uploads, neue Unterordner und externe Dateiimporte landen hier.

Greift in: - gesamte Converter-Dateiverwaltung

Praxis: - Dieser Ordner sollte gut erreichbar und groß genug für Rohdateien sein.

Converter Ausgabe (Video)

Standard: leer

Hierhin schreibt Ripster final konvertierte Video- oder ISO-Ergebnisse aus dem Converter.

Greift in: - Converter-Videojobs

Praxis: - Lege hier den Zielbereich für fertige Video-Transcodes fest.

Converter Ausgabe (Audio)

Standard: leer

Hierhin schreibt Ripster die finalen Audio-Ergebnisse aus dem Converter.

Greift in: - Converter-Audiojobs

Praxis: - Sinnvoll getrennt vom Video-Ausgabeordner.

Output-Template (Video)

Standard: {title}

Dieses Template bestimmt den Dateinamen von Converter-Videojobs. Unterordner sind ebenfalls möglich.

Greift in: - Converter-Videoausgabe

Praxis: - Beispiel: {title}/{title} erzeugt einen Unterordner pro Titel.

Output-Template (Audio)

Standard: {artist} - {title}

Dieses Template bestimmt Dateiname und bei Bedarf Ordnerstruktur von Converter-Audiojobs.

Greift in: - einzelne Audio-Dateien - gemeinsame Audio-Jobs - Ordnerjobs

Praxis: - Bei gemeinsamen Audio-Jobs kann der vordere Teil des Templates als Ordner dienen, der hintere Teil als Track-Schema.

RAW-Ordner (Blu-ray Serie)

Standard: leer

Hier kannst du Blu-ray-Serien-RAW bewusst getrennt vom allgemeinen Blu-ray-RAW ablegen.

Greift in: - Serien-RAW-Erzeugung bei Blu-ray

Praxis: - Sinnvoll, wenn Serien deutlich andere Speicher- oder Aufbewahrungsregeln haben als Filme.

Eigentümer RAW-Ordner (Blu-ray Serie)

Standard: leer

Legt den Besitzer für Blu-ray-Serien-RAW fest. Ripster versucht neue Dateien und Ordner nach dem Schreiben entsprechend zu übernehmen.

Greift in: - Dateirechte auf Serien-RAW

Praxis: - Typisch für NAS-Freigaben oder Docker-Setups mit getrennten Nutzern.

Eigentümer Raw-Ordner (Blu-ray)

Standard: leer

Legt den Besitzer für allgemeine Blu-ray-RAW-Daten fest.

Greift in: - Dateirechte auf Blu-ray-RAW

Praxis: - Relevant, wenn der Ripster-Dienst nicht als Zielnutzer schreiben soll.

RAW-Ordner (DVD Serie)

Standard: leer

Hier kannst du DVD-Serien-RAW getrennt vom allgemeinen DVD-RAW ablegen.

Greift in: - Serien-RAW-Erzeugung bei DVD

Praxis: - Sinnvoll, wenn Serienmaterial getrennt verwaltet werden soll.

Eigentümer RAW-Ordner (DVD Serie)

Standard: leer

Legt den Besitzer für DVD-Serien-RAW fest.

Greift in: - Dateirechte auf DVD-Serien-RAW

Praxis: - Besonders wichtig in Mehrbenutzer- oder NAS-Umgebungen.

Eigentümer Raw-Ordner (DVD)

Standard: leer

Legt den Besitzer für allgemeine DVD-RAW-Daten fest.

Greift in: - Dateirechte auf DVD-RAW

Praxis: - Nutze das Feld, wenn finale Rechte nicht beim Service-User liegen sollen.

Eigentümer CD RAW-Ordner

Standard: leer

Legt den Besitzer für Rohdaten aus Audio-CD-Rips fest.

Greift in: - Rechte auf CD-Zwischendaten

Praxis: - Hilfreich, wenn andere Tools oder Nutzer auf die Rohdaten zugreifen sollen.

Eigentümer Audiobook RAW-Ordner

Standard: leer

Legt den Besitzer für Audiobook-Rohdaten fest.

Greift in: - Rechte auf AAX- und Vorbereitungsdaten

Praxis: - Relevant, wenn Audiobook-RAW nicht beim Dienstbenutzer verbleiben soll.

Eigentümer Converter RAW-Ordner

Standard: leer

Legt den Besitzer für Dateien im Converter-Eingangsbereich fest.

Greift in: - Rechte auf Uploads und importierte Converter-Dateien

Praxis: - Praktisch, wenn Dateien nach dem Upload auch außerhalb von Ripster bearbeitet werden.

Eigentümer Serien-Ordner (Blu-ray)

Standard: leer

Legt den Besitzer für fertige Blu-ray-Serienausgaben fest.

Greift in: - finale Rechte auf Blu-ray-Serien

Praxis: - Sinnvoll für Media-Center-Freigaben.

Eigentümer Film-Ordner (Blu-ray)

Standard: leer

Legt den Besitzer für fertige Blu-ray-Filmdateien fest.

Greift in: - finale Rechte auf Blu-ray-Filme

Praxis: - Nutze das Feld, wenn Filme auf einem NAS oder von anderen Diensten gelesen werden.

Eigentümer Film-Ordner (DVD)

Standard: leer

Legt den Besitzer für fertige DVD-Filmdateien fest.

Greift in: - finale Rechte auf DVD-Filme

Praxis: - Gleiches Prinzip wie beim Blu-ray-Filmordner, nur für DVD.

Eigentümer Serien-Ordner (DVD)

Standard: leer

Legt den Besitzer für fertige DVD-Serienausgaben fest.

Greift in: - finale Rechte auf DVD-Serien

Praxis: - Hilfreich für gemeinsame Medienarchive.

Eigentümer CD Output-Ordner

Standard: leer

Legt den Besitzer der finalen Audio-CD-Ausgabe fest.

Greift in: - Rechte auf FLAC-, MP3- oder andere CD-Endformate

Praxis: - Wichtig, wenn Musik später durch andere Anwendungen verwaltet wird.

Eigentümer Audiobook Output-Ordner

Standard: leer

Legt den Besitzer der finalen Audiobook-Dateien fest.

Greift in: - Rechte auf m4b, mp3 und flac

Praxis: - Sinnvoll für Bibliotheken, die von separaten Diensten gelesen werden.

Eigentümer Converter Video Output-Ordner

Standard: leer

Legt den Besitzer der finalen Converter-Videoausgabe fest.

Greift in: - Rechte auf konvertierte Video-Dateien

Praxis: - Nützlich bei geteilten Medienordnern.

Eigentümer Converter Audio Output-Ordner

Standard: leer

Legt den Besitzer der finalen Converter-Audioausgabe fest.

Greift in: - Rechte auf konvertierte Audio-Dateien

Praxis: - Hilfreich, wenn Audio-Dateien später von anderen Diensten verschoben oder indiziert werden.

Eigentümer Download ZIP-Ordner

Standard: leer

Legt den Besitzer der erzeugten Download-Archive und Begleitdateien fest.

Greift in: - Rechte auf ZIP-Downloads aus der Historie

Praxis: - Besonders relevant, wenn Downloads über Freigaben oder einen anderen Webserver bereitgestellt werden.

Kapitel Template (Audiobook)

Standard: {author}/{author} - {title} ({year})/{chapterNr} {chapterTitle}

Dieses Template steuert die Zielstruktur für kapitelweise Audiobook-Ausgaben wie mp3 oder flac.

Greift in: - Kapiteldateien im Audiobook-Workflow

Praxis: - Beispiel: Autor/Autor - Titel (2023)/01 Kapitelname.mp3.

Tools

Grundregeln für diese Kategorie

  • Die Tool-Kommandos sagen Ripster, welches externe Programm gestartet werden soll.
  • Preset und Extra Args bestimmen das Verhalten der jeweiligen CLI.
  • Sprach-Review-Felder greifen nur als Vorauswahl in der Review und nur dann, wenn ein Preset nicht bereits selbst eine explizite Trackauswahl erzwingt.

MakeMKV Kommando

Standard: makemkvcon

Hier gibst du den Befehl oder den vollständigen Pfad zur MakeMKV-CLI an.

Greift in: - Disc-Analyse - Rip von Blu-ray und DVD

Praxis: - Trage einen absoluten Pfad ein, wenn das Tool nicht im PATH des Dienstes liegt.

MakeMKV Key

Standard: leer

Hier hinterlegst du den Registrierungsschlüssel für MakeMKV. Ripster synchronisiert ihn beim Speichern in die MakeMKV-Konfiguration und kann außerdem den aktuellen Betakey übernehmen.

Greift in: - MakeMKV-Nutzung ohne Trial-Einschränkungen

Praxis: - Sinnvoll, wenn die CLI dauerhaft und ohne manuelle Host-Pflege nutzbar bleiben soll.

Mediainfo Kommando

Standard: mediainfo

Hier gibst du den Befehl oder Pfad zu mediainfo an.

Greift in: - Mediainfo-Prüfung - Review-Aufbau - Analyse vorhandener Dateien

Praxis: - Wichtig für alle Workflows, die Track- und Streaminformationen zuverlässig aufbauen sollen.

Minimale Titellänge (Minuten)

Standard: 60

Diese Einstellung wirkt doppelt: Ripster hängt den Wert bei der MakeMKV-Analyse als Mindestlänge an, sofern du nicht schon selbst eine explizite Mindestlänge in den Extra-Args gesetzt hast. Zusätzlich markiert Ripster Titel unterhalb dieser Schwelle später im Review als nicht encodierwürdig.

Greift in: - Titel- und Playlist-Vorfilterung - Disc-Analyse - Review-Aufbau

Praxis: - Ein hoher Wert blendet Bonusmaterial und Trailer aus. - Ein zu hoher Wert kann aber auch kürzere Haupttitel oder Episoden verdrängen.

TMDb Runtime-Abzug für Playlistfilter (%)

Standard: 0

Ripster vergleicht bei problematischen Blu-rays die Disc-Playlists mit der Laufzeit aus TMDb. Dieser Wert wird prozentual von der TMDb-Laufzeit abgezogen und bildet damit eine lockerere Untergrenze für akzeptable Playlist-Kandidaten. Zusätzlich bleibt immer eine Mindesttoleranz von zwei Minuten nach unten erhalten.

Greift in: - Playlistflow vor der Review - Kandidatenauswahl bei Hauptfilm-Playlists

Praxis: - Beispiel: Steht ein Film in TMDb mit 120 Minuten und du trägst 5 ein, arbeitet Ripster für die Kandidatensuche mit rund 114 Minuten als Untergrenze, solange die feste Zweiminuten-Toleranz nicht ohnehin höher wäre. - Das hilft bei Discs, deren korrekte Hauptfassung etwas kürzer gemeldet wird als in TMDb.

HandBrake Kommando

Standard: HandBrakeCLI

Hier gibst du den Befehl oder Pfad zu HandBrakeCLI an.

Greift in: - alle Video-Encodes - Re-Encode aus RAW - Converter-Videojobs

Praxis: - Bei mehreren HandBrake-Installationen kannst du hier gezielt eine bestimmte Binary verwenden.

Encode-Neustart: unvollständige Ausgabe löschen

Standard: An

Wenn du einen Encode aus der Historie neu startest und der vorherige Lauf nicht erfolgreich war, entfernt Ripster den unvollständigen Output vor dem Neustart automatisch. Erfolgreiche Ausgaben bleiben davon unberührt.

Greift in: - Encode neu starten

Praxis: - Aktiviert verhindert diese Option, dass alte Teil-Dateien mit dem neuen Lauf kollidieren.

Parallele Jobs

Standard: 1

Das ist das allgemeine Startlimit für gleichzeitig laufende Jobs in der Pipeline. Alles darüber wird in die Warteschlange gestellt.

Greift in: - Ripper - Converter - Audiobooks - Queue-Pumpe im Hintergrund

Praxis: - Ein höherer Wert erhöht den Durchsatz, belastet aber CPU, I/O und ggf. mehrere Laufwerke stärker.

Script-Test Timeout (ms)

Standard: 0

Dieser Wert gilt nur für den Testlauf von Skripten in Settings. 0 bedeutet: kein Timeout.

Greift in: - Scripte-Tab - Tests einzelner Skripte oder Kettenbausteine

Praxis: - Setze hier einen festen Wert, wenn du hängende Testskripte automatisch abbrechen willst.

Max. parallele Audio CD Jobs

Standard: 2

Diese Einstellung begrenzt speziell, wie viele Audio-CD-Jobs gleichzeitig laufen dürfen. Sie wirkt zusätzlich zum allgemeinen Joblimit.

Greift in: - Audio-CD-Queue - Start mehrerer CDs hintereinander

Praxis: - So kannst du mehrere CDs parallel zulassen, ohne den Videobereich freizugeben.

Max. Encodes gesamt (medienunabhängig)

Standard: 3

Das ist der harte Deckel für alle gleichzeitig laufenden Encodes zusammen, unabhängig davon, ob sie von Film, Serie, Converter, CD oder Audiobook stammen.

Greift in: - alle Encode-Starts - Gesamtlast der Maschine

Praxis: - Diese Grenze sticht die Einzellimits aus, wenn zu viele Medienarten gleichzeitig starten wollen.

Audio CDs: Queue-Reihenfolge überspringen

Standard: Aus

Wenn aktiviert, dürfen Audio-CD-Jobs vor normalen Film- oder Videojobs starten, auch wenn diese früher in der Queue stehen. Die Parallelitäts- und Gesamtlimits gelten trotzdem weiter.

Greift in: - Reihenfolge der Queue - Audio-CD-Durchsatz in gemischten Warteschlangen

Praxis: - Sinnvoll, wenn CDs schnell abgearbeitet werden sollen und nicht hinter langen Videoencodes hängen bleiben sollen.

cdparanoia Kommando

Standard: cdparanoia

Hier gibst du den Befehl oder Pfad zu cdparanoia an.

Greift in: - Audio-CD-Rip

Praxis: - Wichtig, wenn cdparanoia nicht im Standardpfad des Systems liegt.

FFmpeg Kommando

Standard: ffmpeg

Hier gibst du den Befehl oder Pfad zu ffmpeg an.

Greift in: - Audiobook-Encodes - Audio-Nachbearbeitung

Praxis: - Ohne korrektes ffmpeg schlagen Audiobook-Ausgaben fehl.

FFprobe Kommando

Standard: ffprobe

Hier gibst du den Befehl oder Pfad zu ffprobe an.

Greift in: - Analyse von Audiobooks - Kapitel- und Metadatenaufbau

Praxis: - Ohne ffprobe kann Ripster Kapitel und Dateidetails nicht zuverlässig auslesen.

Mediainfo Extra Args (Blu-ray)

Standard: leer

Diese zusätzlichen Argumente hängt Ripster bei Blu-ray-Mediainfo-Aufrufen an den Befehl an.

Greift in: - Mediainfo-Prüfung für Blu-ray - Review-Aufbau aus bestehenden Dateien

Praxis: - Nur für gezielte Spezialfälle anpassen, wenn du das CLI-Verhalten bewusst überschreiben willst.

MakeMKV Rip Modus (Blu-ray)

Standard: backup

Dieses normalerweise ausgeblendete Systemfeld bestimmt, ob Blu-rays als vollständige Disc-Struktur oder direkt als MKV gerippt werden.

Greift in: - technische RAW-Erzeugung bei Blu-ray

Praxis: - Für normale Nutzung bleibt dieser Wert unverändert.

MakeMKV Analyze Extra Args (Blu-ray)

Standard: leer

Diese zusätzlichen Argumente werden an den Blu-ray-Analyseaufruf von MakeMKV angehängt.

Greift in: - Disc-Analyse - Titel- und Playlist-Erkennung

Praxis: - Beachte, dass eine selbst gesetzte Mindestlänge in diesen Args die allgemeine Einstellung zur minimalen Titellänge übersteuert.

MakeMKV Rip Extra Args (Blu-ray)

Standard: leer

Diese zusätzlichen Argumente werden an den eigentlichen Blu-ray-Rip angehängt.

Greift in: - RAW-Erzeugung bei Blu-ray

Praxis: - Nur anpassen, wenn du das MakeMKV-Verhalten sehr gezielt erweitern oder überschreiben willst.

HandBrake Preset (Blu-ray)

Standard: H.264 MKV 1080p30

Dieses Feld setzt den technischen HandBrake-Standard für Blu-ray-Jobs, sofern im konkreten Job nichts anderes gewählt wird.

Greift in: - Review-Vorgaben - Encode-Start bei Blu-ray

Praxis: - Das Preset ist deine Grundlinie; im Review oder über User-Presets kann später bewusst davon abgewichen werden.

HandBrake Extra Args (Blu-ray)

Standard: sprach- und codecbezogene Standardargumente

Hier definierst du zusätzliche HandBrake-CLI-Argumente für Blu-ray-Jobs. Sie steuern zum Beispiel Audio-Sprachauswahl, Untertitelvorgaben, Encoder-Profil und Qualitätsparameter.

Greift in: - finalen HandBrake-Aufruf bei Blu-ray - Vorauswahl von Audio und Untertiteln

Praxis: - Diese Einstellung ist sehr mächtig: Ein expliziter Audio- oder Untertitel-Selektor hier kann die separaten Review-Sprachfelder faktisch überstimmen.

Review Audio-Sprachen (Blu-ray Film)

Standard: leer

Hier definierst du, welche Audiosprachen in der Review eines Blu-ray-Films automatisch vorausgewählt werden sollen. Ripster normalisiert übliche Schreibweisen wie de, deu, en oder eng.

Greift in: - Bereit zum Encodieren bei Blu-ray-Filmen

Praxis: - Beispiel: de, en. - Bleibt das Feld leer, entscheidet Ripster stärker aus Preset und vorhandenen Tracks heraus.

Review UT-Sprachen (Blu-ray Film)

Standard: leer

Hier definierst du die Untertitelsprachen, die in der Review eines Blu-ray-Films vorselektiert werden.

Greift in: - Untertitelvorauswahl im Film-Review

Praxis: - Gut für feste Standards wie nur Deutsch und Englisch.

Review Audio-Sprachen (Blu-ray Serie)

Standard: leer

Dieses Feld funktioniert wie das Film-Pendant, greift aber nur bei Blu-ray-Serien.

Greift in: - Audio-Vorauswahl im Serien-Review

Praxis: - Praktisch, wenn du für Serien andere Sprachregeln als für Filme nutzt.

Review UT-Sprachen (Blu-ray Serie)

Standard: leer

Dieses Feld funktioniert wie das Film-Pendant, greift aber nur bei Blu-ray-Serien.

Greift in: - Untertitel-Vorauswahl im Serien-Review

Praxis: - So lassen sich Serien-Defaults getrennt von Film-Defaults pflegen.

Ausgabeformat (Blu-ray)

Standard: mkv

Hier legst du die Dateiendung der finalen Blu-ray-Ausgabe fest.

Greift in: - finalen Dateinamen - Containerformat der Ausgabe

Praxis: - Wähle das Format, das zu deinem Player- oder Archiv-Setup passt.

Mediainfo Extra Args (DVD)

Standard: leer

Diese zusätzlichen Argumente hängen an den Mediainfo-Aufrufen für DVD-Jobs.

Greift in: - Mediainfo-Prüfung für DVD

Praxis: - Nur für gezielte technische Sonderfälle anpassen.

MakeMKV Rip Modus (DVD)

Standard: mkv

Dieses normalerweise ausgeblendete Systemfeld legt fest, ob DVDs direkt als MKV oder als Disc-Struktur gerippt werden.

Greift in: - technische RAW-Erzeugung bei DVD

Praxis: - Im Normalfall unverändert lassen.

MakeMKV Analyze Extra Args (DVD)

Standard: leer

Diese zusätzlichen Argumente werden an den DVD-Analyseaufruf von MakeMKV angehängt.

Greift in: - DVD-Titelerkennung - spätere Review-Vorbereitung

Praxis: - Wie bei Blu-ray gilt: eigene Mindestlängen-Args können die allgemeine Mindestlänge übersteuern.

MakeMKV Rip Extra Args (DVD)

Standard: leer

Diese zusätzlichen Argumente werden beim eigentlichen DVD-Rip an MakeMKV angehängt.

Greift in: - RAW-Erzeugung bei DVD

Praxis: - Nur bewusst ändern, wenn du das CLI-Verhalten genau kennst.

HandBrake Preset (DVD)

Standard: H.264 MKV 480p30

Dieses Feld setzt den technischen HandBrake-Standard für DVD-Jobs.

Greift in: - Review-Vorgaben - Encode-Start bei DVD

Praxis: - Eine gute Basis für DVD kann sich deutlich von Blu-ray unterscheiden, deshalb gibt es ein eigenes Feld.

HandBrake Extra Args (DVD)

Standard: sprach- und codecbezogene Standardargumente

Hier definierst du die zusätzlichen HandBrake-CLI-Argumente für DVD-Jobs.

Greift in: - finalen HandBrake-Aufruf bei DVD - Audio- und Untertitelvorauswahl

Praxis: - Wie bei Blu-ray können explizite Selektionsargumente in diesen Args separate Review-Sprachfelder aushebeln.

Review Audio-Sprachen (DVD Film)

Standard: leer

Definiert die Audio-Vorauswahl für DVD-Filme in der Review.

Greift in: - Film-Review bei DVD

Praxis: - Beispiel: de, en.

Review UT-Sprachen (DVD Film)

Standard: leer

Definiert die Untertitel-Vorauswahl für DVD-Filme in der Review.

Greift in: - Untertitel-Review bei DVD-Filmen

Praxis: - Gut für feste Disc-Standards in deiner Sammlung.

Review Audio-Sprachen (DVD Serie)

Standard: leer

Definiert die Audio-Vorauswahl für DVD-Serien in der Review.

Greift in: - Serien-Review bei DVD

Praxis: - Trenne Serien-Defaults bewusst von Film-Defaults, wenn nötig.

Review UT-Sprachen (DVD Serie)

Standard: leer

Definiert die Untertitel-Vorauswahl für DVD-Serien in der Review.

Greift in: - Untertitel-Review bei DVD-Serien

Praxis: - Besonders nützlich bei Serien mit vielen redundanten UT-Spuren.

Ausgabeformat (DVD)

Standard: mkv

Hier legst du die Dateiendung der finalen DVD-Ausgabe fest.

Greift in: - finalen Dateinamen - Containerformat der DVD-Ausgabe

Praxis: - Dieses Feld ist vom Blu-ray-Format getrennt, damit beide Profile unabhängig voneinander arbeiten können.

mkvmerge Kommando

Standard: mkvmerge

Hier gibst du den Befehl oder Pfad zu mkvmerge an.

Greift in: - Multipart-Film-Zusammenführungen

Praxis: - Relevant, wenn du mehrteilige Filme oder Disc-Splits später in eine zusammenhängende Ausgabe überführen willst.

Ausgeblendete Felder

Einige technische Systemfelder sind im Schema vorhanden, werden aber im normalen Formular nicht aktiv angeboten oder nur intern benutzt. In der Doku sind sie oben trotzdem erklärt, damit auch Altdaten, API-Fälle und Spezialsetups nachvollziehbar bleiben.

\ No newline at end of file diff --git a/site/getting-started/configuration/index.html b/site/getting-started/configuration/index.html index 5e2720a..f964cf2 100644 --- a/site/getting-started/configuration/index.html +++ b/site/getting-started/configuration/index.html @@ -1 +1 @@ - Ersteinrichtung - Ripster
Zum Inhalt

Ersteinrichtung

Diese Seite ist die Betriebs-Checkliste vor dem ersten produktiven Lauf.

Ziel der Ersteinrichtung

Vor dem ersten Job sollten fünf Bereiche sauber gesetzt sein:

  1. Pfade und Templates
  2. Laufwerk und Disc-Erkennung
  3. Metadatenzugang über TMDb
  4. Encode-Standards und Queue-Regeln
  5. optionale Automatisierung und Benachrichtigungen

Empfohlene Reihenfolge

1. Basis in Settings -> Konfiguration

Prüfe zuerst diese Kernfelder:

  • RAW- und Zielordner für Blu-ray, DVD, CD, Audiobooks und Converter
  • Log Ordner
  • TMDb Read Access Token
  • MakeMKV Kommando, HandBrake Kommando, Mediainfo Kommando
  • FFmpeg Kommando, FFprobe Kommando, cdparanoia Kommando, mkvmerge Kommando, falls du die jeweiligen Workflows nutzt

Danach speichern.

2. Pfade und Templates bewusst festlegen

Wichtig für den Alltag:

  • Film-Workflows nutzen raw_dir_*, movie_dir_* und output_template_*
  • Serien-Workflows nutzen zusätzlich raw_dir_*_series, series_dir_* und die Episode-/Multi-Episode-Templates
  • Audiobooks nutzen raw_dir_audiobook, movie_dir_audiobook, audiobook_raw_template, output_template_audiobook, output_chapter_template_audiobook
  • Converter nutzt converter_raw_dir, converter_movie_dir, converter_audio_dir und die beiden Converter-Templates
  • Downloads nutzen download_dir

Wenn du auf NAS, USB oder andere Benutzer/Gruppen schreiben willst, prüfe auch die jeweiligen *_owner-Felder.

3. Laufwerk und automatische Erkennung prüfen

Relevant:

  • Laufwerksmodus
  • Explizite Laufwerke, falls du nicht mit Auto-Discovery arbeiten willst
  • Automatische Disk-Erkennung
  • Polling Intervall (ms) im Expertenmodus
  • Laufwerk nach Rip auswerfen

Empfehlung:

  • Einzelnes Standardlaufwerk: auto
  • mehrere stabile Laufwerke oder ungewöhnliche Device-Mappings: Explizite Laufwerke

4. TMDb und Metadatenverhalten festlegen

Relevant:

  • TMDb Read Access Token
  • Film-Sprache
  • Fallback Sprache
  • Coverart-Nachladen aktiv
  • Coverart-Prüfintervall (Stunden)
  • NFO nach Encode erzeugen

Diese Einstellungen wirken direkt in Metadatensuche, Serienzuordnung, Nachpflege von Covern und im finalen Output.

5. Encode- und Review-Standards festlegen

Für Video-Workflows besonders wichtig:

  • Minimale Titellänge (Minuten)
  • TMDb Runtime-Abzug für Playlistfilter (%)
  • HandBrake Preset und HandBrake Extra Args je Medium
  • Review Audio-Sprachen (...)
  • Review UT-Sprachen (...)
  • Ausgabeformat

Praxis:

  • Minimale Titellänge filtert Bonusmaterial früh weg
  • TMDb Runtime-Abzug ... lockert bei problematischen Blu-rays die Laufzeitprüfung der Playlist-Kandidaten
  • Review-Sprachen bestimmen, welche Audio-/Untertitelspuren in der Review schon vorausgewählt sind

6. Queue-Verhalten definieren

Stelle diese vier Felder bewusst ein:

  • Parallele Jobs
  • Max. parallele Audio CD Jobs
  • Max. Encodes gesamt (medienunabhängig)
  • Audio CDs: Queue-Reihenfolge überspringen

Damit steuerst du, wie aggressiv Ripster mehrere Jobs gleichzeitig startet.

7. Optional: User-Presets und Standard-Zuordnungen

Unter Settings -> Encode-Presets kannst du:

  • eigene HandBrake-User-Presets anlegen
  • Standard-Zuordnungen für Blu-ray Film, Blu-ray Serie, DVD Film, DVD Serie setzen

Diese Defaults wirken später in der Review automatisch vorbefüllend.

8. Optional: Benachrichtigungen

Prüfe:

  • PushOver aktiviert
  • Token/User/optional Device
  • Event-Toggles wie Bei manueller Auswahl senden, Bei Rip-Start senden, Bei Erfolg senden

Danach in Settings den Button PushOver Test ausführen.

9. Optional: Automatisierung

Erst wenn die Grundkonfiguration stabil ist:

  1. Skripte anlegen und testen
  2. Skriptketten aufbauen
  3. Cronjobs aktivieren

Funktionsprüfung

Ein sinnvoller Kurztest:

  1. Disc in Ripper erkennen lassen
  2. Analyse starten
  3. TMDb-Metadaten übernehmen
  4. ggf. Playlist-/RAW-Entscheidung durchlaufen
  5. bis Bereit zum Encodieren kommen
  6. Encode starten
  7. Ergebnis in Historie prüfen

Typische Konfigurationsfehler

Symptom Häufige Ursache
Disc wird nicht erkannt Laufwerksmodus oder Auto-Erkennung passt nicht
Playlist-Auswahl wirkt unplausibel Minimale Titellänge oder TMDb Runtime-Abzug ... ist zu streng/zu locker
falsche Spuren sind in der Review vorausgewählt Review-Sprachfilter oder HandBrake-Args greifen unerwartet
Ausgabe landet am falschen Ort Profilpfade oder Templates greifen über Fallback
Queue verhält sich unerwartet Parallele Jobs, CD-Limit und Gesamtlimit widersprechen sich

Weiter

\ No newline at end of file + Ersteinrichtung - Ripster
Zum Inhalt

Ersteinrichtung

Diese Seite ist die Betriebs-Checkliste vor dem ersten produktiven Lauf.

Ziel der Ersteinrichtung

Vor dem ersten Job sollten fünf Bereiche sauber gesetzt sein:

  1. Pfade und Templates
  2. Laufwerk und Disc-Erkennung
  3. Metadatenzugang über TMDb
  4. Encode-Standards und Queue-Regeln
  5. optionale Automatisierung und Benachrichtigungen

Empfohlene Reihenfolge

1. Basis in Settings -> Konfiguration

Prüfe zuerst diese Kernfelder:

  • RAW- und Zielordner für Blu-ray, DVD, CD, Audiobooks und Converter
  • Log Ordner
  • TMDb Read Access Token
  • MakeMKV Kommando, HandBrake Kommando, Mediainfo Kommando
  • FFmpeg Kommando, FFprobe Kommando, cdparanoia Kommando, mkvmerge Kommando, falls du die jeweiligen Workflows nutzt

Danach speichern.

2. Pfade und Templates bewusst festlegen

Wichtig für den Alltag:

  • Film-Workflows nutzen die RAW- und Film-Ausgabeordner sowie die Film-Output-Templates
  • Serien-Workflows nutzen zusätzlich die Serien-RAW-Ordner, die Serien-Zielordner und die Episode-/Multi-Episode-Templates
  • Audiobooks nutzen Audiobook RAW-Ordner, Audiobook Output-Ordner, Audiobook RAW Template, Output Template (Audiobook) und Kapitel Template (Audiobook)
  • Converter nutzt Converter Raw-Ordner, Converter Ausgabe (Video), Converter Ausgabe (Audio) sowie Output-Template (Video) und Output-Template (Audio)
  • Downloads nutzen Download ZIP-Ordner

Wenn du auf NAS, USB oder mit anderen Benutzern/Gruppen schreiben willst, prüfe auch die jeweils zugehörigen Eigentümer ...-Felder.

3. Laufwerk und automatische Erkennung prüfen

Relevant:

  • Laufwerksmodus
  • Explizite Laufwerke, falls du nicht mit Auto-Discovery arbeiten willst
  • Automatische Disk-Erkennung
  • Polling Intervall (ms) im Expertenmodus
  • Laufwerk nach Rip auswerfen

Empfehlung:

  • Einzelnes Standardlaufwerk: auto
  • mehrere stabile Laufwerke oder ungewöhnliche Device-Mappings: Explizite Laufwerke

4. TMDb und Metadatenverhalten festlegen

Relevant:

  • TMDb Read Access Token
  • Film-Sprache
  • Fallback Sprache
  • Coverart-Nachladen aktiv
  • Coverart-Prüfintervall (Stunden)
  • NFO nach Encode erzeugen

Diese Einstellungen wirken direkt in Metadatensuche, Serienzuordnung, Nachpflege von Covern und im finalen Output.

5. Encode- und Review-Standards festlegen

Für Video-Workflows besonders wichtig:

  • Minimale Titellänge (Minuten)
  • TMDb Runtime-Abzug für Playlistfilter (%)
  • HandBrake Preset und HandBrake Extra Args je Medium
  • Review Audio-Sprachen (...)
  • Review UT-Sprachen (...)
  • Ausgabeformat

Praxis:

  • Minimale Titellänge filtert Bonusmaterial früh weg
  • TMDb Runtime-Abzug ... lockert bei problematischen Blu-rays die Laufzeitprüfung der Playlist-Kandidaten
  • Review-Sprachen bestimmen, welche Audio-/Untertitelspuren in der Review schon vorausgewählt sind

6. Queue-Verhalten definieren

Stelle diese vier Felder bewusst ein:

  • Parallele Jobs
  • Max. parallele Audio CD Jobs
  • Max. Encodes gesamt (medienunabhängig)
  • Audio CDs: Queue-Reihenfolge überspringen

Damit steuerst du, wie aggressiv Ripster mehrere Jobs gleichzeitig startet.

7. Optional: User-Presets und Standard-Zuordnungen

Unter Settings -> Encode-Presets kannst du:

  • eigene HandBrake-User-Presets anlegen
  • Standard-Zuordnungen für Blu-ray Film, Blu-ray Serie, DVD Film, DVD Serie setzen

Diese Defaults wirken später in der Review automatisch vorbefüllend.

8. Optional: Benachrichtigungen

Prüfe:

  • PushOver aktiviert
  • Token/User/optional Device
  • Event-Toggles wie Bei manueller Auswahl senden, Bei Rip-Start senden, Bei Erfolg senden

Danach in Settings den Button PushOver Test ausführen.

9. Optional: Automatisierung

Erst wenn die Grundkonfiguration stabil ist:

  1. Skripte anlegen und testen
  2. Skriptketten aufbauen
  3. Cronjobs aktivieren

Funktionsprüfung

Ein sinnvoller Kurztest:

  1. Disc in Ripper erkennen lassen
  2. Analyse starten
  3. TMDb-Metadaten übernehmen
  4. ggf. Playlist-/RAW-Entscheidung durchlaufen
  5. bis Bereit zum Encodieren kommen
  6. Encode starten
  7. Ergebnis in Historie prüfen

Typische Konfigurationsfehler

Symptom Häufige Ursache
Disc wird nicht erkannt Laufwerksmodus oder Auto-Erkennung passt nicht
Playlist-Auswahl wirkt unplausibel Minimale Titellänge oder TMDb Runtime-Abzug ... ist zu streng/zu locker
falsche Spuren sind in der Review vorausgewählt Review-Sprachfilter oder HandBrake-Args greifen unerwartet
Ausgabe landet am falschen Ort Profilpfade oder Templates greifen über Fallback
Queue verhält sich unerwartet Parallele Jobs, CD-Limit und Gesamtlimit widersprechen sich

Weiter

\ No newline at end of file diff --git a/site/getting-started/quickstart/index.html b/site/getting-started/quickstart/index.html index 4e2e4c3..d355366 100644 --- a/site/getting-started/quickstart/index.html +++ b/site/getting-started/quickstart/index.html @@ -1 +1 @@ - Erster Lauf - Ripster
Zum Inhalt

Erster Lauf

Dieser Ablauf führt einen typischen Disc-Job von Erkennung bis fertiger Datei durch.

1. Disc erkennen

  1. Ripper öffnen
  2. Disc einlegen
  3. auf Medium erkannt warten

Prüfen:

  • Disk-Information zeigt Device, Label und Laufwerksstatus
  • falls nicht: Laufwerk neu lesen

Relevante Settings:

  • Laufwerksmodus
  • Automatische Disk-Erkennung
  • Polling Intervall (ms)

2. Analyse starten

Aktion:

  • Analyse starten

Erwartung:

  • Status Analyse
  • danach der Metadaten-Dialog

Relevantes Setting:

  • Minimale Titellänge (Minuten) beeinflusst bereits, welche Titel/Playlists Ripster später als relevant betrachtet

3. Metadaten in TMDb bestätigen

Im Dialog:

  1. Treffer suchen oder filtern
  2. Film oder Serie auswählen
  3. bei Serien zusätzlich Disc-Nummer setzen
  4. Auswahl übernehmen

Mögliche Abzweigungen:

  • Duplikatfilm: Übernahme erzwingen oder Multipart movie
  • vorhandenes RAW: Entscheidungsdialog weiterverwenden oder neu rippen

Relevante Settings:

  • TMDb Read Access Token
  • Film-Sprache
  • Fallback Sprache

4. RAW- und Playlist-Entscheidungen

Je nach Disc-Situation geht es jetzt unterschiedlich weiter.

Normalfall

Startbereit -> Rippen -> Mediainfo-Prüfung

Vorhandenes RAW

Kein neuer Rip, sondern erst eine Entscheidung:

  • vorhandenes RAW weiterverwenden
  • RAW löschen und Rip neu starten
  • bei passenden Film-Konstellationen optional Multipart mit Orphan-RAW

Playlist- oder Titelauswahl erforderlich

Bei bestimmten Blu-ray-/DVD-Fällen erscheint Warte auf Auswahl.

Dann bestätigst du:

  • eine Playlist
  • oder einen/mehrere HandBrake-Titel

Relevante Settings:

  • Minimale Titellänge (Minuten)
  • TMDb Runtime-Abzug für Playlistfilter (%)

5. Encode-Review abschließen

Bei Bereit zum Encodieren prüfst du:

  • Titelwahl
  • Audio-Spuren
  • Untertitel
  • User-Preset oder HandBrake-Preset
  • Pre-/Post-Encode-Skripte und Ketten

Dann:

  • Encoding starten

Relevante Settings:

  • HandBrake Preset und HandBrake Extra Args je Medium
  • Review Audio-Sprachen (...)
  • Review UT-Sprachen (...)
  • Ausgabeformat
  • Standard-Zuordnungen unter Settings -> Encode-Presets

6. Encoding überwachen

Während Encodieren:

  • Fortschritt/ETA im Ripper
  • Queue-Status beobachten
  • bei Bedarf Hardware-Ansicht öffnen

Relevante Settings:

  • Parallele Jobs
  • Max. parallele Audio CD Jobs
  • Max. Encodes gesamt (medienunabhängig)
  • Hardware Monitoring aktiviert
  • Hardware Monitoring Intervall (ms)

7. Ergebnis verifizieren

Nach Fertig:

  1. Historie öffnen
  2. Jobdetail prüfen
  3. Output-Pfad und Log kontrollieren

Kontrollpunkte:

  • finale Datei liegt am erwarteten Template-Pfad
  • RAW-Ordner ist finalisiert
  • optional .nfo wurde erzeugt, falls aktiviert

Relevante Settings:

  • output_template_*
  • series_dir_* und Serien-Templates
  • generate_nfo_after_encode

8. Typische Folgeaktionen

  • falsche TMDb-Zuordnung: TMDb neu zuweisen
  • andere Trackauswahl: Review neu starten
  • erneuter Encode aus RAW: RAW neu encodieren
  • gleicher Plan erneut: Encode neu starten
  • Rip erneut versuchen: Retry Rippen
\ No newline at end of file + Erster Lauf - Ripster
Zum Inhalt

Erster Lauf

Dieser Ablauf führt einen typischen Disc-Job von Erkennung bis fertiger Datei durch.

1. Disc erkennen

  1. Ripper öffnen
  2. Disc einlegen
  3. auf Medium erkannt warten

Prüfen:

  • Disk-Information zeigt Device, Label und Laufwerksstatus
  • falls nicht: Laufwerk neu lesen

Relevante Settings:

  • Laufwerksmodus
  • Automatische Disk-Erkennung
  • Polling Intervall (ms)

2. Analyse starten

Aktion:

  • Analyse starten

Erwartung:

  • Status Analyse
  • danach der Metadaten-Dialog

Relevantes Setting:

  • Minimale Titellänge (Minuten) beeinflusst bereits, welche Titel/Playlists Ripster später als relevant betrachtet

3. Metadaten in TMDb bestätigen

Im Dialog:

  1. Treffer suchen oder filtern
  2. Film oder Serie auswählen
  3. bei Serien zusätzlich Disc-Nummer setzen
  4. Auswahl übernehmen

Mögliche Abzweigungen:

  • Duplikatfilm: Übernahme erzwingen oder Multipart movie
  • vorhandenes RAW: Entscheidungsdialog weiterverwenden oder neu rippen

Relevante Settings:

  • TMDb Read Access Token
  • Film-Sprache
  • Fallback Sprache

4. RAW- und Playlist-Entscheidungen

Je nach Disc-Situation geht es jetzt unterschiedlich weiter.

Normalfall

Startbereit -> Rippen -> Mediainfo-Prüfung

Vorhandenes RAW

Kein neuer Rip, sondern erst eine Entscheidung:

  • vorhandenes RAW weiterverwenden
  • RAW löschen und Rip neu starten
  • bei passenden Film-Konstellationen optional Multipart mit Orphan-RAW

Playlist- oder Titelauswahl erforderlich

Bei bestimmten Blu-ray-/DVD-Fällen erscheint Warte auf Auswahl.

Dann bestätigst du:

  • eine Playlist
  • oder einen/mehrere HandBrake-Titel

Relevante Settings:

  • Minimale Titellänge (Minuten)
  • TMDb Runtime-Abzug für Playlistfilter (%)

5. Encode-Review abschließen

Bei Bereit zum Encodieren prüfst du:

  • Titelwahl
  • Audio-Spuren
  • Untertitel
  • User-Preset oder HandBrake-Preset
  • Pre-/Post-Encode-Skripte und Ketten

Dann:

  • Encoding starten

Relevante Settings:

  • HandBrake Preset und HandBrake Extra Args je Medium
  • Review Audio-Sprachen (...)
  • Review UT-Sprachen (...)
  • Ausgabeformat
  • Standard-Zuordnungen unter Settings -> Encode-Presets

6. Encoding überwachen

Während Encodieren:

  • Fortschritt/ETA im Ripper
  • Queue-Status beobachten
  • bei Bedarf Hardware-Ansicht öffnen

Relevante Settings:

  • Parallele Jobs
  • Max. parallele Audio CD Jobs
  • Max. Encodes gesamt (medienunabhängig)
  • Hardware Monitoring aktiviert
  • Hardware Monitoring Intervall (ms)

7. Ergebnis verifizieren

Nach Fertig:

  1. Historie öffnen
  2. Jobdetail prüfen
  3. Output-Pfad und Log kontrollieren

Kontrollpunkte:

  • finale Datei liegt am erwarteten Template-Pfad
  • RAW-Ordner ist finalisiert
  • optional .nfo wurde erzeugt, falls aktiviert

Relevante Settings:

  • Film-Output-Templates oder Serien-Templates
  • Serien-Ordner (Blu-ray) und Serien-Ordner (DVD) plus die Episode-/Multi-Episode-Templates
  • NFO nach Encode erzeugen

8. Typische Folgeaktionen

  • falsche TMDb-Zuordnung: TMDb neu zuweisen
  • andere Trackauswahl: Review neu starten
  • erneuter Encode aus RAW: RAW neu encodieren
  • gleicher Plan erneut: Encode neu starten
  • Rip erneut versuchen: Retry Rippen
\ No newline at end of file diff --git a/site/gui/audiobooks/index.html b/site/gui/audiobooks/index.html index 7464ed1..d61d8e0 100644 --- a/site/gui/audiobooks/index.html +++ b/site/gui/audiobooks/index.html @@ -1 +1 @@ - Audiobooks - Ripster
Zum Inhalt

Audiobooks

Die Seite Audiobooks ist der spezialisierte Workflow für Audible-*.aax-Dateien.

Seitenstruktur

Die Oberfläche besteht aus zwei Hauptbereichen:

  1. Audiobooks Upload
  2. Audiobook Jobs

1. Audiobooks Upload

Der Upload akzeptiert ausschließlich .aax.

Bedienung

  • Datei auswählen oder per Drag-and-Drop ablegen
  • Upload starten
  • Auswahl entfernen oder laufenden Upload abbrechen

Während des Uploads zeigt die UI:

  • Prozentfortschritt
  • übertragene und gesamte Bytes
  • Statusmeldung

Ablauf nach erfolgreichem Upload

  • die AAX-Datei wird geprüft
  • Ripster versucht Metadata, Kapitel und Activation-Bytes-Kontext aufzubauen
  • ein Audiobook-Job wird angelegt
  • der Job startet direkt oder wird in die Queue eingereiht

2. Audiobook Jobs

Die Seite zeigt aktive Jobs. Abgeschlossene Jobs findest du in der Historie.

Ein Job kann eingeklappt oder ausgeklappt werden und zeigt:

  • Titel, Autor, Sprecher, Jahr
  • Kapitelanzahl
  • Fortschritt und ETA
  • bei Split-Ausgabe den Kapitelstatus

Konfigurierbare Job-Parameter

Im ausgeklappten Job kannst du setzen:

  • Ausgabeformat m4b, mp3 oder flac
  • formatspezifische Optionen
  • Kapitelnamen
  • Pre-Encode-Skripte und -Ketten
  • Post-Encode-Skripte und -Ketten

Formatverhalten

  • m4b: eine Datei mit Kapitelmarken
  • mp3: eine Datei pro Kapitel
  • flac: eine Datei pro Kapitel

Wenn du mp3 oder flac wählst, zeigt die UI zusätzlich eine Kapitel-Status-Tabelle.

Activation Bytes

Wenn Ripster für eine Datei keine Activation Bytes verwenden kann, wird im Workflow eine manuelle Eingabe nötig.

Wichtig:

  • die Bytes werden lokal gecacht
  • derselbe AAX-Hash muss dann später nicht erneut manuell eingegeben werden
  • der Expertenblock in Settings zeigt bekannte Cache-Einträge an

Relevante Settings

  • raw_dir_audiobook
  • movie_dir_audiobook
  • raw_dir_audiobook_owner
  • movie_dir_audiobook_owner
  • audiobook_raw_template
  • output_template_audiobook
  • output_chapter_template_audiobook
  • ffprobe_command
  • ffmpeg_command

So wirken die Settings im Alltag

  • audiobook_raw_template bestimmt den Namen des AAX-RAW-Ordners
  • output_template_audiobook bestimmt die Einzeldatei für m4b
  • output_chapter_template_audiobook bestimmt Zielstruktur und Dateinamen für mp3/flac
  • ffprobe_command liest Kapitel und Metadaten
  • ffmpeg_command erzeugt die finalen Dateien

Queue und Laufzeit

Audiobook-Jobs nutzen dieselbe globale Pipeline wie die anderen Bereiche.

Relevante Settings:

  • Parallele Jobs
  • Max. Encodes gesamt (medienunabhängig)

Typische Fehlerbilder

  • Upload wird abgelehnt: Datei ist keine gültige *.aax
  • Analyse schlägt fehl: ffprobe ist nicht erreichbar
  • Encode schlägt fehl: ffmpeg ist nicht erreichbar
  • Ausgabe landet unerwartet: Templates oder Zielpfade passen nicht zur gewünschten Struktur
\ No newline at end of file + Audiobooks - Ripster
Zum Inhalt

Audiobooks

Die Seite Audiobooks ist der spezialisierte Workflow für Audible-*.aax-Dateien.

Seitenstruktur

Die Oberfläche besteht aus zwei Hauptbereichen:

  1. Audiobooks Upload
  2. Audiobook Jobs

1. Audiobooks Upload

Der Upload akzeptiert ausschließlich .aax.

Bedienung

  • Datei auswählen oder per Drag-and-Drop ablegen
  • Upload starten
  • Auswahl entfernen oder laufenden Upload abbrechen

Während des Uploads zeigt die UI:

  • Prozentfortschritt
  • übertragene und gesamte Bytes
  • Statusmeldung

Ablauf nach erfolgreichem Upload

  • die AAX-Datei wird geprüft
  • Ripster versucht Metadata, Kapitel und Activation-Bytes-Kontext aufzubauen
  • ein Audiobook-Job wird angelegt
  • der Job startet direkt oder wird in die Queue eingereiht

2. Audiobook Jobs

Die Seite zeigt aktive Jobs. Abgeschlossene Jobs findest du in der Historie.

Ein Job kann eingeklappt oder ausgeklappt werden und zeigt:

  • Titel, Autor, Sprecher, Jahr
  • Kapitelanzahl
  • Fortschritt und ETA
  • bei Split-Ausgabe den Kapitelstatus

Konfigurierbare Job-Parameter

Im ausgeklappten Job kannst du setzen:

  • Ausgabeformat m4b, mp3 oder flac
  • formatspezifische Optionen
  • Kapitelnamen
  • Pre-Encode-Skripte und -Ketten
  • Post-Encode-Skripte und -Ketten

Formatverhalten

  • m4b: eine Datei mit Kapitelmarken
  • mp3: eine Datei pro Kapitel
  • flac: eine Datei pro Kapitel

Wenn du mp3 oder flac wählst, zeigt die UI zusätzlich eine Kapitel-Status-Tabelle.

Activation Bytes

Wenn Ripster für eine Datei keine Activation Bytes verwenden kann, wird im Workflow eine manuelle Eingabe nötig.

Wichtig:

  • die Bytes werden lokal gecacht
  • derselbe AAX-Hash muss dann später nicht erneut manuell eingegeben werden
  • der Expertenblock in Settings zeigt bekannte Cache-Einträge an

Relevante Settings

  • Audiobook RAW-Ordner
  • Audiobook Output-Ordner
  • Eigentümer Audiobook RAW-Ordner
  • Eigentümer Audiobook Output-Ordner
  • Audiobook RAW Template
  • Output Template (Audiobook)
  • Kapitel Template (Audiobook)
  • FFprobe Kommando
  • FFmpeg Kommando

So wirken die Settings im Alltag

  • Audiobook RAW Template bestimmt den Namen des AAX-RAW-Ordners
  • Output Template (Audiobook) bestimmt die Einzeldatei für m4b
  • Kapitel Template (Audiobook) bestimmt Zielstruktur und Dateinamen für mp3/flac
  • FFprobe Kommando liest Kapitel und Metadaten
  • FFmpeg Kommando erzeugt die finalen Dateien

Queue und Laufzeit

Audiobook-Jobs nutzen dieselbe globale Pipeline wie die anderen Bereiche.

Relevante Settings:

  • Parallele Jobs
  • Max. Encodes gesamt (medienunabhängig)

Typische Fehlerbilder

  • Upload wird abgelehnt: Datei ist keine gültige *.aax
  • Analyse schlägt fehl: ffprobe ist nicht erreichbar
  • Encode schlägt fehl: ffmpeg ist nicht erreichbar
  • Ausgabe landet unerwartet: Templates oder Zielpfade passen nicht zur gewünschten Struktur
\ No newline at end of file diff --git a/site/gui/converter/index.html b/site/gui/converter/index.html index e8ac15f..8eaaf30 100644 --- a/site/gui/converter/index.html +++ b/site/gui/converter/index.html @@ -1 +1 @@ - Converter - Ripster
Zum Inhalt

Converter

Die Seite Converter verarbeitet vorhandene Dateien ohne Laufwerks-Rip. Sie ist für Video-, Audio- und ISO-Dateien gedacht, die bereits auf dem System liegen oder hochgeladen werden.

Betriebsmodell

Der Converter arbeitet auf dem Eingangspfad converter_raw_dir.

Dort landen:

  • Uploads
  • neu angelegte Ordner
  • umbenannte oder verschobene Dateien
  • alle Dateien, aus denen später Converter-Jobs entstehen

Wichtig:

  • Upload erzeugt nicht automatisch einen Job
  • die Joberstellung erfolgt bewusst aus der Explorer-Auswahl

Datei-Explorer

Der Explorer zeigt den kompletten Baum unter converter_raw_dir.

Aktionen:

Aktion Wirkung
Upload schreibt neue Dateien in den Converter-RAW-Baum
Ordner erstellen legt Unterordner an
Umbenennen benennt Datei oder Ordner um
Verschieben verschiebt Einträge innerhalb des Raw-Baums
Löschen entfernt Datei oder Ordner dauerhaft
Scannen synchronisiert Dateisystem und Converter-Datenbank

Upload- und Scan-Regeln

  • Dateiendungen müssen in Erlaubte Datei-Endungen enthalten sein
  • neue Dateien erscheinen sofort nach manuellem Scan
  • mit Polling auch automatisch

Relevante Settings:

  • Erlaubte Datei-Endungen
  • Auto-Scan (Polling)
  • Polling-Intervall (Sekunden)

Joberstellung aus Explorer-Auswahl

Es gibt zwei Audio-Strategien:

  1. Ein Job pro Datei
  2. Gemeinsamer Job (Audio)

Verhalten:

  • Video und ISO werden immer als Einzeljobs angelegt
  • Audio kann als gemeinsamer Album-/Ordner-Job erzeugt werden

Shared-Audio-Job:

  • hält mehrere inputPaths
  • kann vor dem Start erweitert oder reduziert werden

Job-Konfiguration

Vor dem Start je Job einstellbar:

  • converterMediaType
  • outputFormat
  • Metadaten
  • Track-/Titelwahl bei Video/ISO
  • User-Preset und HandBrake-Preset bei Video
  • Pre-/Post-Encode-Skripte und Ketten

Spezifika:

  • Video/ISO durchlaufen eine Review ähnlich zum Disc-Flow
  • Audio wird direkt über Format und Audio-Optionen konfiguriert

Ausgabe-Pfade

Video / ISO

  • Zielordner: converter_movie_dir
  • Dateiname: Output-Template (Video)
  • Endung: aus dem gewählten Ausgabeformat

Audio

  • Zielordner: converter_audio_dir
  • Dateiname/Ordner: Output-Template (Audio)
  • bei Shared- oder Folder-Jobs entsteht eine Ordnerstruktur mit mehreren Track-Dateien

Relevante Settings:

  • converter_movie_dir
  • converter_audio_dir
  • converter_output_template_video
  • converter_output_template_audio
  • converter_movie_dir_owner
  • converter_audio_dir_owner

Queue und Start

Converter-Jobs laufen über dieselbe globale Pipeline-Queue wie Ripper und Audiobooks.

Das bedeutet:

  • sofortiger Start, wenn Limits frei sind
  • sonst Einreihung in die Warteschlange

Relevante Settings:

  • Parallele Jobs
  • Max. Encodes gesamt (medienunabhängig)

Typische Einsatzfälle

  • vorhandene MKV/MP4-Dateien mit neuem Preset encodieren
  • ISO-Dateien in einen Video-Workflow überführen
  • Musikdateien gesammelt in einen Audio-Ordner-Job packen
  • Medien auf anderem Storage per Upload oder Dateibaum vorbereiten

Abgrenzung zu Audiobooks

  • Converter: beliebige Audio-, Video- und ISO-Dateien
  • Audiobooks: spezialisierter AAX-Workflow mit Activation Bytes, Kapitelmetadaten und Kapiteltemplates
\ No newline at end of file + Converter - Ripster
Zum Inhalt

Converter

Die Seite Converter verarbeitet vorhandene Dateien ohne Laufwerks-Rip. Sie ist für Video-, Audio- und ISO-Dateien gedacht, die bereits auf dem System liegen oder hochgeladen werden.

Betriebsmodell

Der Converter arbeitet auf dem in Settings festgelegten Converter Raw-Ordner.

Dort landen:

  • Uploads
  • neu angelegte Ordner
  • umbenannte oder verschobene Dateien
  • alle Dateien, aus denen später Converter-Jobs entstehen

Wichtig:

  • Upload erzeugt nicht automatisch einen Job
  • die Joberstellung erfolgt bewusst aus der Explorer-Auswahl

Datei-Explorer

Der Explorer zeigt den kompletten Baum unter Converter Raw-Ordner.

Aktionen:

Aktion Wirkung
Upload schreibt neue Dateien in den Converter-RAW-Baum
Ordner erstellen legt Unterordner an
Umbenennen benennt Datei oder Ordner um
Verschieben verschiebt Einträge innerhalb des Raw-Baums
Löschen entfernt Datei oder Ordner dauerhaft
Scannen synchronisiert Dateisystem und Converter-Datenbank

Upload- und Scan-Regeln

  • Dateiendungen müssen in Erlaubte Datei-Endungen enthalten sein
  • neue Dateien erscheinen sofort nach manuellem Scan
  • mit Polling auch automatisch

Relevante Settings:

  • Erlaubte Datei-Endungen
  • Auto-Scan (Polling)
  • Polling-Intervall (Sekunden)

Joberstellung aus Explorer-Auswahl

Es gibt zwei Audio-Strategien:

  1. Ein Job pro Datei
  2. Gemeinsamer Job (Audio)

Verhalten:

  • Video und ISO werden immer als Einzeljobs angelegt
  • Audio kann als gemeinsamer Album-/Ordner-Job erzeugt werden

Shared-Audio-Job:

  • hält mehrere inputPaths
  • kann vor dem Start erweitert oder reduziert werden

Job-Konfiguration

Vor dem Start je Job einstellbar:

  • converterMediaType
  • outputFormat
  • Metadaten
  • Track-/Titelwahl bei Video/ISO
  • User-Preset und HandBrake-Preset bei Video
  • Pre-/Post-Encode-Skripte und Ketten

Spezifika:

  • Video/ISO durchlaufen eine Review ähnlich zum Disc-Flow
  • Audio wird direkt über Format und Audio-Optionen konfiguriert

Ausgabe-Pfade

Video / ISO

  • Zielordner: Converter Ausgabe (Video)
  • Dateiname: Output-Template (Video)
  • Endung: aus dem gewählten Ausgabeformat

Audio

  • Zielordner: Converter Ausgabe (Audio)
  • Dateiname/Ordner: Output-Template (Audio)
  • bei Shared- oder Folder-Jobs entsteht eine Ordnerstruktur mit mehreren Track-Dateien

Relevante Settings:

  • Converter Ausgabe (Video)
  • Converter Ausgabe (Audio)
  • Output-Template (Video)
  • Output-Template (Audio)
  • Eigentümer Converter Video Output-Ordner
  • Eigentümer Converter Audio Output-Ordner

Queue und Start

Converter-Jobs laufen über dieselbe globale Pipeline-Queue wie Ripper und Audiobooks.

Das bedeutet:

  • sofortiger Start, wenn Limits frei sind
  • sonst Einreihung in die Warteschlange

Relevante Settings:

  • Parallele Jobs
  • Max. Encodes gesamt (medienunabhängig)

Typische Einsatzfälle

  • vorhandene MKV/MP4-Dateien mit neuem Preset encodieren
  • ISO-Dateien in einen Video-Workflow überführen
  • Musikdateien gesammelt in einen Audio-Ordner-Job packen
  • Medien auf anderem Storage per Upload oder Dateibaum vorbereiten

Abgrenzung zu Audiobooks

  • Converter: beliebige Audio-, Video- und ISO-Dateien
  • Audiobooks: spezialisierter AAX-Workflow mit Activation Bytes, Kapitelmetadaten und Kapiteltemplates
\ No newline at end of file diff --git a/site/gui/history/index.html b/site/gui/history/index.html index 5c96ecb..1a91bc0 100644 --- a/site/gui/history/index.html +++ b/site/gui/history/index.html @@ -1 +1 @@ - Historie - Ripster
Zum Inhalt

Historie

Historie ist die Kontroll- und Nachbearbeitungsoberfläche für alle bereits angelegten Jobs.

Hauptansicht

Filter und Arbeitsmittel:

  • Suche
  • Statusfilter
  • Mediumfilter
  • Sortierung
  • Listen-/Grid-Layout

Jeder Eintrag zeigt auf einen Blick:

  • Titel, Jahr, Poster oder Cover
  • Status und Zeitstempel
  • RAW- und Output-Verfügbarkeit
  • Medien- und Containerhinweise

Detaildialog

Der Detaildialog bündelt:

  • Metadaten
  • Jobstatus und Fehlertexte
  • RAW- und Output-Pfade
  • Encode-Plan und Trackauswahl
  • ausgeführte Kommandos
  • Prozesslog
  • verfügbare Folgeaktionen

Bei Seriencontainern und Multipart-Jobs wird container- und child-orientiert dargestellt.

Nachbearbeitungsaktionen

Aktion Typischer Einsatz Technische Wirkung
TMDb neu zuweisen falsches Match, anderer Film, andere Staffel Metadaten werden neu geschrieben; Poster, Jahr und ggf. Ordnername werden best effort aktualisiert
Review neu starten neue Track-/Titelbewertung nötig Review wird aus vorhandenem RAW neu aufgebaut
RAW neu encodieren neuer Encode mit vorhandenem RAW startet Encode ohne neuen Disc-Rip
Encode neu starten gleiche bestätigte Auswahl erneut fahren letzter bestätigter Plan wird geladen
Retry Rippen Rip oder Analyse erneut anstoßen neuer Rip-Lauf inklusive RAW-Phase

Relevante Settings:

  • handbrake_restart_delete_incomplete_output
  • generate_nfo_after_encode

Löschaktionen und Vorschau

Vor dem endgültigen Löschen zeigt Ripster eine Vorschau mit:

  • RAW-Kandidaten
  • Movie-/Episode-Kandidaten
  • Related-Scope für Container, Kinder und verbundene Jobs

Wichtige Punkte:

  • Pfade sind selektierbar
  • bei mehreren RAW-Kandidaten muss mindestens ein RAW-Pfad gewählt werden
  • Schutzlogik verhindert Löschungen außerhalb erlaubter Root-Verzeichnisse

Serien- und Multipart-Sicht

Serien

  • Container zeigt den aggregierten Zustand der Child-Jobs
  • Disk- und Episodenaktionen können child-spezifisch ausgeführt werden
  • Im Ripper öffnen hilft bei offenen Reviews

Multipart

  • gemeinsamer Container mit Disc-Childs
  • Disc-Nummern bleiben pro Child nachvollziehbar
  • Delete-Preview kann Related-Pfade gemeinsam auflösen

Logs sinnvoll nutzen

  • Tail laden für schnellen Fehlerkontext
  • Vollständiges Log laden für tiefe Analyse

Empfehlung:

  1. erst den Tail prüfen
  2. dann die Stelle im Log eingrenzen
  3. anschließend die passende Wiederanlauf-Aktion wählen
\ No newline at end of file + Historie - Ripster
Zum Inhalt

Historie

Historie ist die Kontroll- und Nachbearbeitungsoberfläche für alle bereits angelegten Jobs.

Hauptansicht

Filter und Arbeitsmittel:

  • Suche
  • Statusfilter
  • Mediumfilter
  • Sortierung
  • Listen-/Grid-Layout

Jeder Eintrag zeigt auf einen Blick:

  • Titel, Jahr, Poster oder Cover
  • Status und Zeitstempel
  • RAW- und Output-Verfügbarkeit
  • Medien- und Containerhinweise

Detaildialog

Der Detaildialog bündelt:

  • Metadaten
  • Jobstatus und Fehlertexte
  • RAW- und Output-Pfade
  • Encode-Plan und Trackauswahl
  • ausgeführte Kommandos
  • Prozesslog
  • verfügbare Folgeaktionen

Bei Seriencontainern und Multipart-Jobs wird container- und child-orientiert dargestellt.

Nachbearbeitungsaktionen

Aktion Typischer Einsatz Technische Wirkung
TMDb neu zuweisen falsches Match, anderer Film, andere Staffel Metadaten werden neu geschrieben; Poster, Jahr und ggf. Ordnername werden best effort aktualisiert
Review neu starten neue Track-/Titelbewertung nötig Review wird aus vorhandenem RAW neu aufgebaut
RAW neu encodieren neuer Encode mit vorhandenem RAW startet Encode ohne neuen Disc-Rip
Encode neu starten gleiche bestätigte Auswahl erneut fahren letzter bestätigter Plan wird geladen
Retry Rippen Rip oder Analyse erneut anstoßen neuer Rip-Lauf inklusive RAW-Phase

Relevante Settings:

  • Encode-Neustart: unvollständige Ausgabe löschen
  • NFO nach Encode erzeugen

Löschaktionen und Vorschau

Vor dem endgültigen Löschen zeigt Ripster eine Vorschau mit:

  • RAW-Kandidaten
  • Movie-/Episode-Kandidaten
  • Related-Scope für Container, Kinder und verbundene Jobs

Wichtige Punkte:

  • Pfade sind selektierbar
  • bei mehreren RAW-Kandidaten muss mindestens ein RAW-Pfad gewählt werden
  • Schutzlogik verhindert Löschungen außerhalb erlaubter Root-Verzeichnisse

Serien- und Multipart-Sicht

Serien

  • Container zeigt den aggregierten Zustand der Child-Jobs
  • Disk- und Episodenaktionen können child-spezifisch ausgeführt werden
  • Im Ripper öffnen hilft bei offenen Reviews

Multipart

  • gemeinsamer Container mit Disc-Childs
  • Disc-Nummern bleiben pro Child nachvollziehbar
  • Delete-Preview kann Related-Pfade gemeinsam auflösen

Logs sinnvoll nutzen

  • Tail laden für schnellen Fehlerkontext
  • Vollständiges Log laden für tiefe Analyse

Empfehlung:

  1. erst den Tail prüfen
  2. dann die Stelle im Log eingrenzen
  3. anschließend die passende Wiederanlauf-Aktion wählen
\ No newline at end of file diff --git a/site/gui/settings/index.html b/site/gui/settings/index.html index 1cb1981..fa07587 100644 --- a/site/gui/settings/index.html +++ b/site/gui/settings/index.html @@ -1 +1 @@ - Settings - Ripster
Zum Inhalt

Settings

Die Seite Settings ist das Kontrollzentrum für Laufzeitverhalten, Standardwerte und Automatisierung. Alles, was spätere Jobs automatisch tun oder vorschlagen, wird hier vorbereitet.

Tab-Überblick

Tab Zweck
Konfiguration alle fachlichen Einstellungen aus der GUI
Scripte einzelne Bash-Skripte anlegen, testen und sortieren
Skriptketten mehrstufige Abläufe aus Skript- und Warte-Schritten bauen
Encode-Presets eigene Video-Presets und Standard-Zuordnungen pflegen
Cronjobs zeitgesteuerte Ausführung von Skripten oder Ketten

Tab Konfiguration

Bedienlogik

  1. Felder ändern
  2. Änderungen speichern klicken
  3. erst dann gelten die neuen Werte für künftige Starts, Reviews oder Scheduler

Ausnahmen:

  • Expertenmodus wird sofort gespeichert
  • Buttons wie PushOver Test, Coverarts prüfen oder der MakeMKV-Betakey-Import lösen direkte Aktionen aus

Toolbar-Aktionen

  • Änderungen speichern: schreibt nur geänderte Felder
  • Änderungen verwerfen: setzt den Formularzustand zurück
  • Neu laden: lädt Schema und Werte neu
  • PushOver Test: sendet eine Testnachricht mit den aktuellen PushOver-Werten
  • Coverarts prüfen: startet den Coverart-Recovery-Lauf sofort

Was die Kategorien im Alltag steuern

Benachrichtigungen

Hier steuerst du zwei Dinge:

  • ob und wohin Ripster PushOver-Nachrichten sendet
  • bei welchen Ereignissen Ripster überhaupt benachrichtigt

Wichtig:

  • PushOver aktiviert ist der Master-Schalter
  • Bei manueller Auswahl senden ist besonders relevant für Playlist-, RAW- oder Titelentscheidungen
  • der Expertenmodus blendet zusätzliche technische Felder in der gesamten Settings-Seite ein

Laufwerk

Diese Kategorie beeinflusst, wie Ripster optische Laufwerke findet und überwacht.

Typische Fragen:

  • Soll Ripster Laufwerke automatisch erkennen?
  • Soll ein bestimmtes Laufwerk fest an einen MakeMKV-Index gebunden werden?
  • Soll das Laufwerk nach erfolgreichem Rip automatisch auswerfen?

Das ist vor allem wichtig bei:

  • mehreren Laufwerken
  • USB-SATA-Adaptern
  • Hosts mit instabilen Device-Namen

Logging

Diese Felder ändern nicht die Job-Logs auf Platte, sondern die Ausgabe im Server-Terminal.

Damit steuerst du zum Beispiel:

  • ob start.sh oder ein Terminal-Run sehr gesprächig sein darf
  • ob HTTP-Requests im Terminal sichtbar sein sollen
  • ob DEBUG/INFO/WARN/ERROR dort mitlaufen

Metadaten

Hier legst du fest, wie Ripster mit TMDb, Covern und NFO-Dateien umgeht.

Besonders wichtig:

  • ohne TMDb Read Access Token funktionieren Film-/Seriensuche und Neu-Zuordnung nur eingeschränkt oder gar nicht
  • Film-Sprache und Fallback Sprache bestimmen, welche Titel, Beschreibungen und Staffelinformationen bevorzugt werden
  • Coverart-Nachladen aktiv hilft bei nachträglich fehlenden Postern/Covern

Monitoring

Steuert das Hardware-Monitoring für:

  • CPU
  • RAM
  • GPU
  • Speicherstände

Diese Werte erscheinen:

  • kompakt im Ripper
  • ausführlich in der Seite Hardware

Pfade

Hier legst du fest, wohin Ripster schreibt und wie Dateien benannt werden.

Die Felder steuern:

  • RAW-Verzeichnisse pro Medium
  • Zielordner für Filme, Serien, CDs, Audiobooks, Converter und Downloads
  • Eigentümer per user:gruppe
  • Templates für Datei- und Ordnernamen

Praxisbeispiele:

  • Serien getrennt von Filmen ablegen
  • RAW auf große HDD, Final-Output auf NAS
  • Audiobooks kapitelweise in Unterordnern strukturieren

Converter

Diese Kategorie wirkt nur auf die Seite Converter.

Sie steuert:

  • welche Dateiendungen der Upload und der Verzeichnisscan akzeptieren
  • ob der Converter-RAW-Baum automatisch neu gescannt wird
  • wie häufig dieses Polling läuft

Tools

Diese Kategorie entscheidet über das technische Verhalten der eigentlichen Pipeline.

Dazu gehören:

  • Pfade/Befehle für externe Tools
  • MakeMKV-Filter und Rip-Modi
  • HandBrake-Presets und Extra-Args
  • Vorauswahl von Audio-/Untertitelsprachen in der Review
  • Ausgabeformate
  • Queue- und Parallelitätsregeln
  • Timeout für Script-Tests

Für die Nutzer-Workflows besonders relevant:

  • Minimale Titellänge (Minuten)
  • TMDb Runtime-Abzug für Playlistfilter (%)
  • HandBrake Preset und HandBrake Extra Args
  • Review Audio-Sprachen (...)
  • Review UT-Sprachen (...)
  • Parallele Jobs
  • Max. parallele Audio CD Jobs
  • Max. Encodes gesamt (medienunabhängig)

Kategorie Pfade: Besondere Interaktion

Die Pfad-Kategorie hat eine eigene Darstellung:

  • Tabelle Effektive Pfade: zeigt die aktuell wirklich verwendeten Laufzeitpfade inklusive Fallbacks
  • Accordion pro Bereich wie Blu-ray, DVD, CD / Audio, Audiobook, Converter, Downloads, Logs
  • Owner-Felder (*_owner) erscheinen direkt beim zugehörigen Pfad
  • Owner-Felder sind deaktiviert, solange der zugehörige Pfad leer ist

Spezial-Editoren

  • drive_devices: Editor für mehrere Laufwerke mit Pfad und MakeMKV-Index
  • external_storage_paths: Liste aus Anzeigename und Pfad für die Speicheranzeige
  • converter_scan_extensions: Auswahl der erlaubten Upload-/Scan-Endungen
  • makemkv_registration_key: inkl. Betakey-Hinweis und Übernahme-Button

Wichtig für Reviews und Workflows

Die Seite Settings bestimmt direkt, was Nutzer später im Workflow sehen:

  • Playlist-Kandidaten werden durch Minimale Titellänge und TMDb Runtime-Abzug ... beeinflusst
  • Audio-/Untertitel-Vorauswahlen in Bereit zum Encodieren hängen an den Review-Sprachfeldern
  • automatisch vorgeschlagene Presets hängen an den Standard-Zuordnungen unter Encode-Presets
  • Queue-Verhalten im Ripper hängt an den drei Parallelitätsfeldern plus Audio CDs: Queue-Reihenfolge überspringen

Tab Scripte

Funktionen:

  • Skript anlegen
  • Skript bearbeiten
  • Skript löschen
  • Skript testen
  • Reihenfolge per Drag-and-Drop ändern
  • Favorit markieren

Das Testergebnis zeigt:

  • Erfolg oder Fehler
  • Exit-Code
  • Dauer
  • stdout/stderr
  • Timeout, falls Script-Test Timeout (ms) greift

Tab Skriptketten

Skriptketten bestehen aus Schritten:

  • Skript
  • Warten (Sekunden)

Funktionen:

  • Ketten anlegen, bearbeiten, löschen
  • Reihenfolge der Ketten ändern
  • einzelne Ketten testen
  • Schritte innerhalb der Kette per Drag-and-Drop sortieren

Wichtig:

  • dieselben Skripte können sowohl in Jobs als auch in Ketten und Cronjobs wiederverwendet werden

Tab Encode-Presets

Hier werden Video-Standards für Disc- und Converter-Workflows verwaltet.

Standard-Zuordnungen

Es gibt vier feste Slots:

  • Blu-ray Film
  • Blu-ray Serie
  • DVD Film
  • DVD Serie

Wenn für einen Workflow hier ein Default gesetzt ist, erscheint dieses User-Preset später in der Review bereits vorausgewählt.

Preset-Inhalt

Ein User-Preset besteht aus:

  • Name
  • Medientyp (all, bluray, dvd)
  • HandBrake-Preset
  • Extra Args
  • optionaler Beschreibung

Tab Cronjobs

Funktionen:

  • Cronjob anlegen, bearbeiten, löschen
  • Cron-Ausdruck live validieren
  • Quelle wählen: Skript oder Skriptkette
  • Aktiv- und PushOver-Status pro Job setzen
  • Jetzt ausführen
  • Lauf-Logs öffnen

Die Runtime-Aktivitäten der laufenden Cronjobs werden zusätzlich live angezeigt.

Expertenbereich: Activation Bytes Cache

Dieser Block wird nur im Expertenmodus angezeigt.

Er zeigt lokal bekannte AAX-Activation-Bytes mit:

  • Prüfsumme
  • Activation Bytes
  • Speicherzeitpunkt

Das hilft bei Audiobook-Workflows, wenn dieselbe Datei oder derselbe Hash später erneut auftaucht.

Validierung von Template-Feldern

Template-Felder akzeptieren nur:

  • Buchstaben und Ziffern
  • Leerzeichen
  • _ und -
  • Platzhalter in {...} oder ${...}
  • / für Unterordner

Damit verhindert Ripster fehlerhafte Dateinamen schon beim Speichern.

Siehe auch

\ No newline at end of file + Settings - Ripster
Zum Inhalt

Settings

Die Seite Settings ist das Kontrollzentrum für Laufzeitverhalten, Standardwerte und Automatisierung. Alles, was spätere Jobs automatisch tun oder vorschlagen, wird hier vorbereitet.

Tab-Überblick

Tab Zweck
Konfiguration alle fachlichen Einstellungen aus der GUI
Scripte einzelne Bash-Skripte anlegen, testen und sortieren
Skriptketten mehrstufige Abläufe aus Skript- und Warte-Schritten bauen
Encode-Presets eigene Video-Presets und Standard-Zuordnungen pflegen
Cronjobs zeitgesteuerte Ausführung von Skripten oder Ketten

Tab Konfiguration

Bedienlogik

  1. Felder ändern
  2. Änderungen speichern klicken
  3. erst dann gelten die neuen Werte für künftige Starts, Reviews oder Scheduler

Ausnahmen:

  • Expertenmodus wird sofort gespeichert
  • Buttons wie PushOver Test, Coverarts prüfen oder der MakeMKV-Betakey-Import lösen direkte Aktionen aus

Toolbar-Aktionen

  • Änderungen speichern: schreibt nur geänderte Felder
  • Änderungen verwerfen: setzt den Formularzustand zurück
  • Neu laden: lädt Schema und Werte neu
  • PushOver Test: sendet eine Testnachricht mit den aktuellen PushOver-Werten
  • Coverarts prüfen: startet den Coverart-Recovery-Lauf sofort

Was die Kategorien im Alltag steuern

Benachrichtigungen

Hier steuerst du zwei Dinge:

  • ob und wohin Ripster PushOver-Nachrichten sendet
  • bei welchen Ereignissen Ripster überhaupt benachrichtigt

Wichtig:

  • PushOver aktiviert ist der Master-Schalter
  • Bei manueller Auswahl senden ist besonders relevant für Playlist-, RAW- oder Titelentscheidungen
  • der Expertenmodus blendet zusätzliche technische Felder in der gesamten Settings-Seite ein

Laufwerk

Diese Kategorie beeinflusst, wie Ripster optische Laufwerke findet und überwacht.

Typische Fragen:

  • Soll Ripster Laufwerke automatisch erkennen?
  • Soll ein bestimmtes Laufwerk fest an einen MakeMKV-Index gebunden werden?
  • Soll das Laufwerk nach erfolgreichem Rip automatisch auswerfen?

Das ist vor allem wichtig bei:

  • mehreren Laufwerken
  • USB-SATA-Adaptern
  • Hosts mit instabilen Device-Namen

Logging

Diese Felder ändern nicht die Job-Logs auf Platte, sondern die Ausgabe im Server-Terminal.

Damit steuerst du zum Beispiel:

  • ob start.sh oder ein Terminal-Run sehr gesprächig sein darf
  • ob HTTP-Requests im Terminal sichtbar sein sollen
  • ob DEBUG/INFO/WARN/ERROR dort mitlaufen

Metadaten

Hier legst du fest, wie Ripster mit TMDb, Covern und NFO-Dateien umgeht.

Besonders wichtig:

  • ohne TMDb Read Access Token funktionieren Film-/Seriensuche und Neu-Zuordnung nur eingeschränkt oder gar nicht
  • Film-Sprache und Fallback Sprache bestimmen, welche Titel, Beschreibungen und Staffelinformationen bevorzugt werden
  • Coverart-Nachladen aktiv hilft bei nachträglich fehlenden Postern/Covern

Monitoring

Steuert das Hardware-Monitoring für:

  • CPU
  • RAM
  • GPU
  • Speicherstände

Diese Werte erscheinen:

  • kompakt im Ripper
  • ausführlich in der Seite Hardware

Pfade

Hier legst du fest, wohin Ripster schreibt und wie Dateien benannt werden.

Die Felder steuern:

  • RAW-Verzeichnisse pro Medium
  • Zielordner für Filme, Serien, CDs, Audiobooks, Converter und Downloads
  • Eigentümer per user:gruppe
  • Templates für Datei- und Ordnernamen

Praxisbeispiele:

  • Serien getrennt von Filmen ablegen
  • RAW auf große HDD, Final-Output auf NAS
  • Audiobooks kapitelweise in Unterordnern strukturieren

Converter

Diese Kategorie wirkt nur auf die Seite Converter.

Sie steuert:

  • welche Dateiendungen der Upload und der Verzeichnisscan akzeptieren
  • ob der Converter-RAW-Baum automatisch neu gescannt wird
  • wie häufig dieses Polling läuft

Tools

Diese Kategorie entscheidet über das technische Verhalten der eigentlichen Pipeline.

Dazu gehören:

  • Pfade/Befehle für externe Tools
  • MakeMKV-Filter und Rip-Modi
  • HandBrake-Presets und Extra-Args
  • Vorauswahl von Audio-/Untertitelsprachen in der Review
  • Ausgabeformate
  • Queue- und Parallelitätsregeln
  • Timeout für Script-Tests

Für die Nutzer-Workflows besonders relevant:

  • Minimale Titellänge (Minuten)
  • TMDb Runtime-Abzug für Playlistfilter (%)
  • HandBrake Preset und HandBrake Extra Args
  • Review Audio-Sprachen (...)
  • Review UT-Sprachen (...)
  • Parallele Jobs
  • Max. parallele Audio CD Jobs
  • Max. Encodes gesamt (medienunabhängig)

Kategorie Pfade: Besondere Interaktion

Die Pfad-Kategorie hat eine eigene Darstellung:

  • Tabelle Effektive Pfade: zeigt die aktuell wirklich verwendeten Laufzeitpfade inklusive Fallbacks
  • Accordion pro Bereich wie Blu-ray, DVD, CD / Audio, Audiobook, Converter, Downloads, Logs
  • Owner-Felder (*_owner) erscheinen direkt beim zugehörigen Pfad
  • Owner-Felder sind deaktiviert, solange der zugehörige Pfad leer ist

Spezial-Editoren

  • Explizite Laufwerke: Editor für mehrere Laufwerke mit Pfad und MakeMKV-Index
  • Externe Speicher: Liste aus Anzeigename und Pfad für die Speicheranzeige
  • Erlaubte Datei-Endungen: Auswahl der erlaubten Upload-/Scan-Endungen
  • MakeMKV Key: inkl. Betakey-Hinweis und Übernahme-Button

Wichtig für Reviews und Workflows

Die Seite Settings bestimmt direkt, was Nutzer später im Workflow sehen:

  • Playlist-Kandidaten werden durch Minimale Titellänge und TMDb Runtime-Abzug ... beeinflusst
  • Audio-/Untertitel-Vorauswahlen in Bereit zum Encodieren hängen an den Review-Sprachfeldern
  • automatisch vorgeschlagene Presets hängen an den Standard-Zuordnungen unter Encode-Presets
  • Queue-Verhalten im Ripper hängt an den drei Parallelitätsfeldern plus Audio CDs: Queue-Reihenfolge überspringen

Für die detaillierte Feld-für-Feld-Erklärung jeder einzelnen Einstellung nutze die Seite Einstellungsreferenz. Dort ist jedes sichtbare Feld aus der GUI mit Wirkung, Workflow-Bezug und typischem Einsatz beschrieben.

Tab Scripte

Funktionen:

  • Skript anlegen
  • Skript bearbeiten
  • Skript löschen
  • Skript testen
  • Reihenfolge per Drag-and-Drop ändern
  • Favorit markieren

Das Testergebnis zeigt:

  • Erfolg oder Fehler
  • Exit-Code
  • Dauer
  • stdout/stderr
  • Timeout, falls Script-Test Timeout (ms) greift

Tab Skriptketten

Skriptketten bestehen aus Schritten:

  • Skript
  • Warten (Sekunden)

Funktionen:

  • Ketten anlegen, bearbeiten, löschen
  • Reihenfolge der Ketten ändern
  • einzelne Ketten testen
  • Schritte innerhalb der Kette per Drag-and-Drop sortieren

Wichtig:

  • dieselben Skripte können sowohl in Jobs als auch in Ketten und Cronjobs wiederverwendet werden

Tab Encode-Presets

Hier werden Video-Standards für Disc- und Converter-Workflows verwaltet.

Standard-Zuordnungen

Es gibt vier feste Slots:

  • Blu-ray Film
  • Blu-ray Serie
  • DVD Film
  • DVD Serie

Wenn für einen Workflow hier ein Default gesetzt ist, erscheint dieses User-Preset später in der Review bereits vorausgewählt.

Preset-Inhalt

Ein User-Preset besteht aus:

  • Name
  • Medientyp (all, bluray, dvd)
  • HandBrake-Preset
  • Extra Args
  • optionaler Beschreibung

Tab Cronjobs

Funktionen:

  • Cronjob anlegen, bearbeiten, löschen
  • Cron-Ausdruck live validieren
  • Quelle wählen: Skript oder Skriptkette
  • Aktiv- und PushOver-Status pro Job setzen
  • Jetzt ausführen
  • Lauf-Logs öffnen

Die Runtime-Aktivitäten der laufenden Cronjobs werden zusätzlich live angezeigt.

Expertenbereich: Activation Bytes Cache

Dieser Block wird nur im Expertenmodus angezeigt.

Er zeigt lokal bekannte AAX-Activation-Bytes mit:

  • Prüfsumme
  • Activation Bytes
  • Speicherzeitpunkt

Das hilft bei Audiobook-Workflows, wenn dieselbe Datei oder derselbe Hash später erneut auftaucht.

Validierung von Template-Feldern

Template-Felder akzeptieren nur:

  • Buchstaben und Ziffern
  • Leerzeichen
  • _ und -
  • Platzhalter in {...} oder ${...}
  • / für Unterordner

Damit verhindert Ripster fehlerhafte Dateinamen schon beim Speichern.

Siehe auch

\ No newline at end of file diff --git a/site/search/search_index.json b/site/search/search_index.json index 794d73b..71a1805 100644 --- a/site/search/search_index.json +++ b/site/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["de"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"Ripster Handbuch","text":"

Diese Dokumentation ist als vollst\u00e4ndiges Benutzerhandbuch aufgebaut: t\u00e4gliche Bedienung zuerst, technische Referenz danach.

"},{"location":"#einstieg-in-3-schritten","title":"Einstieg in 3 Schritten","text":"
  1. Installation: Installation
  2. Betriebskonfiguration: Ersteinrichtung
  3. erster End-to-End-Lauf: Erster Lauf
"},{"location":"#was-das-handbuch-abdeckt","title":"Was das Handbuch abdeckt","text":""},{"location":"#empfohlene-lesereihenfolge","title":"Empfohlene Lesereihenfolge","text":"
  1. Benutzerhandbuch \u00dcberblick
  2. GUI-Seiten
  3. Workflows aus Nutzersicht
  4. Einstellungsreferenz
  5. bei Bedarf technischer Tiefgang im Anhang
"},{"location":"api/","title":"Anhang: API-Referenz","text":"

REST- und WebSocket-Schnittstellen f\u00fcr Integration, Automatisierung und Debugging.

"},{"location":"api/#basis-url","title":"Basis-URL","text":"
http://localhost:3001\n

API-Prefix: /api

"},{"location":"api/#api-gruppen","title":"API-Gruppen","text":""},{"location":"api/#hinweis","title":"Hinweis","text":"

Ripster hat keine eingebaute Authentifizierung und ist f\u00fcr lokalen, gesch\u00fctzten Betrieb gedacht.

"},{"location":"api/converter/","title":"Converter API","text":"

Endpunkte f\u00fcr den Datei-Converter: Datei-Explorer, Upload, Job-Verwaltung.

Basis-Pfad: /api/converter

"},{"location":"api/converter/#scan-explorer","title":"Scan & Explorer","text":""},{"location":"api/converter/#get-apiconvertertree","title":"GET /api/converter/tree","text":"

Vollst\u00e4ndiger Verzeichnisbaum des converter_raw_dir (FS-basiert, keine DB).

Response:

{\n  \"tree\": [\n    {\n      \"name\": \"filme\",\n      \"relPath\": \"filme\",\n      \"isDir\": true,\n      \"children\": [\n        {\n          \"name\": \"film.mkv\",\n          \"relPath\": \"filme/film.mkv\",\n          \"isDir\": false,\n          \"size\": 10485760\n        }\n      ]\n    }\n  ]\n}\n
"},{"location":"api/converter/#get-apiconverterbrowseparentrelpath","title":"GET /api/converter/browse?parent=relPath","text":"

DB-basierter Datei-Explorer. Gibt Eintr\u00e4ge f\u00fcr einen Unterordner zur\u00fcck.

Query-Parameter:

Parameter Typ Beschreibung parent string Relativer Pfad zum Unterordner (leer = Root)

Response:

{\n  \"entries\": [\n    {\n      \"id\": 1,\n      \"rel_path\": \"filme/film.mkv\",\n      \"is_dir\": false,\n      \"size\": 10485760,\n      \"job_id\": null\n    }\n  ],\n  \"rawDir\": \"/data/output/converter-raw\"\n}\n
"},{"location":"api/converter/#post-apiconverterscan","title":"POST /api/converter/scan","text":"

Manuellen Scan des converter_raw_dir ausl\u00f6sen. Aktualisiert converter_scan_entries in der DB.

Response:

{ \"result\": { \"added\": 3, \"removed\": 1 } }\n
"},{"location":"api/converter/#jobs-erstellen","title":"Jobs erstellen","text":""},{"location":"api/converter/#post-apiconverterjobsfrom-selection","title":"POST /api/converter/jobs/from-selection","text":"

Jobs aus im Datei-Explorer ausgew\u00e4hlten Dateien erstellen.

Body:

{\n  \"relPaths\": [\"filme/film.mkv\", \"musik/track.flac\"],\n  \"audioMode\": \"individual\"\n}\n
Feld Typ Beschreibung relPaths string[] Relative Pfade der ausgew\u00e4hlten Dateien audioMode string individual (ein Job pro Datei) oder shared (ein gemeinsamer Job)

Response:

{ \"jobs\": [{ \"id\": 42, \"status\": \"READY_TO_START\" }] }\n
"},{"location":"api/converter/#post-apiconvertercreate-jobs","title":"POST /api/converter/create-jobs","text":"

Jobs aus DB-Scan-Eintr\u00e4gen erstellen.

Body:

{\n  \"entries\": [\n    { \"relPath\": \"filme/film.mkv\", \"converterMediaType\": \"video\" }\n  ]\n}\n
"},{"location":"api/converter/#post-apiconverterupload","title":"POST /api/converter/upload","text":"

Dateien hochladen (Multipart, max. 50 Dateien).

Form-Felder:

Feld Typ Beschreibung files File[] Hochzuladende Dateien folderName string (Optional) Ziel-Unterordner

Response:

{\n  \"folders\": [{ \"folderRelPath\": \"upload-2026-03-30\", \"fileCount\": 2 }]\n}\n
"},{"location":"api/converter/#job-verwaltung","title":"Job-Verwaltung","text":""},{"location":"api/converter/#get-apiconverterjobs","title":"GET /api/converter/jobs","text":"

Alle Converter-Jobs zur\u00fcckgeben.

Response:

{ \"jobs\": [{ \"id\": 42, \"status\": \"READY_TO_START\", \"title\": \"film.mkv\" }] }\n
"},{"location":"api/converter/#get-apiconverterjobsjobid","title":"GET /api/converter/jobs/:jobId","text":"

Einzelnen Converter-Job abrufen.

"},{"location":"api/converter/#post-apiconverterjobsjobidconfig","title":"POST /api/converter/jobs/:jobId/config","text":"

Konfigurationsentwurf f\u00fcr einen Job speichern (persistiert in encode_plan_json).

Body: Partielles Konfig-Objekt (Ausgabeformat, Presets, Metadaten, Track-Auswahl).

"},{"location":"api/converter/#post-apiconverterjobsjobidassign-files","title":"POST /api/converter/jobs/:jobId/assign-files","text":"

Dateien einem bestehenden (noch nicht gestarteten) Job hinzuf\u00fcgen.

Body:

{ \"relPaths\": [\"musik/track2.flac\"] }\n
"},{"location":"api/converter/#post-apiconverterjobsjobidremove-file","title":"POST /api/converter/jobs/:jobId/remove-file","text":"

Datei aus einem Job entfernen (per relativer Pfad).

Body:

{ \"relPath\": \"musik/track2.flac\" }\n
"},{"location":"api/converter/#post-apiconverterjobsjobidremove-input","title":"POST /api/converter/jobs/:jobId/remove-input","text":"

Datei aus einem Job entfernen (per absolutem Eingabepfad).

Body:

{ \"inputPath\": \"/data/output/converter-raw/musik/track2.flac\" }\n
"},{"location":"api/converter/#post-apiconverterjobsjobidstart","title":"POST /api/converter/jobs/:jobId/start","text":"

Job mit finaler Konfiguration starten.

Body:

{\n  \"converterMediaType\": \"video\",\n  \"outputFormat\": \"mkv\",\n  \"userPreset\": \"H.264 MKV 1080p30\",\n  \"trackSelection\": {},\n  \"handBrakeTitleId\": 1,\n  \"audioFormatOptions\": {}\n}\n
"},{"location":"api/converter/#post-apiconverterjobsjobidcancel","title":"POST /api/converter/jobs/:jobId/cancel","text":"

Laufenden Job abbrechen.

"},{"location":"api/converter/#delete-apiconverterjobsjobid","title":"DELETE /api/converter/jobs/:jobId","text":"

Job aus der DB l\u00f6schen.

"},{"location":"api/converter/#datei-operationen","title":"Datei-Operationen","text":"

Alle Datei-Operationen arbeiten direkt auf dem Dateisystem (ohne DB-Aktualisierung). Ein anschlie\u00dfender Scan-Aufruf synchronisiert die DB.

"},{"location":"api/converter/#delete-apiconverterfiles","title":"DELETE /api/converter/files","text":"

Datei oder Ordner l\u00f6schen.

Body:

{ \"relPath\": \"filme/film.mkv\" }\n
"},{"location":"api/converter/#post-apiconverterfilesrename","title":"POST /api/converter/files/rename","text":"

Datei oder Ordner umbenennen.

Body:

{ \"relPath\": \"filme/film.mkv\", \"newName\": \"film-neu.mkv\" }\n
"},{"location":"api/converter/#post-apiconverterfilesmove","title":"POST /api/converter/files/move","text":"

Datei oder Ordner verschieben.

Body:

{ \"relPath\": \"filme/film.mkv\", \"targetParentRelPath\": \"archiv\" }\n

targetParentRelPath = \"\" verschiebt in das Root-Verzeichnis.

"},{"location":"api/converter/#post-apiconverterfilesfolder","title":"POST /api/converter/files/folder","text":"

Neuen Ordner anlegen.

Body:

{ \"parentRelPath\": \"filme\", \"name\": \"neu\" }\n
"},{"location":"api/crons/","title":"Cron API","text":"

Ripster enth\u00e4lt ein eingebautes Cron-System f\u00fcr Skripte und Skript-Ketten (sourceType: script|chain).

"},{"location":"api/crons/#get-apicrons","title":"GET /api/crons","text":"

Listet alle Cron-Jobs.

{\n  \"jobs\": [\n    {\n      \"id\": 1,\n      \"name\": \"Nachtlauf Backup\",\n      \"cronExpression\": \"0 2 * * *\",\n      \"sourceType\": \"script\",\n      \"sourceId\": 3,\n      \"sourceName\": \"Backup-Skript\",\n      \"enabled\": true,\n      \"pushoverEnabled\": true,\n      \"lastRunAt\": \"2026-03-10T02:00:00.000Z\",\n      \"lastRunStatus\": \"success\",\n      \"nextRunAt\": \"2026-03-11T02:00:00.000Z\",\n      \"createdAt\": \"2026-03-01T10:00:00.000Z\",\n      \"updatedAt\": \"2026-03-10T02:00:05.000Z\"\n    }\n  ]\n}\n
"},{"location":"api/crons/#post-apicrons","title":"POST /api/crons","text":"

Erstellt Cron-Job.

{\n  \"name\": \"Nachtlauf Backup\",\n  \"cronExpression\": \"0 2 * * *\",\n  \"sourceType\": \"script\",\n  \"sourceId\": 3,\n  \"enabled\": true,\n  \"pushoverEnabled\": true\n}\n

Response: 201 mit { \"job\": { ... } }

"},{"location":"api/crons/#get-apicronsid","title":"GET /api/crons/:id","text":"

Response:

{ \"job\": { \"id\": 1, \"name\": \"...\" } }\n
"},{"location":"api/crons/#put-apicronsid","title":"PUT /api/crons/:id","text":"

Aktualisiert Cron-Job. Felder wie bei POST.

Response:

{ \"job\": { ... } }\n
"},{"location":"api/crons/#delete-apicronsid","title":"DELETE /api/crons/:id","text":"

Response:

{ \"removed\": { \"id\": 1, \"name\": \"Nachtlauf Backup\" } }\n
"},{"location":"api/crons/#get-apicronsidlogs","title":"GET /api/crons/:id/logs","text":"

Liefert Ausf\u00fchrungs-Logs.

Query-Parameter:

Parameter Typ Default Beschreibung limit number 20 Anzahl Eintr\u00e4ge, max. 100

Response:

{\n  \"logs\": [\n    {\n      \"id\": 42,\n      \"cronJobId\": 1,\n      \"startedAt\": \"2026-03-10T02:00:01.000Z\",\n      \"finishedAt\": \"2026-03-10T02:00:05.000Z\",\n      \"status\": \"success\",\n      \"output\": \"Backup abgeschlossen.\",\n      \"errorMessage\": null\n    }\n  ]\n}\n

status: running | success | error

"},{"location":"api/crons/#post-apicronsidrun","title":"POST /api/crons/:id/run","text":"

Triggert Job manuell (asynchron).

Response:

{ \"triggered\": true, \"cronJobId\": 1 }\n

Wenn Job bereits l\u00e4uft: 409.

"},{"location":"api/crons/#post-apicronsvalidate-expression","title":"POST /api/crons/validate-expression","text":"

Validiert 5-Felder-Cron-Ausdruck und berechnet n\u00e4chsten Lauf.

Request:

{ \"cronExpression\": \"*/15 * * * *\" }\n

G\u00fcltige Response:

{\n  \"valid\": true,\n  \"nextRunAt\": \"2026-03-10T14:15:00.000Z\"\n}\n

Ung\u00fcltige Response:

{\n  \"valid\": false,\n  \"error\": \"Cron-Ausdruck muss genau 5 Felder haben (Minute Stunde Tag Monat Wochentag).\",\n  \"nextRunAt\": null\n}\n
"},{"location":"api/crons/#cron-format","title":"Cron-Format","text":"

Ripster unterst\u00fctzt 5 Felder:

Minute Stunde Tag Monat Wochentag\n

Beispiele:

"},{"location":"api/crons/#websocket-events-zu-cron","title":"WebSocket-Events zu Cron","text":""},{"location":"api/downloads/","title":"Downloads API","text":"

Endpunkte f\u00fcr die Download-Queue. Ausgabedateien aus der Job-Historie k\u00f6nnen als ZIP heruntergeladen werden.

Basis-Pfad: /api/downloads

"},{"location":"api/downloads/#get-apidownloads","title":"GET /api/downloads","text":"

Liste aller Download-Eintr\u00e4ge plus Zusammenfassung.

Response:

{\n  \"items\": [\n    {\n      \"id\": \"dl-42-raw\",\n      \"jobId\": 42,\n      \"target\": \"raw\",\n      \"status\": \"ready\",\n      \"archiveName\": \"Job_42_raw.zip\",\n      \"outputPath\": null,\n      \"createdAt\": \"2026-03-30T10:00:00.000Z\",\n      \"updatedAt\": \"2026-03-30T10:01:00.000Z\",\n      \"errorMessage\": null\n    }\n  ],\n  \"summary\": {\n    \"total\": 3,\n    \"pending\": 1,\n    \"processing\": 0,\n    \"ready\": 1,\n    \"failed\": 1\n  }\n}\n

Status-Werte:

Status Beschreibung pending In der Queue, noch nicht gestartet processing ZIP wird gerade erstellt ready ZIP fertig, Download verf\u00fcgbar failed Fehler bei der Erstellung"},{"location":"api/downloads/#get-apidownloadssummary","title":"GET /api/downloads/summary","text":"

Nur die Zusammenfassung der Download-Queue (ohne Item-Liste).

Response:

{\n  \"summary\": {\n    \"total\": 3,\n    \"pending\": 1,\n    \"processing\": 0,\n    \"ready\": 1,\n    \"failed\": 1\n  }\n}\n
"},{"location":"api/downloads/#post-apidownloadshistoryjobid","title":"POST /api/downloads/history/:jobId","text":"

Job-Ausgabe in die Download-Queue einreihen.

Parameter:

Parameter Typ Beschreibung jobId number ID des Jobs in der Historie

Body:

{\n  \"target\": \"raw\",\n  \"outputPath\": null\n}\n
Feld Typ Default Beschreibung target string raw raw (RAW-Dateien) oder movie (Ausgabedateien) outputPath string null Optionaler expliziter Ausgabepfad

Response (201 Created):

{\n  \"created\": true,\n  \"id\": \"dl-42-raw\",\n  \"status\": \"pending\",\n  \"summary\": { \"total\": 1, \"pending\": 1, \"processing\": 0, \"ready\": 0, \"failed\": 0 }\n}\n

Ist der Eintrag bereits vorhanden, wird 201 durch 200 ersetzt und created: false zur\u00fcckgegeben.

"},{"location":"api/downloads/#get-apidownloadsidfile","title":"GET /api/downloads/:id/file","text":"

Fertige ZIP-Datei herunterladen.

Parameter:

Parameter Typ Beschreibung id string Download-ID (z. B. dl-42-raw)

Response: Datei-Download (Content-Disposition: attachment).

Schl\u00e4gt fehl mit 404, wenn kein Download-Eintrag mit dieser ID existiert oder die Datei noch nicht bereit ist.

"},{"location":"api/downloads/#delete-apidownloadsid","title":"DELETE /api/downloads/:id","text":"

Download-Eintrag l\u00f6schen (auch fertige ZIP-Dateien werden vom Dateisystem entfernt).

Response:

{\n  \"ok\": true,\n  \"summary\": { \"total\": 2, \"pending\": 0, \"processing\": 0, \"ready\": 2, \"failed\": 0 }\n}\n
"},{"location":"api/downloads/#websocket","title":"WebSocket","text":"

Status\u00e4nderungen werden \u00fcber DOWNLOADS_UPDATED in Echtzeit gemeldet. Vollst\u00e4ndige Dokumentation: WebSocket Events.

"},{"location":"api/history/","title":"History API","text":"

Endpunkte f\u00fcr Job-Historie, Metadaten-Nachpflege, Orphan-Import und L\u00f6schoperationen.

"},{"location":"api/history/#get-apihistory","title":"GET /api/history","text":"

Liefert Jobs mit optionalen Filtern.

Query-Parameter:

Parameter Typ Beschreibung status string Einzelstatus-Filter (legacy-kompatibel). statuses string Mehrfachstatus als CSV, z. B. FINISHED,ERROR. search string Suche in Titel-/IMDb-Feldern. limit number Maximale Anzahl Ergebnisse. lite bool Ohne Dateisystem-Checks (schneller). includeChildren bool Child-Jobs (z. B. Serien-/Multipart-Kinder) explizit einbeziehen.

Beispiel:

GET /api/history?statuses=FINISHED,ERROR&search=Inception&limit=50&lite=1\n

Response (Beispiel):

{\n  \"jobs\": [\n    {\n      \"id\": 42,\n      \"status\": \"FINISHED\",\n      \"title\": \"Inception\",\n      \"job_kind\": \"bluray\",\n      \"raw_path\": \"/mnt/raw/Inception - RAW - job-42\",\n      \"output_path\": \"/mnt/movies/Inception (2010)/Inception (2010).mkv\",\n      \"mediaType\": \"bluray\",\n      \"ripSuccessful\": true,\n      \"encodeSuccess\": true,\n      \"created_at\": \"2026-03-10T08:00:00.000Z\",\n      \"updated_at\": \"2026-03-10T10:00:00.000Z\"\n    }\n  ]\n}\n
"},{"location":"api/history/#get-apihistoryid","title":"GET /api/history/:id","text":"

Liefert Job-Detail.

Query-Parameter:

Parameter Typ Standard Beschreibung includeLogs bool false Prozesslog laden. includeLiveLog bool false Live-/Tail-Log laden. includeAllLogs bool false vollst\u00e4ndiges Log statt Tail. logTailLines number 800 Tail-L\u00e4nge falls nicht includeAllLogs. lite bool false Detailantwort ohne FS-Checks.

Response (Beispiel):

{\n  \"job\": {\n    \"id\": 42,\n    \"status\": \"FINISHED\",\n    \"makemkvInfo\": {},\n    \"mediainfoInfo\": {},\n    \"handbrakeInfo\": {},\n    \"encodePlan\": {},\n    \"log\": \"...\",\n    \"log_count\": 1,\n    \"logMeta\": {\n      \"loaded\": true,\n      \"total\": 800,\n      \"returned\": 800,\n      \"truncated\": true\n    }\n  }\n}\n
"},{"location":"api/history/#get-apihistoryorphan-raw","title":"GET /api/history/orphan-raw","text":"

Sucht RAW-Ordner ohne zugeh\u00f6rigen Job.

"},{"location":"api/history/#post-apihistoryorphan-rawimport","title":"POST /api/history/orphan-raw/import","text":"

Importiert einen RAW-Ordner als Job und triggert optional die Analyse des Imports.

Request:

{ \"rawPath\": \"/mnt/raw/Inception (2010) [tt1375666] - RAW - job-99\" }\n

Response (Beispiel):

{\n  \"job\": { \"id\": 77, \"status\": \"FINISHED\" },\n  \"activation\": { \"started\": true },\n  \"activationError\": null\n}\n
"},{"location":"api/history/#post-apihistoryidmetadataassign","title":"POST /api/history/:id/metadata/assign","text":"

Weist TMDb-Metadaten nachtr\u00e4glich zu oder aktualisiert bestehende Film-/Serien-Metadaten eines Jobs.

"},{"location":"api/history/#post-apihistoryidcdassign","title":"POST /api/history/:id/cd/assign","text":"

Weist CD-Metadaten (z. B. MusicBrainz) nachtr\u00e4glich zu.

"},{"location":"api/history/#post-apihistoryiderrorack","title":"POST /api/history/:id/error/ack","text":"

Quittiert einen Fehlerzustand im Historieneintrag.

"},{"location":"api/history/#get-apihistoryiddelete-preview","title":"GET /api/history/:id/delete-preview","text":"

Liefert eine Vorschau der l\u00f6schbaren Pfade (inkl. Scope auf verkn\u00fcpfte Jobs).

Query-Parameter:

Parameter Typ Standard Beschreibung includeRelated bool true Verkn\u00fcpfte Jobs in die Vorschau einbeziehen.

Response (Beispiel):

{\n  \"preview\": {\n    \"jobId\": 42,\n    \"relatedJobs\": [{ \"id\": 42 }, { \"id\": 73 }],\n    \"pathCandidates\": {\n      \"raw\": [{ \"path\": \"/mnt/raw/...\", \"exists\": true, \"isDirectory\": true }],\n      \"movie\": [{ \"path\": \"/mnt/movies/...\", \"exists\": true, \"isDirectory\": true }]\n    }\n  }\n}\n
"},{"location":"api/history/#post-apihistoryiddelete-files","title":"POST /api/history/:id/delete-files","text":"

L\u00f6scht Dateien eines Jobs, beh\u00e4lt DB-Eintrag.

Request:

{\n  \"target\": \"both\",\n  \"includeRelated\": true,\n  \"selectedRawPaths\": [\"/mnt/raw/Inception - RAW - Disc1\"],\n  \"selectedMoviePaths\": [\"/mnt/movies/Inception (2010)\"]\n}\n

target: raw | movie | both

selectedRawPaths / selectedMoviePaths sind optional und begrenzen die L\u00f6schung auf ausgew\u00e4hlte Pfade aus der Vorschau.

"},{"location":"api/history/#post-apihistoryiddelete","title":"POST /api/history/:id/delete","text":"

L\u00f6scht Job aus DB; optional auch Dateien.

Request:

{\n  \"target\": \"both\",\n  \"includeRelated\": true,\n  \"resetDriveState\": false,\n  \"keepDetectedDevice\": true,\n  \"preserveRawForImportJobs\": false,\n  \"selectedRawPaths\": [\"/mnt/raw/Inception - RAW - Disc1\"],\n  \"selectedMoviePaths\": [\"/mnt/movies/Inception (2010)\"]\n}\n

target: none | raw | movie | both

Response (Beispiel):

{\n  \"deleted\": true,\n  \"jobId\": 42,\n  \"fileTarget\": \"both\",\n  \"fileSummary\": {\n    \"target\": \"both\",\n    \"raw\": { \"filesDeleted\": 10 },\n    \"movie\": { \"filesDeleted\": 1 }\n  },\n  \"uiReset\": {\n    \"reset\": true,\n    \"state\": \"IDLE\"\n  },\n  \"safeguards\": {\n    \"containsOrphanRawImportJob\": false,\n    \"resetDriveStateApplied\": false,\n    \"keepDetectedDeviceApplied\": true\n  }\n}\n
"},{"location":"api/history/#hinweise","title":"Hinweise","text":""},{"location":"api/pipeline/","title":"Pipeline API","text":"

Endpunkte zur Steuerung des Pipeline-Workflows.

"},{"location":"api/pipeline/#get-apipipelinestate","title":"GET /api/pipeline/state","text":"

Liefert aktuellen Pipeline- und Hardware-Monitoring-Snapshot.

Response (Beispiel):

{\n  \"pipeline\": {\n    \"state\": \"READY_TO_ENCODE\",\n    \"activeJobId\": 42,\n    \"progress\": 0,\n    \"eta\": null,\n    \"statusText\": \"Mediainfo best\u00e4tigt - Encode manuell starten\",\n    \"context\": {\n      \"jobId\": 42\n    },\n    \"jobProgress\": {\n      \"42\": {\n        \"state\": \"MEDIAINFO_CHECK\",\n        \"progress\": 68.5,\n        \"eta\": null,\n        \"statusText\": \"MEDIAINFO_CHECK 68.50%\"\n      }\n    },\n    \"queue\": {\n      \"maxParallelJobs\": 1,\n      \"runningCount\": 1,\n      \"queuedCount\": 2,\n      \"runningJobs\": [],\n      \"queuedJobs\": []\n    }\n  },\n  \"hardwareMonitoring\": {\n    \"enabled\": true,\n    \"intervalMs\": 5000,\n    \"updatedAt\": \"2026-03-10T09:00:00.000Z\",\n    \"sample\": {\n      \"cpu\": {},\n      \"memory\": {},\n      \"gpu\": {},\n      \"storage\": {}\n    },\n    \"error\": null\n  }\n}\n
"},{"location":"api/pipeline/#post-apipipelineanalyze","title":"POST /api/pipeline/analyze","text":"

Startet Disc-Analyse und legt Job an.

Response:

{\n  \"result\": {\n    \"jobId\": 42,\n    \"detectedTitle\": \"INCEPTION\",\n    \"omdbCandidates\": []\n  }\n}\n
"},{"location":"api/pipeline/#post-apipipelinerescan-disc","title":"POST /api/pipeline/rescan-disc","text":"

Erzwingt erneute Laufwerkspr\u00fcfung.

Response (Beispiel):

{\n  \"result\": {\n    \"present\": true,\n    \"changed\": true,\n    \"emitted\": \"discInserted\",\n    \"device\": {\n      \"path\": \"/dev/sr0\",\n      \"discLabel\": \"INCEPTION\",\n      \"mediaProfile\": \"bluray\"\n    }\n  }\n}\n
"},{"location":"api/pipeline/#post-apipipelinerescan-drive","title":"POST /api/pipeline/rescan-drive","text":"

Erzwingt Rescan f\u00fcr ein konkretes Laufwerk.

Request:

{ \"devicePath\": \"/dev/sr0\" }\n
"},{"location":"api/pipeline/#get-apipipelinetmdbmoviesearchq","title":"GET /api/pipeline/tmdb/movie/search?q=

TMDb-Filmsuche.

Response:

{\n  \"results\": [\n    {\n      \"imdbId\": \"tt1375666\",\n      \"title\": \"Inception\",\n      \"year\": \"2010\",\n      \"type\": \"movie\",\n      \"poster\": \"https://...\"\n    }\n  ]\n}\n
","text":""},{"location":"api/pipeline/#get-apipipelinetmdbseriessearchqseason","title":"GET /api/pipeline/tmdb/series/search?q=&season=

TMDb-Seriensuche (f\u00fcr Serien-Workflow bei DVD/Blu-ray).

","text":""},{"location":"api/pipeline/#get-apipipelinecddrives","title":"GET /api/pipeline/cd/drives

Liefert Snapshot der aktuell bekannten CD-Laufwerke.

","text":""},{"location":"api/pipeline/#get-apipipelinecdmusicbrainzsearchq","title":"GET /api/pipeline/cd/musicbrainz/search?q=

MusicBrainz-Suche f\u00fcr CD-Metadaten.

","text":""},{"location":"api/pipeline/#get-apipipelinecdmusicbrainzreleasembid","title":"GET /api/pipeline/cd/musicbrainz/release/:mbId

L\u00e4dt Release-Details zu einer MusicBrainz-ID.

","text":""},{"location":"api/pipeline/#post-apipipelinecdselect-metadata","title":"POST /api/pipeline/cd/select-metadata

\u00dcbernimmt CD-Metadaten f\u00fcr einen Job.

Request (Beispiel):

{\n  \"jobId\": 91,\n  \"title\": \"Album\",\n  \"artist\": \"Artist\",\n  \"year\": 2020,\n  \"mbId\": \"f5093c06-23e3-404f-aeaa-40f72885ee3a\",\n  \"coverUrl\": \"https://...\",\n  \"tracks\": []\n}\n
","text":""},{"location":"api/pipeline/#post-apipipelinecdstartjobid","title":"POST /api/pipeline/cd/start/:jobId

Startet/queued CD-Rip mit Format-/Script-/Chain-Konfiguration.

","text":""},{"location":"api/pipeline/#post-apipipelineaudiobookupload","title":"POST /api/pipeline/audiobook/upload

Upload von AAX-Datei (Multipart/FormData).

FormData-Felder:

","text":""},{"location":"api/pipeline/#get-apipipelineaudiobookpending-activation","title":"GET /api/pipeline/audiobook/pending-activation

Zeigt AAX-Jobs mit fehlenden Activation-Bytes.

","text":""},{"location":"api/pipeline/#post-apipipelineaudiobookstartjobid","title":"POST /api/pipeline/audiobook/start/:jobId

Startet Audiobook-Job mit optionaler Konfiguration.

","text":""},{"location":"api/pipeline/#get-apipipelineaudiobookjobs","title":"GET /api/pipeline/audiobook/jobs

Liefert Audiobook-Jobliste.

","text":""},{"location":"api/pipeline/#get-apipipelineaudiobookoutput-tree","title":"GET /api/pipeline/audiobook/output-tree

Read-only Baumansicht des Audiobook-Ausgabeordners.

","text":""},{"location":"api/pipeline/#post-apipipelineselect-metadata","title":"POST /api/pipeline/select-metadata

Setzt Metadaten (und optional Playlist) f\u00fcr einen Job.

Request:

{\n  \"jobId\": 42,\n  \"title\": \"Inception\",\n  \"year\": 2010,\n  \"imdbId\": \"tt1375666\",\n  \"poster\": \"https://...\",\n  \"fromOmdb\": true,\n  \"selectedPlaylist\": \"00800\"\n}\n

Wichtige optionale Felder:

Response:

{ \"job\": { \"id\": 42, \"status\": \"READY_TO_START\" } }\n

Konflikt-Response (Beispiel, HTTP 409):

{\n  \"message\": \"Metadaten bereits in der Historie gefunden. Bitte Auswahl \u00fcbernehmen oder Multipart movie w\u00e4hlen.\",\n  \"details\": [\n    {\n      \"code\": \"METADATA_DUPLICATE_FOUND\",\n      \"mediaProfile\": \"bluray\",\n      \"existingJob\": {\n        \"id\": 17,\n        \"title\": \"Inception\",\n        \"year\": 2010,\n        \"status\": \"FINISHED\",\n        \"jobKind\": \"bluray\",\n        \"discNumber\": 1,\n        \"isMultipartMovie\": false\n      }\n    }\n  ]\n}\n

Relevante Fehlercodes (POST /api/pipeline/select-metadata):

Code Bedeutung METADATA_DUPLICATE_FOUND Film-Metadaten existieren bereits in der Historie (Konfliktdialog im UI). MULTIPART_DISC_REQUIRED F\u00fcr Multipart fehlen Disc-Nummern (discNumber/existingDiscNumber). MULTIPART_DISC_ALREADY_EXISTS Disc-Nummer im Multipart-Container bereits vergeben oder doppelt. MULTIPART_MEDIA_MISMATCH Multipart nur bei gleichem Medientyp (DVD oder Blu-ray). MULTIPART_SERIES_NOT_ALLOWED Multipart ist nur f\u00fcr Film-Jobs erlaubt, nicht f\u00fcr Serien-Workflow. MULTIPART_METADATA_MISMATCH Ausgew\u00e4hlter bestehender Job passt nicht zu den Film-Metadaten. SERIES_DISC_ALREADY_EXISTS Serien-Disc-Nummer innerhalb einer Staffel bereits vorhanden.","text":""},{"location":"api/pipeline/#post-apipipelinejobsjobidraw-decision","title":"POST /api/pipeline/jobs/:jobId/raw-decision

Trifft Entscheidung bei vorhandenem RAW (continue oder restart je nach Dialogfluss).

Request:

{ \"decision\": \"continue\" }\n
","text":""},{"location":"api/pipeline/#post-apipipelinestartjobid","title":"POST /api/pipeline/start/:jobId

Startet vorbereiteten Job oder queued ihn (je nach Parallel-Limit).

M\u00f6gliche Responses:

{ \"result\": { \"started\": true, \"stage\": \"RIPPING\" } }\n
{ \"result\": { \"queued\": true, \"started\": false, \"queuePosition\": 2, \"action\": \"START_PREPARED\" } }\n
","text":""},{"location":"api/pipeline/#post-apipipelineconfirm-encodejobid","title":"POST /api/pipeline/confirm-encode/:jobId

Best\u00e4tigt Review-Auswahl (Tracks, Pre/Post-Skripte/Ketten, User-Preset).

Request (typisch):

{\n  \"selectedEncodeTitleId\": 1,\n  \"selectedTrackSelection\": {\n    \"1\": {\n      \"audioTrackIds\": [1, 2],\n      \"subtitleTrackIds\": [3]\n    }\n  },\n  \"selectedPreEncodeScriptIds\": [1],\n  \"selectedPostEncodeScriptIds\": [2, 7],\n  \"selectedPreEncodeChainIds\": [3],\n  \"selectedPostEncodeChainIds\": [4],\n  \"selectedUserPresetId\": 5,\n  \"skipPipelineStateUpdate\": false\n}\n

Response:

{ \"job\": { \"id\": 42, \"encode_review_confirmed\": 1 } }\n
","text":""},{"location":"api/pipeline/#post-apipipelinecancel","title":"POST /api/pipeline/cancel

Bricht laufenden Job ab oder entfernt Queue-Eintrag.

Request (optional):

{ \"jobId\": 42 }\n

M\u00f6gliche Responses:

{ \"result\": { \"cancelled\": true, \"queuedOnly\": true, \"jobId\": 42 } }\n
{ \"result\": { \"cancelled\": true, \"queuedOnly\": false, \"jobId\": 42 } }\n
{ \"result\": { \"cancelled\": true, \"queuedOnly\": false, \"pending\": true, \"jobId\": 42 } }\n
","text":""},{"location":"api/pipeline/#post-apipipelineretryjobid","title":"POST /api/pipeline/retry/:jobId

Retry f\u00fcr ERROR/CANCELLED-Jobs (oder Queue-Einreihung).

","text":""},{"location":"api/pipeline/#post-apipipelinereencodejobid","title":"POST /api/pipeline/reencode/:jobId

Startet Re-Encode aus bestehendem RAW.

","text":""},{"location":"api/pipeline/#post-apipipelinerestart-reviewjobid","title":"POST /api/pipeline/restart-review/:jobId

Berechnet Review aus RAW neu.

","text":""},{"location":"api/pipeline/#post-apipipelinerestart-encodejobid","title":"POST /api/pipeline/restart-encode/:jobId

Startet Encoding mit letzter best\u00e4tigter Review neu.

","text":""},{"location":"api/pipeline/#post-apipipelinerestart-cd-reviewjobid","title":"POST /api/pipeline/restart-cd-review/:jobId

Berechnet CD-Review aus vorhandenem RAW neu.

","text":""},{"location":"api/pipeline/#post-apipipelineresume-readyjobid","title":"POST /api/pipeline/resume-ready/:jobId

L\u00e4dt READY_TO_ENCODE-Job nach Neustart wieder in aktive Session.

","text":""},{"location":"api/pipeline/#get-apipipelineoutput-foldersjobid","title":"GET /api/pipeline/output-folders/:jobId

Liefert bekannte Output-Ordner entlang der Job-Lineage.

","text":""},{"location":"api/pipeline/#post-apipipelinedelete-output-foldersjobid","title":"POST /api/pipeline/delete-output-folders/:jobId

L\u00f6scht ausgew\u00e4hlte Output-Ordner.

Request:

{ \"folderPaths\": [\"/mnt/movies/Inception (2010)\"] }\n

Alle Endpunkte liefern { result: ... } bzw. { job: ... }.

","text":""},{"location":"api/pipeline/#queue-endpunkte","title":"Queue-Endpunkte","text":""},{"location":"api/pipeline/#get-apipipelinequeue","title":"GET /api/pipeline/queue","text":"

Liefert Queue-Snapshot.

{\n  \"queue\": {\n    \"maxParallelJobs\": 1,\n    \"runningCount\": 1,\n    \"queuedCount\": 3,\n    \"runningJobs\": [\n      {\n        \"jobId\": 41,\n        \"title\": \"Inception\",\n        \"status\": \"ENCODING\",\n        \"lastState\": \"ENCODING\"\n      }\n    ],\n    \"queuedJobs\": [\n      {\n        \"entryId\": 11,\n        \"position\": 1,\n        \"type\": \"job\",\n        \"jobId\": 42,\n        \"action\": \"START_PREPARED\",\n        \"actionLabel\": \"Start\",\n        \"title\": \"Matrix\",\n        \"status\": \"READY_TO_ENCODE\",\n        \"lastState\": \"READY_TO_ENCODE\",\n        \"hasScripts\": true,\n        \"hasChains\": false,\n        \"enqueuedAt\": \"2026-03-10T09:00:00.000Z\"\n      },\n      {\n        \"entryId\": 12,\n        \"position\": 2,\n        \"type\": \"wait\",\n        \"waitSeconds\": 30,\n        \"title\": \"Warten 30s\",\n        \"status\": \"QUEUED\",\n        \"enqueuedAt\": \"2026-03-10T09:01:00.000Z\"\n      }\n    ],\n    \"updatedAt\": \"2026-03-10T09:01:02.000Z\"\n  }\n}\n
"},{"location":"api/pipeline/#post-apipipelinequeuereorder","title":"POST /api/pipeline/queue/reorder","text":"

Sortiert Queue-Eintr\u00e4ge neu.

Request:

{\n  \"orderedEntryIds\": [12, 11]\n}\n

Legacy fallback wird akzeptiert:

{\n  \"orderedJobIds\": [42, 43]\n}\n
"},{"location":"api/pipeline/#post-apipipelinequeueentry","title":"POST /api/pipeline/queue/entry","text":"

F\u00fcgt Nicht-Job-Queue-Eintrag hinzu (script, chain, wait).

Request-Beispiele:

{ \"type\": \"script\", \"scriptId\": 3 }\n
{ \"type\": \"chain\", \"chainId\": 2, \"insertAfterEntryId\": 11 }\n
{ \"type\": \"wait\", \"waitSeconds\": 45 }\n

Response:

{\n  \"result\": { \"entryId\": 12, \"type\": \"wait\", \"position\": 2 },\n  \"queue\": { \"...\": \"...\" }\n}\n
"},{"location":"api/pipeline/#delete-apipipelinequeueentryentryid","title":"DELETE /api/pipeline/queue/entry/:entryId","text":"

Entfernt Queue-Eintrag.

Response:

{ \"queue\": { \"...\": \"...\" } }\n
"},{"location":"api/pipeline/#pipeline-zustande","title":"Pipeline-Zust\u00e4nde State Bedeutung IDLE Wartet auf Medium DISC_DETECTED Medium erkannt ANALYZING MakeMKV-Analyse l\u00e4uft METADATA_SELECTION Metadaten-Auswahl WAITING_FOR_USER_DECISION Nutzerentscheidung erforderlich (Playlist-Auswahl oder RAW-Entscheidung) READY_TO_START \u00dcbergang vor Start RIPPING MakeMKV-Rip l\u00e4uft MEDIAINFO_CHECK Titel-/Track-Auswertung READY_TO_ENCODE Review bereit ENCODING HandBrake-Encoding l\u00e4uft CD_METADATA_SELECTION CD-Metadatenauswahl aktiv CD_READY_TO_RIP CD-Job ist startbereit CD_ANALYZING CD-Struktur/Tracks werden vorbereitet CD_RIPPING CD-Ripping l\u00e4uft CD_ENCODING CD-Encode l\u00e4uft FINISHED Abgeschlossen DONE Abgeschlossen (v. a. Audiobook/Converter/CD-Varianten) CANCELLED Abgebrochen ERROR Fehler","text":""},{"location":"api/runtime-activities/","title":"Runtime Activities API","text":"

Ripster verfolgt alle laufenden und k\u00fcrzlich abgeschlossenen Aktivit\u00e4ten (Skripte, Skript-Ketten, Cron-Jobs, interne Tasks) in Echtzeit \u00fcber den RuntimeActivityService.

"},{"location":"api/runtime-activities/#ubersicht","title":"\u00dcbersicht","text":"

Aktivit\u00e4ten entstehen, wenn Ripster intern Aktionen ausf\u00fchrt \u2013 z. B. beim Start eines Cron-Jobs, beim Ausf\u00fchren einer Skript-Kette oder beim Durchlaufen von Pipeline-Schritten. Sie sind nicht persistent (kein DB-Speicher) und werden nur im Arbeitsspeicher gehalten.

\u00c4nderungen werden \u00fcber WebSocket (RUNTIME_ACTIVITY_CHANGED) in Echtzeit gesendet.

"},{"location":"api/runtime-activities/#aktivitats-objekt","title":"Aktivit\u00e4ts-Objekt","text":"
{\n  \"id\": 7,\n  \"type\": \"chain\",\n  \"name\": \"Post-Encode Aufr\u00e4umen\",\n  \"status\": \"running\",\n  \"source\": \"cron\",\n  \"message\": \"Schritt 2 von 3\",\n  \"currentStep\": \"cleanup.sh\",\n  \"currentStepType\": \"script\",\n  \"currentScriptName\": \"cleanup.sh\",\n  \"stepIndex\": 2,\n  \"stepTotal\": 3,\n  \"parentActivityId\": null,\n  \"jobId\": 42,\n  \"cronJobId\": 3,\n  \"chainId\": 5,\n  \"scriptId\": null,\n  \"canCancel\": true,\n  \"canNextStep\": false,\n  \"outcome\": \"running\",\n  \"errorMessage\": null,\n  \"output\": null,\n  \"stdout\": null,\n  \"stderr\": null,\n  \"stdoutTruncated\": false,\n  \"stderrTruncated\": false,\n  \"startedAt\": \"2026-03-10T10:00:00.000Z\",\n  \"finishedAt\": null,\n  \"durationMs\": null,\n  \"exitCode\": null,\n  \"success\": null\n}\n
"},{"location":"api/runtime-activities/#felder","title":"Felder","text":"Feld Typ Beschreibung id number Eindeutige ID (Laufz\u00e4hler, nicht persistent) type string Art der Aktivit\u00e4t: script | chain | cron | task name string \\| null Anzeigename der Aktivit\u00e4t status string Aktueller Status: running | success | error source string \\| null Ausl\u00f6ser (z. B. cron, pipeline, manual) message string \\| null Kurztext zum aktuellen Zustand currentStep string \\| null Name des aktuell ausgef\u00fchrten Schritts currentStepType string \\| null Typ des Schritts (z. B. script, wait) currentScriptName string \\| null Name des Skripts im aktuellen Schritt stepIndex number \\| null Aktueller Schritt (1-basiert) stepTotal number \\| null Gesamtanzahl Schritte parentActivityId number \\| null ID der \u00fcbergeordneten Aktivit\u00e4t jobId number \\| null Verkn\u00fcpfte Job-ID cronJobId number \\| null Verkn\u00fcpfte Cron-Job-ID chainId number \\| null Verkn\u00fcpfte Skript-Ketten-ID scriptId number \\| null Verkn\u00fcpfte Skript-ID canCancel boolean Abbrechen \u00fcber API m\u00f6glich canNextStep boolean N\u00e4chster Schritt \u00fcber API ausl\u00f6sbar outcome string \\| null Abschluss-Ergebnis: success | error | cancelled | skipped | running errorMessage string \\| null Fehlermeldung (max. 2.000 Zeichen) output string \\| null Allgemeine Ausgabe (max. 12.000 Zeichen) stdout string \\| null Standardausgabe des Prozesses (max. 12.000 Zeichen) stderr string \\| null Fehlerausgabe des Prozesses (max. 12.000 Zeichen) stdoutTruncated boolean true, wenn stdout gek\u00fcrzt wurde stderrTruncated boolean true, wenn stderr gek\u00fcrzt wurde startedAt string ISO-8601-Zeitstempel des Starts finishedAt string \\| null ISO-8601-Zeitstempel des Endes durationMs number \\| null Laufzeit in Millisekunden exitCode number \\| null Exit-Code des Prozesses success boolean \\| null Erfolgsstatus (null bei laufender Aktivit\u00e4t)"},{"location":"api/runtime-activities/#snapshot-objekt","title":"Snapshot-Objekt","text":"

Alle Aktivit\u00e4ts-Endpunkte geben einen Snapshot zur\u00fcck:

{\n  \"active\": [ /* laufende Aktivit\u00e4ten, nach startedAt absteigend */ ],\n  \"recent\": [ /* abgeschlossene Aktivit\u00e4ten, nach finishedAt absteigend, max. 120 */ ],\n  \"updatedAt\": \"2026-03-10T10:05:00.000Z\"\n}\n
"},{"location":"api/runtime-activities/#endpunkte","title":"Endpunkte","text":""},{"location":"api/runtime-activities/#get-apiruntimeactivities","title":"GET /api/runtime/activities","text":"

Aktuellen Aktivit\u00e4ts-Snapshot abrufen.

Antwort:

{\n  \"active\": [],\n  \"recent\": [\n    {\n      \"id\": 5,\n      \"type\": \"script\",\n      \"name\": \"notify.sh\",\n      \"status\": \"success\",\n      \"outcome\": \"success\",\n      \"startedAt\": \"2026-03-10T09:58:00.000Z\",\n      \"finishedAt\": \"2026-03-10T09:58:02.000Z\",\n      \"durationMs\": 2100,\n      \"exitCode\": 0,\n      \"success\": true,\n      \"canCancel\": false,\n      \"canNextStep\": false\n    }\n  ],\n  \"updatedAt\": \"2026-03-10T10:05:00.000Z\"\n}\n
"},{"location":"api/runtime-activities/#post-apiruntimeactivitiesidcancel","title":"POST /api/runtime/activities/:id/cancel","text":"

Aktive Aktivit\u00e4t abbrechen (nur wenn canCancel: true).

Parameter:

Name In Typ Beschreibung id path number Aktivit\u00e4ts-ID reason body string Optionaler Abbruchgrund

Request Body:

{ \"reason\": \"Manueller Abbruch durch Benutzer\" }\n

Antwort (Erfolg):

{\n  \"ok\": true,\n  \"action\": null,\n  \"snapshot\": { \"active\": [], \"recent\": [], \"updatedAt\": \"...\" }\n}\n

Fehlercodes:

HTTP Bedeutung 404 Aktivit\u00e4t nicht gefunden oder bereits abgeschlossen 409 Abbrechen wird von dieser Aktivit\u00e4t nicht unterst\u00fctzt"},{"location":"api/runtime-activities/#post-apiruntimeactivitiesidnext-step","title":"POST /api/runtime/activities/:id/next-step","text":"

N\u00e4chsten Schritt einer Aktivit\u00e4t ausl\u00f6sen (nur wenn canNextStep: true).

Parameter:

Name In Typ Beschreibung id path number Aktivit\u00e4ts-ID

Antwort (Erfolg):

{\n  \"ok\": true,\n  \"action\": null,\n  \"snapshot\": { \"active\": [], \"recent\": [], \"updatedAt\": \"...\" }\n}\n

Fehlercodes:

HTTP Bedeutung 404 Aktivit\u00e4t nicht gefunden 409 N\u00e4chster Schritt wird von dieser Aktivit\u00e4t nicht unterst\u00fctzt"},{"location":"api/runtime-activities/#post-apiruntimeactivitiesclear-recent","title":"POST /api/runtime/activities/clear-recent","text":"

Alle abgeschlossenen Aktivit\u00e4ten aus recent l\u00f6schen.

Antwort:

{\n  \"ok\": true,\n  \"removed\": 14,\n  \"snapshot\": { \"active\": [], \"recent\": [], \"updatedAt\": \"...\" }\n}\n
"},{"location":"api/runtime-activities/#grenzwerte","title":"Grenzwerte","text":"Wert Limit Maximale recent-Eintr\u00e4ge 120 Maximale L\u00e4nge stdout / stderr / output 12.000 Zeichen Maximale L\u00e4nge errorMessage / message 2.000 Zeichen Maximale L\u00e4nge outcome 40 Zeichen

Gek\u00fcrzte Ausgaben erhalten den Suffix ...[gek\u00fcrzt] (bei Inline-Text) bzw. \\n...[gek\u00fcrzt] (bei mehrzeiligem Output).

"},{"location":"api/runtime-activities/#echtzeit-updates","title":"Echtzeit-Updates","text":"

\u00c4nderungen werden automatisch als RUNTIME_ACTIVITY_CHANGED WebSocket-Event gesendet. Die Frontend-Komponente braucht GET /api/runtime/activities nur beim initialen Laden aufzurufen.

"},{"location":"api/settings/","title":"Settings API","text":"

Endpunkte f\u00fcr Einstellungen, Skripte, Skript-Ketten und User-Presets.

"},{"location":"api/settings/#get-apisettings","title":"GET /api/settings","text":"

Liefert alle Einstellungen kategorisiert.

Response (Struktur):

{\n  \"categories\": [\n    {\n      \"category\": \"Pfade\",\n      \"settings\": [\n        {\n          \"key\": \"raw_dir\",\n          \"label\": \"Raw Ausgabeordner\",\n          \"type\": \"path\",\n          \"required\": true,\n          \"description\": \"...\",\n          \"defaultValue\": \"data/output/raw\",\n          \"options\": [],\n          \"validation\": { \"minLength\": 1 },\n          \"value\": \"data/output/raw\",\n          \"orderIndex\": 100\n        }\n      ]\n    }\n  ]\n}\n
"},{"location":"api/settings/#put-apisettingskey","title":"PUT /api/settings/:key","text":"

Aktualisiert eine einzelne Einstellung.

Request:

{ \"value\": \"/mnt/storage/raw\" }\n

Response:

{\n  \"setting\": {\n    \"key\": \"raw_dir\",\n    \"value\": \"/mnt/storage/raw\"\n  },\n  \"reviewRefresh\": {\n    \"triggered\": false,\n    \"reason\": \"not_ready\"\n  }\n}\n

reviewRefresh ist null oder ein Objekt mit Status der optionalen Review-Neuberechnung.

"},{"location":"api/settings/#put-apisettings","title":"PUT /api/settings","text":"

Aktualisiert mehrere Einstellungen atomar.

Request:

{\n  \"settings\": {\n    \"raw_dir\": \"/mnt/storage/raw\",\n    \"movie_dir\": \"/mnt/storage/movies\",\n    \"handbrake_preset_bluray\": \"H.264 MKV 1080p30\"\n  }\n}\n

Response:

{\n  \"changes\": [\n    { \"key\": \"raw_dir\", \"value\": \"/mnt/storage/raw\" },\n    { \"key\": \"movie_dir\", \"value\": \"/mnt/storage/movies\" }\n  ],\n  \"reviewRefresh\": {\n    \"triggered\": true,\n    \"jobId\": 42,\n    \"relevantKeys\": [\"handbrake_preset_bluray\"]\n  }\n}\n

Bei Validierungsfehlern kommt 400 mit error.details[].

"},{"location":"api/settings/#get-apisettingshandbrake-presets","title":"GET /api/settings/handbrake-presets","text":"

Liest Preset-Liste via HandBrakeCLI -z (mit Fallback auf konfigurierte Presets).

Response (Beispiel):

{\n  \"source\": \"handbrake-cli\",\n  \"message\": null,\n  \"options\": [\n    { \"label\": \"General/\", \"value\": \"__group__general\", \"disabled\": true, \"category\": \"General\" },\n    { \"label\": \"   Fast 1080p30\", \"value\": \"Fast 1080p30\", \"category\": \"General\" }\n  ]\n}\n
"},{"location":"api/settings/#post-apisettingspushovertest","title":"POST /api/settings/pushover/test","text":"

Sendet Testnachricht \u00fcber aktuelle PushOver-Settings.

Request (optional):

{\n  \"title\": \"Test\",\n  \"message\": \"Ripster Test\"\n}\n

Response:

{\n  \"result\": {\n    \"sent\": true,\n    \"eventKey\": \"test\",\n    \"requestId\": \"...\"\n  }\n}\n

Wenn PushOver deaktiviert ist oder Credentials fehlen, kommt i. d. R. ebenfalls 200 mit sent: false + reason.

"},{"location":"api/settings/#skripte","title":"Skripte","text":"

Basis: /api/settings/scripts

"},{"location":"api/settings/#get-apisettingsscripts","title":"GET /api/settings/scripts","text":"
{ \"scripts\": [ { \"id\": 1, \"name\": \"...\", \"scriptBody\": \"...\", \"orderIndex\": 1, \"createdAt\": \"...\", \"updatedAt\": \"...\" } ] }\n
"},{"location":"api/settings/#post-apisettingsscripts","title":"POST /api/settings/scripts","text":"
{ \"name\": \"Move\", \"scriptBody\": \"mv \\\"$RIPSTER_OUTPUT_PATH\\\" /mnt/movies/\" }\n

Response: 201 mit { \"script\": { ... } }

"},{"location":"api/settings/#put-apisettingsscriptsid","title":"PUT /api/settings/scripts/:id","text":"

Body wie POST, Response { \"script\": { ... } }.

"},{"location":"api/settings/#delete-apisettingsscriptsid","title":"DELETE /api/settings/scripts/:id","text":"

Response { \"removed\": { ... } }.

"},{"location":"api/settings/#post-apisettingsscriptsreorder","title":"POST /api/settings/scripts/reorder","text":"
{ \"orderedScriptIds\": [3, 1, 2] }\n

Response { \"scripts\": [ ... ] }.

"},{"location":"api/settings/#post-apisettingsscriptsidtest","title":"POST /api/settings/scripts/:id/test","text":"

F\u00fchrt Skript als Testlauf aus.

{\n  \"result\": {\n    \"scriptId\": 1,\n    \"scriptName\": \"Move\",\n    \"success\": true,\n    \"exitCode\": 0,\n    \"signal\": null,\n    \"timedOut\": false,\n    \"durationMs\": 120,\n    \"stdout\": \"...\",\n    \"stderr\": \"...\",\n    \"stdoutTruncated\": false,\n    \"stderrTruncated\": false\n  }\n}\n
"},{"location":"api/settings/#umgebungsvariablen-fur-skripte","title":"Umgebungsvariablen f\u00fcr Skripte","text":"

Diese Variablen werden beim Ausf\u00fchren gesetzt:

"},{"location":"api/settings/#skript-ketten","title":"Skript-Ketten","text":"

Basis: /api/settings/script-chains

Eine Kette hat Schritte vom Typ:

"},{"location":"api/settings/#get-apisettingsscript-chains","title":"GET /api/settings/script-chains","text":"

Response { \"chains\": [ ... ] } (inkl. steps[]).

"},{"location":"api/settings/#get-apisettingsscript-chainsid","title":"GET /api/settings/script-chains/:id","text":"

Response { \"chain\": { ... } }.

"},{"location":"api/settings/#post-apisettingsscript-chains","title":"POST /api/settings/script-chains","text":"
{\n  \"name\": \"After Encode\",\n  \"steps\": [\n    { \"stepType\": \"script\", \"scriptId\": 1 },\n    { \"stepType\": \"wait\", \"waitSeconds\": 15 },\n    { \"stepType\": \"script\", \"scriptId\": 2 }\n  ]\n}\n

Response: 201 mit { \"chain\": { ... } }

"},{"location":"api/settings/#put-apisettingsscript-chainsid","title":"PUT /api/settings/script-chains/:id","text":"

Body wie POST, Response { \"chain\": { ... } }.

"},{"location":"api/settings/#delete-apisettingsscript-chainsid","title":"DELETE /api/settings/script-chains/:id","text":"

Response { \"removed\": { ... } }.

"},{"location":"api/settings/#post-apisettingsscript-chainsreorder","title":"POST /api/settings/script-chains/reorder","text":"
{ \"orderedChainIds\": [2, 1, 3] }\n

Response { \"chains\": [ ... ] }.

"},{"location":"api/settings/#post-apisettingsscript-chainsidtest","title":"POST /api/settings/script-chains/:id/test","text":"

Response:

{\n  \"result\": {\n    \"chainId\": 2,\n    \"chainName\": \"After Encode\",\n    \"steps\": 3,\n    \"succeeded\": 3,\n    \"failed\": 0,\n    \"aborted\": false,\n    \"results\": []\n  }\n}\n
"},{"location":"api/settings/#user-presets","title":"User-Presets","text":"

Basis: /api/settings/user-presets

"},{"location":"api/settings/#get-apisettingsuser-presets","title":"GET /api/settings/user-presets","text":"

Optionaler Query-Parameter: media_type=bluray|dvd|other|all

{\n  \"presets\": [\n    {\n      \"id\": 1,\n      \"name\": \"Blu-ray HQ\",\n      \"mediaType\": \"bluray\",\n      \"handbrakePreset\": \"H.264 MKV 1080p30\",\n      \"extraArgs\": \"--encoder-preset slow\",\n      \"description\": \"...\",\n      \"createdAt\": \"...\",\n      \"updatedAt\": \"...\"\n    }\n  ]\n}\n
"},{"location":"api/settings/#post-apisettingsuser-presets","title":"POST /api/settings/user-presets","text":"
{\n  \"name\": \"Blu-ray HQ\",\n  \"mediaType\": \"bluray\",\n  \"handbrakePreset\": \"H.264 MKV 1080p30\",\n  \"extraArgs\": \"--encoder-preset slow\",\n  \"description\": \"optional\"\n}\n

Response: 201 mit { \"preset\": { ... } }

"},{"location":"api/settings/#put-apisettingsuser-presetsid","title":"PUT /api/settings/user-presets/:id","text":"

Body mit beliebigen Feldern aus POST, Response { \"preset\": { ... } }.

"},{"location":"api/settings/#delete-apisettingsuser-presetsid","title":"DELETE /api/settings/user-presets/:id","text":"

Response { \"removed\": { ... } }.

"},{"location":"api/settings/#weitere-endpunkte","title":"Weitere Endpunkte","text":""},{"location":"api/settings/#get-apisettingseffective-paths","title":"GET /api/settings/effective-paths","text":"

Liefert aufgel\u00f6ste, effektiv genutzte Pfade aus den Settings (f\u00fcr UI- und Diagnosezwecke).

"},{"location":"api/settings/#post-apisettingscoverartrecover","title":"POST /api/settings/coverart/recover","text":"

Startet eine manuelle Coverart-Recovery.

Response (Beispiel):

{\n  \"result\": { \"started\": true },\n  \"scheduler\": { \"enabled\": true }\n}\n
"},{"location":"api/settings/#activation-bytes-aax","title":"Activation Bytes (AAX)","text":""},{"location":"api/settings/#get-apisettingsactivation-bytes","title":"GET /api/settings/activation-bytes","text":"

Liest gecachte AAX-Activation-Bytes.

"},{"location":"api/settings/#post-apisettingsactivation-bytes","title":"POST /api/settings/activation-bytes","text":"

Speichert Activation-Bytes.

Request:

{\n  \"checksum\": \"abc123...\",\n  \"activationBytes\": \"1a2b3c4d\"\n}\n
"},{"location":"api/settings/#laufwerke","title":"Laufwerke","text":""},{"location":"api/settings/#get-apisettingsdrives","title":"GET /api/settings/drives","text":"

Liefert erkannte optische Laufwerke (/dev/...) inkl. MakeMKV-Disc-Index.

"},{"location":"api/settings/#post-apisettingsdrivesforce-unlock","title":"POST /api/settings/drives/force-unlock","text":"

Erzwingt Entsperren aktiver Laufwerkslocks.

Hinweis: Expertenmodus (ui_expert_mode) ist erforderlich, sonst 403.

Request (ein Laufwerk):

{ \"devicePath\": \"/dev/sr0\" }\n

Request (alle):

{ \"all\": true }\n
"},{"location":"api/settings/#ui-preferences","title":"UI Preferences","text":""},{"location":"api/settings/#get-apisettingsprefskey","title":"GET /api/settings/prefs/:key","text":"

Liest einen persistierten UI-Preference-Wert.

"},{"location":"api/settings/#put-apisettingsprefskey","title":"PUT /api/settings/prefs/:key","text":"

Speichert einen persistierten UI-Preference-Wert.

Request:

{ \"value\": \"{\\\"columns\\\":[\\\"id\\\",\\\"status\\\"]}\" }\n
"},{"location":"api/websocket/","title":"WebSocket Events","text":"

Ripster sendet Echtzeit-Updates \u00fcber /ws.

"},{"location":"api/websocket/#verbindung","title":"Verbindung","text":"
const ws = new WebSocket('ws://localhost:3001/ws');\n\nws.onmessage = (event) => {\n  const msg = JSON.parse(event.data);\n  console.log(msg.type, msg.payload);\n};\n
"},{"location":"api/websocket/#nachrichtenformat","title":"Nachrichtenformat","text":"

Die meisten Broadcasts haben dieses Schema:

{\n  \"type\": \"EVENT_TYPE\",\n  \"payload\": {},\n  \"timestamp\": \"2026-03-10T09:00:00.000Z\"\n}\n

Ausnahme: WS_CONNECTED beim Verbindungsaufbau enth\u00e4lt kein timestamp.

"},{"location":"api/websocket/#event-typen","title":"Event-Typen","text":""},{"location":"api/websocket/#ws_connected","title":"WS_CONNECTED","text":"

Sofort nach erfolgreicher Verbindung.

{\n  \"type\": \"WS_CONNECTED\",\n  \"payload\": {\n    \"connectedAt\": \"2026-03-10T09:00:00.000Z\"\n  }\n}\n
"},{"location":"api/websocket/#pipeline_state_changed","title":"PIPELINE_STATE_CHANGED","text":"

Neuer Pipeline-Snapshot.

{\n  \"type\": \"PIPELINE_STATE_CHANGED\",\n  \"payload\": {\n    \"state\": \"ENCODING\",\n    \"activeJobId\": 42,\n    \"progress\": 62.5,\n    \"eta\": \"00:12:34\",\n    \"statusText\": \"ENCODING 62.50%\",\n    \"context\": {},\n    \"jobProgress\": {\n      \"42\": {\n        \"state\": \"ENCODING\",\n        \"progress\": 62.5,\n        \"eta\": \"00:12:34\",\n        \"statusText\": \"ENCODING 62.50%\"\n      }\n    },\n    \"queue\": {\n      \"maxParallelJobs\": 1,\n      \"runningCount\": 1,\n      \"queuedCount\": 2,\n      \"runningJobs\": [],\n      \"queuedJobs\": []\n    }\n  }\n}\n
"},{"location":"api/websocket/#pipeline_progress","title":"PIPELINE_PROGRESS","text":"

Laufende Fortschrittsupdates.

{\n  \"type\": \"PIPELINE_PROGRESS\",\n  \"payload\": {\n    \"state\": \"ENCODING\",\n    \"activeJobId\": 42,\n    \"progress\": 62.5,\n    \"eta\": \"00:12:34\",\n    \"statusText\": \"ENCODING 62.50%\"\n  }\n}\n
"},{"location":"api/websocket/#pipeline_queue_changed","title":"PIPELINE_QUEUE_CHANGED","text":"

Queue-Snapshot aktualisiert.

"},{"location":"api/websocket/#disc_detected-disc_removed","title":"DISC_DETECTED / DISC_REMOVED","text":"

Disc-Insertion/-Removal.

{\n  \"type\": \"DISC_DETECTED\",\n  \"payload\": {\n    \"device\": {\n      \"path\": \"/dev/sr0\",\n      \"discLabel\": \"INCEPTION\",\n      \"model\": \"ASUS BW-16D1HT\",\n      \"fstype\": \"udf\",\n      \"mountpoint\": null,\n      \"mediaProfile\": \"bluray\"\n    }\n  }\n}\n

mediaProfile: bluray | dvd | other | null

"},{"location":"api/websocket/#hardware_monitor_update","title":"HARDWARE_MONITOR_UPDATE","text":"

Snapshot aus Hardware-Monitoring.

{\n  \"type\": \"HARDWARE_MONITOR_UPDATE\",\n  \"payload\": {\n    \"enabled\": true,\n    \"intervalMs\": 5000,\n    \"updatedAt\": \"2026-03-10T09:00:00.000Z\",\n    \"sample\": {\n      \"cpu\": {},\n      \"memory\": {},\n      \"gpu\": {},\n      \"storage\": {}\n    },\n    \"error\": null\n  }\n}\n
"},{"location":"api/websocket/#pipeline_error","title":"PIPELINE_ERROR","text":"

Fehler bei Disc-Event-Verarbeitung in Pipeline.

"},{"location":"api/websocket/#disk_detection_error","title":"DISK_DETECTION_ERROR","text":"

Fehler in Laufwerkserkennung.

"},{"location":"api/websocket/#settings_updated","title":"SETTINGS_UPDATED","text":"

Einzelnes Setting wurde gespeichert.

"},{"location":"api/websocket/#settings_bulk_updated","title":"SETTINGS_BULK_UPDATED","text":"

Bulk-Settings gespeichert.

{\n  \"type\": \"SETTINGS_BULK_UPDATED\",\n  \"payload\": {\n    \"count\": 3,\n    \"keys\": [\"raw_dir\", \"movie_dir\", \"handbrake_preset_bluray\"]\n  }\n}\n
"},{"location":"api/websocket/#settings_scripts_updated","title":"SETTINGS_SCRIPTS_UPDATED","text":"

Skript ge\u00e4ndert (created|updated|deleted|reordered).

"},{"location":"api/websocket/#settings_script_chains_updated","title":"SETTINGS_SCRIPT_CHAINS_UPDATED","text":"

Skript-Kette ge\u00e4ndert (created|updated|deleted|reordered).

"},{"location":"api/websocket/#user_presets_updated","title":"USER_PRESETS_UPDATED","text":"

User-Preset ge\u00e4ndert (created|updated|deleted).

"},{"location":"api/websocket/#cron_jobs_updated","title":"CRON_JOBS_UPDATED","text":"

Cron-Config ge\u00e4ndert (created|updated|deleted).

"},{"location":"api/websocket/#cron_job_updated","title":"CRON_JOB_UPDATED","text":"

Laufzeitstatus eines Cron-Jobs ge\u00e4ndert.

{\n  \"type\": \"CRON_JOB_UPDATED\",\n  \"payload\": {\n    \"id\": 1,\n    \"lastRunStatus\": \"running\",\n    \"lastRunAt\": \"2026-03-10T10:00:00.000Z\",\n    \"nextRunAt\": null\n  }\n}\n
"},{"location":"api/websocket/#runtime_activity_changed","title":"RUNTIME_ACTIVITY_CHANGED","text":"

Vollst\u00e4ndiger Snapshot aller laufenden und k\u00fcrzlich abgeschlossenen Aktivit\u00e4ten.

Wird ausgel\u00f6st, wenn eine Aktivit\u00e4t gestartet, aktualisiert oder abgeschlossen wird sowie nach clear-recent.

{\n  \"type\": \"RUNTIME_ACTIVITY_CHANGED\",\n  \"payload\": {\n    \"active\": [\n      {\n        \"id\": 7,\n        \"type\": \"chain\",\n        \"name\": \"Post-Encode Aufr\u00e4umen\",\n        \"status\": \"running\",\n        \"source\": \"cron\",\n        \"message\": \"Schritt 2 von 3\",\n        \"currentStep\": \"cleanup.sh\",\n        \"currentStepType\": \"script\",\n        \"stepIndex\": 2,\n        \"stepTotal\": 3,\n        \"canCancel\": true,\n        \"canNextStep\": false,\n        \"outcome\": \"running\",\n        \"startedAt\": \"2026-03-10T10:00:00.000Z\",\n        \"finishedAt\": null,\n        \"durationMs\": null\n      }\n    ],\n    \"recent\": [],\n    \"updatedAt\": \"2026-03-10T10:00:05.000Z\"\n  }\n}\n

Vollst\u00e4ndige Feldbeschreibung: Runtime Activities API.

"},{"location":"api/websocket/#converter_scan_update","title":"CONVERTER_SCAN_UPDATE","text":"

Wird nach einem Scan des Converter-Eingangsordners gesendet (manuell oder per Polling).

{\n  \"type\": \"CONVERTER_SCAN_UPDATE\",\n  \"payload\": {\n    \"entryCount\": 12\n  }\n}\n
"},{"location":"api/websocket/#downloads_updated","title":"DOWNLOADS_UPDATED","text":"

Wird bei jeder Status\u00e4nderung in der Download-Queue gesendet.

{\n  \"type\": \"DOWNLOADS_UPDATED\",\n  \"payload\": {\n    \"reason\": \"ready\",\n    \"item\": {\n      \"id\": \"dl-1\",\n      \"jobId\": 42,\n      \"status\": \"ready\",\n      \"archiveName\": \"Job_42_movie.zip\",\n      \"createdAt\": \"2026-03-30T10:00:00.000Z\"\n    },\n    \"summary\": {\n      \"total\": 3,\n      \"pending\": 1,\n      \"processing\": 0,\n      \"ready\": 1,\n      \"failed\": 1\n    }\n  }\n}\n

M\u00f6gliche reason-Werte: queued, processing, ready, failed, deleted.

"},{"location":"api/websocket/#reconnect-verhalten","title":"Reconnect-Verhalten","text":"

useWebSocket verbindet bei Abbruch automatisch neu:

"},{"location":"appendix/","title":"Technischer Anhang","text":"

Dieser Bereich enth\u00e4lt die technische Referenz hinter dem Benutzerhandbuch.

"},{"location":"appendix/#inhalt","title":"Inhalt","text":""},{"location":"appendix/#wann-du-in-den-anhang-wechselst","title":"Wann du in den Anhang wechselst","text":""},{"location":"architecture/","title":"Anhang: Architektur","text":"

Ripster ist eine Client-Server-Anwendung mit REST + WebSocket und externen CLI-Tools.

"},{"location":"architecture/#systemuberblick","title":"System\u00fcberblick","text":"
graph TB\n    subgraph Browser[\"Browser (React)\"]\n        Ripper[Ripper]\n        Settings[Einstellungen]\n        History[Historie]\n    end\n\n    subgraph Backend[\"Node.js Backend\"]\n        API[REST API\\nExpress]\n        WS[WebSocket\\n/ws]\n        Pipeline[pipelineService]\n        Cron[cronService]\n        DB[(SQLite)]\n    end\n\n    subgraph Tools[\"Externe Tools\"]\n        MakeMKV[makemkvcon]\n        HandBrake[HandBrakeCLI]\n        MediaInfo[mediainfo]\n    end\n\n    Browser <-->|HTTP| API\n    Browser <-->|WebSocket| WS\n    Pipeline --> MakeMKV\n    Pipeline --> HandBrake\n    Pipeline --> MediaInfo\n    API --> DB\n    Pipeline --> DB\n    Cron --> DB
"},{"location":"architecture/#details","title":"Details","text":""},{"location":"architecture/backend/","title":"Backend-Services","text":"

Das Backend ist in Services aufgeteilt, die von Express-Routen orchestriert werden. Seit v0.12.0 erfolgt die Medienverarbeitung \u00fcber ein Plugin-System.

"},{"location":"architecture/backend/#plugin-system-srcplugins","title":"Plugin-System (src/plugins/)","text":"

Ab v0.12.0 ist die Pipeline modular aufgebaut. Jeder Medientyp wird von einem eigenen Plugin verwaltet.

"},{"location":"architecture/backend/#basisklassen","title":"Basisklassen","text":""},{"location":"architecture/backend/#plugin-lifecycle","title":"Plugin-Lifecycle","text":"

Jedes Plugin implementiert die folgenden Methoden:

Methode Beschreibung detect(discInfo) Medientyp-Erkennung analyze(devicePath, job, ctx) Analyse / Metadaten-Extraktion rip(job, ctx) Rohdaten-Extraktion review(job, ctx) Optionale Vorschau-Vorbereitung encode(job, ctx) Finales Encoding/Konvertierung finalize(job, ctx) Nachbearbeitung onCancel(job, ctx) Bereinigung bei Abbruch onRetry(job, ctx) Zustand-Reset vor Retry"},{"location":"architecture/backend/#implementierte-plugins","title":"Implementierte Plugins","text":""},{"location":"architecture/backend/#pipelineservicejs","title":"pipelineService.js","text":"

Zentrale Workflow-Orchestrierung.

Aufgaben:

Wichtige Methoden:

"},{"location":"architecture/backend/#diskdetectionservicejs","title":"diskDetectionService.js","text":"

Pollt Laufwerk(e) und emittiert:

Zusatz:

"},{"location":"architecture/backend/#settingsservicejs","title":"settingsService.js","text":"

Settings-Layer mit Validation/Serialisierung.

Features:

"},{"location":"architecture/backend/#historyservicejs","title":"historyService.js","text":"

Historie + Dateioperationen.

Features:

"},{"location":"architecture/backend/#audiobookservicejs","title":"audiobookService.js","text":"

Audiobook-Verarbeitung (AAX/M4B).

Features:

"},{"location":"architecture/backend/#activationbytesservicejs","title":"activationBytesService.js","text":"

Verwaltung von Audible-Activation-Bytes f\u00fcr AAX-DRM-Handling.

Features:

"},{"location":"architecture/backend/#converterscanservicejs","title":"converterScanService.js","text":"

Dateisystem-\u00dcberwachung des Converter-Eingangsordners.

Features:

"},{"location":"architecture/backend/#downloadservicejs","title":"downloadService.js","text":"

Download-Queue f\u00fcr Ausgabedateien aus der Historie.

Features:

"},{"location":"architecture/backend/#cronservicejs","title":"cronService.js","text":"

Integriertes Cron-System ohne externe Parser-Library.

Features:

"},{"location":"architecture/backend/#runtimeactivityservicejs","title":"runtimeActivityService.js","text":"

In-Memory-Tracking aller laufenden und k\u00fcrzlich abgeschlossenen Aktivit\u00e4ten (Skripte, Ketten, Cron-Jobs, Tasks).

Features:

Limits:

Vollst\u00e4ndige API-Dokumentation: Runtime Activities API

"},{"location":"architecture/backend/#weitere-services","title":"Weitere Services","text":""},{"location":"architecture/backend/#bootstrapping-srcindexjs","title":"Bootstrapping (src/index.js)","text":"

Beim Start:

  1. DB init/migrate
  2. Pipeline-Init (inkl. Plugin-Registry)
  3. Cron-Init
  4. Express-Routes + Error-Handler
  5. WebSocket-Server auf /ws
  6. Hardware-Monitoring-Init
  7. Disk-Detection-Start
  8. Converter-Scan-Service-Init (Polling falls aktiviert)
"},{"location":"architecture/database/","title":"Datenbank","text":"

Ripster verwendet SQLite (backend/data/ripster.db).

"},{"location":"architecture/database/#tabellen","title":"Tabellen","text":"
settings_schema\nsettings_values\njobs\njob_lineage_artifacts\njob_output_folders\npipeline_state\nscripts\nscript_chains\nscript_chain_steps\nuser_presets\ncron_jobs\ncron_run_logs\naax_activation_bytes\nuser_prefs\nconverter_scan_entries\n
"},{"location":"architecture/database/#jobs","title":"jobs","text":"

Speichert Pipeline-Lifecycle und Artefakte pro Job.

Zentrale Felder:

Typische job_kind-Werte:

Wichtige Indizes:

"},{"location":"architecture/database/#job_lineage_artifacts","title":"job_lineage_artifacts","text":"

Verkn\u00fcpft Jobs mit ihren Quell-Jobs (z. B. Re-Encode aus einem vorherigen Rip).

Felder:

"},{"location":"architecture/database/#job_output_folders","title":"job_output_folders","text":"

Verfolgt Ausgabepfade pro Job (mehrere Ausgaben m\u00f6glich, z. B. bei Kapitel-Splitting).

Felder:

"},{"location":"architecture/database/#pipeline_state","title":"pipeline_state","text":"

Singleton-Tabelle (id = 1) f\u00fcr aktiven Snapshot:

"},{"location":"architecture/database/#settings_schema-settings_values","title":"settings_schema + settings_values","text":""},{"location":"architecture/database/#scripts-script_chains-script_chain_steps","title":"scripts, script_chains, script_chain_steps","text":""},{"location":"architecture/database/#user_presets","title":"user_presets","text":"

Benannte HandBrake-Preset-Sets:

"},{"location":"architecture/database/#cron_jobs-cron_run_logs","title":"cron_jobs + cron_run_logs","text":""},{"location":"architecture/database/#aax_activation_bytes","title":"aax_activation_bytes","text":"

Cache f\u00fcr Audible-Activation-Bytes (AAX-DRM).

Felder:

"},{"location":"architecture/database/#user_prefs","title":"user_prefs","text":"

Benutzer-spezifische Einstellungen (Key-Value).

Felder:

"},{"location":"architecture/database/#converter_scan_entries","title":"converter_scan_entries","text":"

DB-seitige Erfassung gescannter Dateien im Converter-Eingangsordner.

Felder:

"},{"location":"architecture/database/#migrationrecovery","title":"Migration/Recovery","text":"

Beim Start werden Schema und Settings-Metadaten automatisch abgeglichen.

Bei korruptem SQLite-File:

  1. Datei wird nach backend/data/corrupt-backups/ verschoben
  2. neue DB wird initialisiert
  3. Schema wird neu aufgebaut
"},{"location":"architecture/database/#direkte-inspektion","title":"Direkte Inspektion","text":"
sqlite3 backend/data/ripster.db\n\n.mode table\nSELECT id, status, title, media_type, created_at FROM jobs ORDER BY created_at DESC;\nSELECT id, parent_job_id, job_kind, is_multipart_movie, disc_number FROM jobs ORDER BY created_at DESC;\nSELECT key, value FROM settings_values ORDER BY key;\nSELECT checksum, activation_bytes FROM aax_activation_bytes;\nSELECT rel_path, job_id FROM converter_scan_entries;\n
"},{"location":"architecture/frontend/","title":"Frontend-Komponenten","text":"

Frontend: React + PrimeReact + Vite.

"},{"location":"architecture/frontend/#hauptseiten","title":"Hauptseiten","text":""},{"location":"architecture/frontend/#ripperpagejsx","title":"RipperPage.jsx","text":"

Pipeline-Steuerung:

"},{"location":"architecture/frontend/#settingspagejsx","title":"SettingsPage.jsx","text":"

Konfiguration:

"},{"location":"architecture/frontend/#historypagejsx","title":"HistoryPage.jsx","text":"

Historie:

"},{"location":"architecture/frontend/#converterpagejsx","title":"ConverterPage.jsx","text":"

Datei-Converter:

"},{"location":"architecture/frontend/#audiobookspagejsx","title":"AudiobooksPage.jsx","text":"

Dedizierter AAX-/Audiobook-Flow:

"},{"location":"architecture/frontend/#downloadspagejsx","title":"DownloadsPage.jsx","text":"

Download-Queue:

"},{"location":"architecture/frontend/#databasepagejsx","title":"DatabasePage.jsx","text":"

Expert-Modus:

"},{"location":"architecture/frontend/#wichtige-komponenten","title":"Wichtige Komponenten","text":""},{"location":"architecture/frontend/#api-client-apiclientjs","title":"API-Client (api/client.js)","text":""},{"location":"architecture/frontend/#websocket-hooksusewebsocketjs","title":"WebSocket (hooks/useWebSocket.js)","text":"

In App.jsx werden u. a. verarbeitet:

"},{"location":"architecture/frontend/#buildrun","title":"Build/Run","text":"
# dev\nnpm run dev --prefix frontend\n\n# prod build\nnpm run build --prefix frontend\n
"},{"location":"architecture/overview/","title":"Architektur-\u00dcbersicht","text":""},{"location":"architecture/overview/#kernprinzipien","title":"Kernprinzipien","text":""},{"location":"architecture/overview/#event-getriebene-pipeline","title":"Event-getriebene Pipeline","text":"

pipelineService h\u00e4lt einen Snapshot der State-Machine und broadcastet \u00c4nderungen sofort via WebSocket.

State-\u00c4nderung -> PIPELINE_STATE_CHANGED/PIPELINE_PROGRESS -> Frontend-Update\n
"},{"location":"architecture/overview/#service-layer","title":"Service-Layer","text":"
Route -> Service -> DB/Tool-Execution\n

Routes enthalten kaum Business-Logik.

"},{"location":"architecture/overview/#schema-getriebene-settings","title":"Schema-getriebene Settings","text":"

Settings sind DB-schema-getrieben (settings_schema + settings_values), UI rendert dynamisch aus diesen Daten.

"},{"location":"architecture/overview/#echtzeit-kommunikation","title":"Echtzeit-Kommunikation","text":"

WebSocket l\u00e4uft auf /ws.

Wichtige Events:

"},{"location":"architecture/overview/#prozessausfuhrung","title":"Prozessausf\u00fchrung","text":"

Externe Tools werden als Child-Processes gestartet (processRunner):

"},{"location":"architecture/overview/#persistenz","title":"Persistenz","text":"

SQLite-Datei: backend/data/ripster.db

Kern-Tabellen:

Beim Start werden Schema und Settings-Migrationen automatisch ausgef\u00fchrt.

"},{"location":"architecture/overview/#fehlerbehandlung","title":"Fehlerbehandlung","text":"

Zentrales Error-Handling liefert:

{\n  \"error\": {\n    \"message\": \"...\",\n    \"statusCode\": 400,\n    \"reqId\": \"...\",\n    \"details\": []\n  }\n}\n

Fehlgeschlagene Jobs bleiben in der Historie (Fehler oder Abgebrochen) und k\u00f6nnen erneut gestartet werden.

"},{"location":"architecture/overview/#cors-runtime-konfig","title":"CORS & Runtime-Konfig","text":""},{"location":"configuration/","title":"Anhang: Konfiguration","text":"

Dieser Abschnitt ist die technische Referenz zu allen Konfigurationsarten in Ripster.

"},{"location":"configuration/#inhalte","title":"Inhalte","text":""},{"location":"configuration/#zuruck-zum-handbuch","title":"Zur\u00fcck zum Handbuch","text":""},{"location":"configuration/environment/","title":"Umgebungsvariablen","text":"

Umgebungsvariablen steuern Backend/Vite au\u00dferhalb der DB-basierten UI-Settings.

"},{"location":"configuration/environment/#backend-backendenv","title":"Backend (backend/.env)","text":"Variable Default (Code) Beschreibung PORT 3001 Express-Port DB_PATH backend/data/ripster.db SQLite-Datei (relativ zu backend/) LOG_DIR backend/logs Fallback-Logverzeichnis (wenn log_dir-Setting nicht gesetzt/lesbar) CORS_ORIGIN * CORS-Origin f\u00fcr API LOG_LEVEL info debug, info, warn, error

Beispiel:

PORT=3001\nDB_PATH=/var/lib/ripster/ripster.db\nLOG_DIR=/var/log/ripster\nCORS_ORIGIN=http://192.168.1.50:5173\nLOG_LEVEL=info\n

Hinweis: backend/.env.example enth\u00e4lt bewusst dev-freundliche Werte (z. B. lokaler CORS_ORIGIN).

"},{"location":"configuration/environment/#frontend-frontendenv","title":"Frontend (frontend/.env)","text":"Variable Default Beschreibung VITE_API_BASE /api API-Basis f\u00fcr Fetch-Client VITE_WS_URL automatisch aus window.location + /ws Optional explizite WebSocket-URL VITE_PUBLIC_ORIGIN leer \u00d6ffentliche Vite-Origin (Remote-Dev) VITE_ALLOWED_HOSTS true Komma-separierte Hostliste f\u00fcr Vite allowedHosts VITE_HMR_PROTOCOL abgeleitet aus VITE_PUBLIC_ORIGIN HMR-Protokoll (ws/wss) VITE_HMR_HOST abgeleitet aus VITE_PUBLIC_ORIGIN HMR-Host VITE_HMR_CLIENT_PORT abgeleitet aus VITE_PUBLIC_ORIGIN HMR-Client-Port

Beispiele:

# lokal (mit Vite-Proxy)\nVITE_API_BASE=/api\n
# remote dev\nVITE_API_BASE=http://192.168.1.50:3001/api\nVITE_WS_URL=ws://192.168.1.50:3001/ws\nVITE_PUBLIC_ORIGIN=http://192.168.1.50:5173\nVITE_ALLOWED_HOSTS=192.168.1.50,ripster.local\nVITE_HMR_PROTOCOL=ws\nVITE_HMR_HOST=192.168.1.50\nVITE_HMR_CLIENT_PORT=5173\n
"},{"location":"configuration/environment/#prioritat","title":"Priorit\u00e4t","text":"
  1. Prozess-Umgebungsvariablen
  2. .env
  3. Code-Defaults
"},{"location":"configuration/settings-reference/","title":"Einstellungsreferenz","text":"

Diese Seite beschreibt jede aktuelle Einstellung aus der Settings-GUI: was technisch passiert und warum man sie setzt.

"},{"location":"configuration/settings-reference/#lesehilfe","title":"Lesehilfe","text":""},{"location":"configuration/settings-reference/#wie-diese-seite-zu-lesen-ist","title":"Wie diese Seite zu lesen ist","text":"

Wenn du nicht von oben bis unten lesen willst, helfen diese typischen Einstiegsfragen:

"},{"location":"configuration/settings-reference/#vollstandige-feldliste","title":"Vollst\u00e4ndige Feldliste","text":""},{"location":"configuration/settings-reference/#kategorie-benachrichtigungen","title":"Kategorie: Benachrichtigungen","text":"GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen? Expertenmodus ui_expert_mode boolean false Standard Schaltet erweiterte Einstellungen in der UI ein. Wird sofort einzeln gespeichert und beeinflusst Sichtbarkeit von Feldern/Kategorien. Wenn du selten benoetigte technische Felder sehen willst (z.B. Logging- oder CLI-Details). PushOver aktiviert pushover_enabled boolean false Standard Master-Schalter f\u00fcr PushOver Versand. Wenn du aktive Laufzeit-Benachrichtigungen auf Mobilgeraete erhalten willst. PushOver Token pushover_token string leer Standard Application Token f\u00fcr PushOver. Wenn Ripster in deine PushOver-App senden soll (Token aus PushOver-App-Config). PushOver User pushover_user string leer Standard User-Key f\u00fcr PushOver. Wenn Benachrichtigungen an einen bestimmten PushOver-Account gehen sollen. PushOver Device (optional) pushover_device string leer Expertenmodus Optionales Ziel-Device in PushOver. Wenn Nachrichten nur auf ein bestimmtes Endgeraet zugestellt werden sollen. PushOver Titel-Pr\u00e4fix pushover_title_prefix string Ripster Standard Prefix im PushOver Titel. Wenn du Meldungen mehrerer Instanzen sauber unterscheiden willst (z.B. \"Ripper-Wohnzimmer\"). PushOver Priority pushover_priority number 0 Expertenmodus Priorit\u00e4t -2 bis 2. Wenn Meldungen bewusst leiser (niedrig) oder dringender (hoch) zugestellt werden sollen. PushOver Timeout (ms) pushover_timeout_ms number 7000 Expertenmodus HTTP Timeout f\u00fcr PushOver Requests. Wenn PushOver bei schlechter Verbindung mehr oder weniger Zeit fuer den Request bekommen soll. Bei manueller Auswahl senden pushover_notify_metadata_ready boolean true Standard Sendet, wenn ein Job eine manuelle Auswahl/Entscheidung ben\u00f6tigt (z.B. Metadaten, Titel oder Playlist). Wenn 'Bei manueller Auswahl senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. Bei Rip-Start senden pushover_notify_rip_started boolean true Standard Sendet beim Start des MakeMKV-Rips. Wenn 'Bei Rip-Start senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. Bei Encode-Start senden pushover_notify_encoding_started boolean true Standard Sendet beim Start von HandBrake. Wenn 'Bei Encode-Start senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. Bei Erfolg senden pushover_notify_job_finished boolean true Standard Sendet bei erfolgreich abgeschlossenem Job. Wenn 'Bei Erfolg senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. Bei Fehler senden pushover_notify_job_error boolean true Standard Sendet bei Fehlern in der Pipeline. Wenn 'Bei Fehler senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. Bei Abbruch senden pushover_notify_job_cancelled boolean true Standard Sendet wenn Job manuell abgebrochen wurde. Wenn 'Bei Abbruch senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. Bei Re-Encode Start senden pushover_notify_reencode_started boolean true Standard Sendet beim Start von RAW Re-Encode. Wenn 'Bei Re-Encode Start senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen. Bei Re-Encode Erfolg senden pushover_notify_reencode_finished boolean true Standard Sendet bei erfolgreichem RAW Re-Encode. Wenn 'Bei Re-Encode Erfolg senden' bewusst ein- oder ausgeschaltet werden soll, um den Ablauf an deine Umgebung anzupassen."},{"location":"configuration/settings-reference/#kategorie-converter","title":"Kategorie: Converter","text":"GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen? 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\u00fcr den Scan (ohne Punkt). Steuert sowohl Upload-Validierung als auch Converter-Scan-Filter. Wenn 'Erlaubte Datei-Endungen' vom Default abweichen soll. Auto-Scan (Polling) converter_polling_enabled boolean false Standard Converter Raw-Ordner automatisch in regelm\u00e4\u00dfigen Abst\u00e4nden scannen. Wenn neue Dateien im Converter-Ordner automatisch erscheinen sollen, ohne manuellen Scan. Polling-Intervall (Sekunden) converter_polling_interval number 300 Standard Intervall f\u00fcr automatischen Scan des Converter-Ordners. Wenn der Auto-Scan schneller (kleiner Wert) oder ressourcenschonender (groesserer Wert) laufen soll."},{"location":"configuration/settings-reference/#kategorie-laufwerk","title":"Kategorie: Laufwerk","text":"GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen? Laufwerksmodus drive_mode select auto Standard Auto-Discovery oder explizites Device. Wenn du zwischen automatischer Laufwerkserkennung und fixer Device-Liste umschalten willst. Explizite Laufwerke drive_devices path [] Standard Laufwerke f\u00fcr 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. Wird als JSON gespeichert und vom Laufwerksdienst fuer explizite Zuordnung genutzt. Wenn auf dem Host mehrere Laufwerke stabil gemappt werden muessen (z.B. /dev/sr0=disc:0, /dev/sr1=disc:1). Device Pfad drive_device path /dev/sr0 Ausgeblendet (nur API/DB) Nur f\u00fcr expliziten Modus, z.B. /dev/sr0. Wenn 'Device Pfad' vom Default abweichen soll. MakeMKV Source Index makemkv_source_index number 0 Ausgeblendet (nur API/DB) Disc Index im Auto-Modus. Wenn 'MakeMKV Source Index' fuer Performance, Last oder Genauigkeit feinjustiert werden soll. Automatische Disk-Erkennung disc_auto_detection_enabled boolean true Standard Wenn deaktiviert, findet keine automatische Laufwerkspr\u00fcfung statt. Neue Disks werden nur per \"Laufwerk neu lesen\" erkannt. Wenn Discs nur manuell statt automatisch erkannt werden sollen. Polling Intervall (ms) disc_poll_interval_ms number 4000 Expertenmodus Intervall f\u00fcr Disk-Erkennung. Wenn die Erkennung schneller reagieren oder weniger oft pollen soll. 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). Wenn ein Laufwerk nach erfolgreichem Rip direkt freigegeben/ausgeworfen werden soll."},{"location":"configuration/settings-reference/#kategorie-logging","title":"Kategorie: Logging","text":"GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen? Terminal-Ausgabe aktiv server_console_log_output_enabled boolean true Expertenmodus Master-Schalter f\u00fcr die Ausgabe der Server-Logs im Terminal (z.B. start.sh). Das Schreiben in Log-Dateien bleibt immer aktiv. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. Wenn Terminal-Logs bei Betrieb unter Service/SSH ein- oder ausgeschaltet werden sollen. 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\u00e4ndert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. Wenn HTTP-Request-Logs im Terminal fuer API-Debugging gebraucht werden. DEBUG im Terminal server_console_log_debug_enabled boolean true Expertenmodus Steuert DEBUG-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unver\u00e4ndert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. Wenn detailreiche DEBUG-Logs im Terminal benoetigt werden (Fehlersuche). INFO im Terminal server_console_log_info_enabled boolean true Expertenmodus Steuert INFO-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unver\u00e4ndert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. Wenn normale INFO-Laufzeitmeldungen im Terminal sichtbar sein sollen. WARN im Terminal server_console_log_warn_enabled boolean true Expertenmodus Steuert WARN-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unver\u00e4ndert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. Wenn Warnungen im Terminal hervorgehoben bleiben sollen. ERROR im Terminal server_console_log_error_enabled boolean true Expertenmodus Steuert ERROR-Meldungen in der Terminal-Ausgabe. Dateilogs bleiben unver\u00e4ndert. Aenderung wirkt direkt auf die Terminal-Logausgabe, Dateilogging bleibt erhalten. Wenn Fehler zwingend im Terminal sichtbar sein sollen."},{"location":"configuration/settings-reference/#kategorie-metadaten","title":"Kategorie: Metadaten","text":"GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen? TMDb Read Access Token tmdb_api_read_access_token string leer Standard Read Access Token f\u00fcr Serien-Metadaten \u00fcber TheMovieDB (TMDb). Wird von TMDb-Service und Serienzuordnung in Analyse/Metadaten-Dialog genutzt. Wenn TMDb-Metadaten (Suche/Zuordnung/Serienepisoden) verl\u00e4sslich funktionieren sollen. Film-Sprache dvd_series_language string de-DE Standard Bevorzugte TMDb-Sprache f\u00fcr Film- und Serienmetadaten (DVD/Blu-ray), z.B. de-DE oder en-US. Wird von TMDb-Service und Serienzuordnung in Analyse/Metadaten-Dialog genutzt. Wenn bevorzugt deutsche, englische oder andere lokalisierte Metadaten genutzt werden sollen. Fallback Sprache dvd_series_fallback_languages string de-DE,en-US Standard Kommagetrennte TMDb-Fallback-Sprachen f\u00fcr Film- und Serienmetadaten (DVD/Blu-ray), z.B. de-DE,en-US,fr-FR. Wird von TMDb-Service und Serienzuordnung in Analyse/Metadaten-Dialog genutzt. Wenn bei fehlender Prim\u00e4rsprache automatisch andere Sprachversionen ausprobiert werden sollen. Coverart-Nachladen aktiv coverart_recovery_enabled boolean true Standard Wenn aktiv, werden fehlende Coverarts automatisch in Intervallen gepr\u00fcft und nachgeladen. Aenderung aktualisiert den Coverart-Recovery-Scheduler. Wenn fehlende Cover sp\u00e4ter automatisch nachgezogen werden sollen. Coverart-Pr\u00fcfintervall (Stunden) coverart_recovery_interval_hours number 6 Standard Intervall f\u00fcr automatische Pr\u00fcfung fehlender Coverarts in Stunden. Aenderung aktualisiert den Coverart-Recovery-Scheduler. Wenn der Nachlade-Job haeufiger oder seltener laufen soll. NFO nach Encode erzeugen generate_nfo_after_encode boolean false Standard Erstellt nach erfolgreichem Encode automatisch eine .nfo-Datei neben der Ausgabedatei. Wird nach erfolgreichem Encode in der Historie/Pipeline ausgewertet. Wenn neben der Ausgabedatei automatisch eine .nfo fuer Media-Center erzeugt werden soll."},{"location":"configuration/settings-reference/#kategorie-monitoring","title":"Kategorie: Monitoring","text":"GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen? Hardware Monitoring aktiviert hardware_monitoring_enabled boolean true Standard Master-Schalter: aktiviert/deaktiviert das komplette Hardware-Monitoring (Polling + Berechnung + WebSocket-Updates). Aenderung triggert Re-Konfiguration des Hardware-Monitoring-Dienstes. Wenn CPU/RAM/GPU/Speicher live sichtbar sein sollen. Hardware Monitoring Intervall (ms) hardware_monitoring_interval_ms number 5000 Expertenmodus Polling-Intervall f\u00fcr CPU/RAM/GPU/Storage-Metriken. Aenderung triggert Re-Konfiguration des Hardware-Monitoring-Dienstes. Wenn Monitoring h\u00e4ufiger aktualisiert oder Last reduziert werden soll."},{"location":"configuration/settings-reference/#kategorie-pfade","title":"Kategorie: Pfade","text":"GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen? Raw Ausgabeordner (Blu-ray) raw_dir_bluray path leer Standard Optionaler RAW-Zielpfad nur f\u00fcr Blu-ray. Leer = Fallback auf \"Raw Ausgabeordner\". Wenn 'Raw Ausgabeordner (Blu-ray)' vom Default abweichen soll. Raw Ausgabeordner (DVD) raw_dir_dvd path leer Standard Optionaler RAW-Zielpfad nur f\u00fcr DVD. Leer = Fallback auf \"Raw Ausgabeordner\". Wenn 'Raw Ausgabeordner (DVD)' vom Default abweichen soll. CD RAW-Ordner raw_dir_cd path leer Standard Basisordner f\u00fcr rohe CD-WAV-Dateien (cdparanoia-Output). Leer = Standardpfad (data/output/cd). Wenn 'CD RAW-Ordner' vom Default abweichen soll. Audiobook RAW-Ordner raw_dir_audiobook path leer Standard Basisordner f\u00fcr hochgeladene AAX-Dateien. Leer = Standardpfad (data/output/audiobook-raw). Wenn 'Audiobook RAW-Ordner' vom Default abweichen soll. Serien-Ordner (Blu-ray) series_dir_bluray path leer Standard Zielordner f\u00fcr Blu-ray-Serienfolgen. Leer = Standardpfad (data/output/series). Wenn 'Serien-Ordner (Blu-ray)' vom Default abweichen soll. Film Ausgabeordner (Blu-ray) movie_dir_bluray path leer Standard Optionaler Encode-Zielpfad nur f\u00fcr Blu-ray. Leer = Fallback auf \"Film Ausgabeordner\". Wenn 'Film Ausgabeordner (Blu-ray)' vom Default abweichen soll. Film Ausgabeordner (DVD) movie_dir_dvd path leer Standard Optionaler Encode-Zielpfad nur f\u00fcr DVD. Leer = Fallback auf \"Film Ausgabeordner\". Wenn 'Film Ausgabeordner (DVD)' vom Default abweichen soll. Serien-Ordner (DVD) series_dir_dvd path leer Standard Zielordner f\u00fcr DVD-Serienfolgen. Leer = Standardpfad (data/output/series). Wenn 'Serien-Ordner (DVD)' vom Default abweichen soll. CD Output-Ordner movie_dir_cd path leer Standard Zielordner f\u00fcr encodierte CD-Ausgaben (FLAC, MP3 usw.). Leer = gleicher Ordner wie CD RAW-Ordner. Wenn 'CD Output-Ordner' vom Default abweichen soll. Audiobook Output-Ordner movie_dir_audiobook path leer Standard Zielordner f\u00fcr encodierte Audiobook-Dateien. Leer = Standardpfad (data/output/audiobooks). Wenn 'Audiobook Output-Ordner' vom Default abweichen soll. Download ZIP-Ordner download_dir path leer Standard Zielordner f\u00fcr vorbereitete ZIP-Downloads. Leer = Standardpfad (data/downloads). Leere Werte nutzen automatisch den Installations-Defaultpfad. Wenn RAW/Output/Download auf andere Datentraeger verschoben werden sollen (z.B. grosse HDD/NAS). Externe Speicher external_storage_paths path [] Standard Wird links unter \"Freie Speicher\" angezeigt. Wenn 'Externe Speicher' vom Default abweichen soll. Log Ordner log_dir path installationsabhaengig Standard Basisordner f\u00fcr Logs. Job-Logs liegen direkt hier, Backend-Logs in /backend. Wird zur Laufzeit angewendet; bei ungueltigem Pfad faellt Ripster auf Fallback-Logpfad zurueck. Wenn Logs auf ein anderes Medium sollen (z.B. persistentes NAS/SSD statt Standardpfad). CD Output Template cd_output_template string {artist} - {album} ({year})/{trackNr} {artist} - {title} Standard Template f\u00fcr relative CD-Ausgabepfade ohne Dateiendung. Platzhalter: {artist}, {album}, {year}, {title}, {trackNr}, {trackNo}. Unterordner sind \u00fcber \"/\" m\u00f6glich. Die Endung wird \u00fcber das gew\u00e4hlte Ausgabeformat gesetzt. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. Output Template (Blu-ray) output_template_bluray string ${title} (${year})/${title} (${year}) Standard Template f\u00fcr Ordner und Dateiname. Platzhalter: ${title}, ${year}, ${imdbId}. Unterordner \u00fcber \"/\" m\u00f6glich \u2013 alles nach dem letzten \"/\" ist der Dateiname. Die Endung wird \u00fcber das gew\u00e4hlte Ausgabeformat gesetzt. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. Output Template (Blu-ray Serie, Episode) output_template_bluray_series_episode string {seriesTitle}/Staffel {seasonNr}/S{seasonNr}E{episodeNr} - {episodeTitle} Standard Template f\u00fcr einzelne Blu-ray-Serienepisoden ohne Dateiendung. Platzhalter: {seriesTitle}, {seasonNr}, {episodeNr}, {episodeTitle}, {discNr}, {year}, {language}. Optional mit f\u00fchrender Null: {0:seasonNr}, {0:episodeNr}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. 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\u00fcr zusammengefasste Blu-ray-Serienepisoden ohne Dateiendung. Platzhalter: {seriesTitle}, {seasonNr}, {episodeNoStart}, {episodeNoEnd}, {episodeRange}, {episodeTitle}, {parts}, {discNr}, {year}, {language}. Optional mit f\u00fchrender Null: {0:seasonNr}, {0:episodeNoStart}, {0:episodeNoEnd}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. Output Template (DVD) output_template_dvd string ${title} (${year})/${title} (${year}) Standard Template f\u00fcr Ordner und Dateiname. Platzhalter: ${title}, ${year}, ${imdbId}. Unterordner \u00fcber \"/\" m\u00f6glich \u2013 alles nach dem letzten \"/\" ist der Dateiname. Die Endung wird \u00fcber das gew\u00e4hlte Ausgabeformat gesetzt. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. Output Template (DVD Serie, Episode) output_template_dvd_series_episode string {seriesTitle}/Season {seasonNr}/{seriesTitle} - S{seasonNo}E{episodeNo} - {episodeTitle} Standard Template f\u00fcr einzelne DVD-Serienepisoden ohne Dateiendung. Platzhalter: {seriesTitle}, {seasonNr}, {episodeNr}, {episodeTitle}, {discNr}, {year}, {language}. Optional mit f\u00fchrender Null: {0:seasonNr}, {0:episodeNr}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. Output Template (DVD Serie, Multi-Episode) output_template_dvd_series_multi_episode string {seriesTitle}/Season {seasonNr}/{seriesTitle} - S{seasonNo}E{episodeRange} Standard Template f\u00fcr zusammengefasste DVD-Serienepisoden ohne Dateiendung. Platzhalter: {seriesTitle}, {seasonNr}, {episodeNoStart}, {episodeNoEnd}, {episodeRange}, {episodeTitle}, {parts}, {discNr}, {year}, {language}. Optional mit f\u00fchrender Null: {0:seasonNr}, {0:episodeNoStart}, {0:episodeNoEnd}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. Output Template (Audiobook) output_template_audiobook string {author}/{author} - {title} ({year}) Standard Template f\u00fcr relative Audiobook-Ausgabepfade ohne Dateiendung. Platzhalter: {author}, {title}, {year}, {narrator}, {series}, {part}, {format}. Unterordner sind \u00fcber \"/\" m\u00f6glich. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. Audiobook RAW Template audiobook_raw_template string {author} - {title} ({year}) Standard Template f\u00fcr relative Audiobook-RAW-Ordner. Platzhalter: {author}, {title}, {year}, {narrator}, {series}, {part}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. Converter Raw-Ordner converter_raw_dir path leer Standard Eingangsordner f\u00fcr den Converter (Import-Scan und Datei-Uploads). Jeder Upload erh\u00e4lt einen Unterordner. Leer = Standardpfad (data/output/converter-raw). Leere Werte nutzen automatisch den Installations-Defaultpfad. Wenn RAW/Output/Download auf andere Datentraeger verschoben werden sollen (z.B. grosse HDD/NAS). Converter Ausgabe (Video) converter_movie_dir path leer Standard Ausgabepfad f\u00fcr konvertierte Video-Dateien. Leer = Standardpfad (data/output/converted-movies). Leere Werte nutzen automatisch den Installations-Defaultpfad. Wenn RAW/Output/Download auf andere Datentraeger verschoben werden sollen (z.B. grosse HDD/NAS). Converter Ausgabe (Audio) converter_audio_dir path leer Standard Ausgabepfad f\u00fcr konvertierte Audio-Dateien. Leer = Standardpfad (data/output/converted-audio). Leere Werte nutzen automatisch den Installations-Defaultpfad. Wenn RAW/Output/Download auf andere Datentraeger verschoben werden sollen (z.B. grosse HDD/NAS). Output-Template (Video) converter_output_template_video string {title} Standard Dateiname-Template f\u00fcr konvertierte Video-Dateien (ohne Endung). Platzhalter: {title}, {year}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. Output-Template (Audio) converter_output_template_audio string {artist} - {title} Standard Dateiname-Template f\u00fcr konvertierte Audio-Dateien (ohne Endung). Platzhalter: {artist}, {title}, {album}, {year}, {trackNr}. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren. RAW-Ordner (Blu-ray Serie) raw_dir_bluray_series path leer Standard RAW-Zielpfad f\u00fcr Blu-ray-Serien. Leer = gleicher Pfad wie RAW-Ordner (Blu-ray). Wenn 'RAW-Ordner (Blu-ray Serie)' vom Default abweichen soll. Eigent\u00fcmer RAW-Ordner (Blu-ray Serie) raw_dir_bluray_series_owner string leer Standard Eigent\u00fcmer der Dateien im Format user:gruppe f\u00fcr Blu-ray-Serien-RAW. Leer = Eigent\u00fcmer Raw-Ordner (Blu-ray). Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer Raw-Ordner (Blu-ray) raw_dir_bluray_owner string leer Standard Eigent\u00fcmer der Dateien im Format user:gruppe. Nur aktiv wenn ein alternativer Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. RAW-Ordner (DVD Serie) raw_dir_dvd_series path leer Standard RAW-Zielpfad f\u00fcr DVD-Serien. Leer = gleicher Pfad wie RAW-Ordner (DVD). Wenn 'RAW-Ordner (DVD Serie)' vom Default abweichen soll. Eigent\u00fcmer RAW-Ordner (DVD Serie) raw_dir_dvd_series_owner string leer Standard Eigent\u00fcmer der Dateien im Format user:gruppe f\u00fcr DVD-Serien-RAW. Leer = Eigent\u00fcmer Raw-Ordner (DVD). Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer Raw-Ordner (DVD) raw_dir_dvd_owner string leer Standard Eigent\u00fcmer der Dateien im Format user:gruppe. Nur aktiv wenn ein alternativer Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer CD RAW-Ordner raw_dir_cd_owner string leer Standard Eigent\u00fcmer der Dateien im Format user:gruppe. Nur aktiv wenn ein alternativer Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer Audiobook RAW-Ordner raw_dir_audiobook_owner string leer Standard Eigent\u00fcmer der Audiobook-RAW-Dateien im Format user:gruppe. Nur aktiv wenn ein Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer Converter RAW-Ordner converter_raw_dir_owner string leer Standard Eigent\u00fcmer der Converter-Eingabedateien im Format user:gruppe. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer Serien-Ordner (Blu-ray) series_dir_bluray_owner string leer Standard Eigent\u00fcmer der Blu-ray-Serienausgaben im Format user:gruppe. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer Film-Ordner (Blu-ray) movie_dir_bluray_owner string leer Standard Eigent\u00fcmer der Dateien im Format user:gruppe. Nur aktiv wenn ein alternativer Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer Film-Ordner (DVD) movie_dir_dvd_owner string leer Standard Eigent\u00fcmer der Dateien im Format user:gruppe. Nur aktiv wenn ein alternativer Pfad gesetzt ist. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer Serien-Ordner (DVD) series_dir_dvd_owner string leer Standard Eigent\u00fcmer der DVD-Serienausgaben im Format user:gruppe. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer CD Output-Ordner movie_dir_cd_owner string leer Standard Eigent\u00fcmer der encodierten CD-Ausgaben im Format user:gruppe. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer Audiobook Output-Ordner movie_dir_audiobook_owner string leer Standard Eigent\u00fcmer der encodierten Audiobook-Dateien im Format user:gruppe. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer Converter Video Output-Ordner converter_movie_dir_owner string leer Standard Eigent\u00fcmer der konvertierten Video-Dateien im Format user:gruppe. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer Converter Audio Output-Ordner converter_audio_dir_owner string leer Standard Eigent\u00fcmer der konvertierten Audio-Dateien im Format user:gruppe. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Eigent\u00fcmer Download ZIP-Ordner download_dir_owner string leer Standard Eigent\u00fcmer der vorbereiteten ZIP-Dateien im Format user:gruppe. Leer = Standardbenutzer des Dienstes. Wird beim Anlegen/Finalisieren per chown auf Zielpfade angewendet. Greift bei ZIP-Ordner, Archivdatei und Metadatei. Wenn Dateien/Ordner nicht dem Service-User gehoeren sollen (z.B. NAS-Freigaben). Beispiel: media:media. Kapitel Template (Audiobook) output_chapter_template_audiobook string {author}/{author} - {title} ({year})/{chapterNr} {chapterTitle} Standard Template f\u00fcr kapitelweise Audiobook-Ausgaben (MP3/FLAC) ohne Dateiendung. Platzhalter: {author}, {title}, {year}, {narrator}, {series}, {part}, {format}, {chapterNr}, {chapterNo}, {chapterTitle}. Unterordner sind \u00fcber \"/\" m\u00f6glich. Wenn Ausgabe-/Ordnernamen standardisiert werden sollen. Beispiel: Serien nach Staffel oder Kapitel in Unterordner strukturieren."},{"location":"configuration/settings-reference/#kategorie-tools","title":"Kategorie: Tools","text":"GUI-Feld Key Typ Default Sichtbarkeit Was passiert technisch? Warum/Wann setzen? MakeMKV Kommando makemkv_command string makemkvcon Expertenmodus Pfad oder Befehl f\u00fcr makemkvcon. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). MakeMKV Key makemkv_registration_key string leer Standard Optionaler Registrierungsschl\u00fcssel. Wird beim Speichern nach ~/.MakeMKV/settings.conf synchronisiert. Darunter kann der aktuelle Betakey per API \u00fcbernommen werden. Wenn MakeMKV-Features ohne Trial-Limit genutzt werden sollen (inkl. Betakey-Usecase). Mediainfo Kommando mediainfo_command string mediainfo Expertenmodus Pfad oder Befehl f\u00fcr mediainfo. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). Minimale Titell\u00e4nge (Minuten) makemkv_min_length_minutes number 60 Standard Filtert kurze Titel beim Rip. Wenn kurze Bonus-/Trailer-Titel automatisch ausgefiltert werden sollen. TMDb Runtime-Abzug f\u00fcr Playlistfilter (%) playlist_tmdb_runtime_subtract_percent number 0 Standard Zieht optional einen Prozentsatz von der TMDb-Laufzeit ab, damit Ripster bei problematischen Blu-rays leicht k\u00fcrzere Hauptfassungen trotzdem als Playlist-Kandidaten zul\u00e4sst. Eine Mindesttoleranz von 2 Minuten nach unten bleibt erhalten. Wenn die Playlist-Analyse bei einzelnen Discs zu streng ist und der Hauptfilm knapp unter der TMDb-Laufzeit liegt. Beispiel: TMDb sagt 120 Minuten, die Disc liefert 116 bis 118 Minuten, aber die Fassung ist trotzdem korrekt. HandBrake Kommando handbrake_command string HandBrakeCLI Expertenmodus Pfad oder Befehl f\u00fcr HandBrakeCLI. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). Encode-Neustart: unvollst\u00e4ndige Ausgabe l\u00f6schen handbrake_restart_delete_incomplete_output boolean true Standard Wenn aktiv, wird bei \"Encode neu starten\" der bisherige (nicht erfolgreiche) Output vor Start entfernt. Wenn bei Encode-Neustart alte, unvollstaendige Dateien sicher entfernt werden sollen. Parallele Jobs pipeline_max_parallel_jobs number 1 Standard Maximale Anzahl parallel laufender Jobs. Weitere Starts landen in der Queue. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. Wenn Durchsatz und CPU-Last fuer Videojobs ausbalanciert werden sollen. 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\u00e4tzlich zum Gesamtlimit. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. Wenn mehrere Audio-CD-Jobs parallel erlaubt/begrenzt werden sollen. Script-Test Timeout (ms) script_test_timeout_ms number 0 Expertenmodus Timeout fuer Script-Tests in den Settings. 0 = kein Timeout. Wird beim Testlauf von Scripts in Settings angewendet. Wenn Script-Tests bei Haengern automatisch abgebrochen werden sollen. Max. Encodes gesamt (medienunabh\u00e4ngig) pipeline_max_total_encodes number 3 Standard Gesamtlimit f\u00fcr alle parallel laufenden Encode-Jobs (Film + Audio CD). Dieses Limit hat Vorrang vor den Einzellimits. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. Wenn ein harter Deckel fuer alle Encodes zusammen gelten soll. Audio CDs: Queue-Reihenfolge \u00fcberspringen pipeline_cd_bypasses_queue boolean false Standard Wenn aktiv, k\u00f6nnen Audio CD Jobs unabh\u00e4ngig von Film-Jobs starten (\u00fcberspringen die Film-Queue-Reihenfolge). Einzellimits und Gesamtlimit gelten weiterhin. Aenderung beeinflusst Queue-Pump und Startentscheidungen fuer neue Jobs. Wenn Audio-CD-Jobs nicht hinter langen Video-Warteschlangen blockieren sollen. cdparanoia Kommando cdparanoia_command string cdparanoia Expertenmodus Pfad oder Befehl f\u00fcr cdparanoia. Wird als Fallback genutzt wenn kein individuelles Kommando gesetzt ist. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). FFmpeg Kommando ffmpeg_command string ffmpeg Standard Pfad oder Befehl f\u00fcr ffmpeg. Wird f\u00fcr Audiobook-Encoding genutzt. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). FFprobe Kommando ffprobe_command string ffprobe Standard Pfad oder Befehl f\u00fcr ffprobe. Wird f\u00fcr Audiobook-Metadaten und Kapitel genutzt. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad). Mediainfo Extra Args mediainfo_extra_args_bluray string leer Expertenmodus Zus\u00e4tzliche CLI-Parameter f\u00fcr mediainfo (Blu-ray). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). MakeMKV Rip Modus makemkv_rip_mode_bluray select backup Ausgeblendet (nur API/DB) mkv: direkte MKV-Dateien; backup: vollst\u00e4ndige Blu-ray Struktur im RAW-Ordner. Wenn fuer 'MakeMKV Rip Modus' ein anderes Standardverhalten benoetigt wird. MakeMKV Analyze Extra Args makemkv_analyze_extra_args_bluray string leer Expertenmodus Zus\u00e4tzliche CLI-Parameter f\u00fcr Analyze (Blu-ray). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). MakeMKV Rip Extra Args makemkv_rip_extra_args_bluray string leer Expertenmodus Zus\u00e4tzliche CLI-Parameter f\u00fcr Rip (Blu-ray). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). HandBrake Preset handbrake_preset_bluray string H.264 MKV 1080p30 Standard Preset Name f\u00fcr -Z (Blu-ray). Leer = kein Preset, nur CLI-Parameter werden verwendet. Wenn ein bevorzugtes Standard-Preset fuer Blu-ray nicht jedes Mal manuell gewaehlt werden soll. 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-ma... Standard Zus\u00e4tzliche CLI-Argumente (Blu-ray). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). Review Audio-Sprachen (Blu-ray Film) handbrake_review_audio_languages_bluray_movie string leer Standard Kommagetrennte Sprachliste f\u00fcr die Review-Vorauswahl von Audio-Spuren bei Blu-ray-Filmen. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Audio-Auswahl vorgeben. Wenn bei Blu-ray-Filmen im Review nicht mehr alle Audio-Spuren vorausgew\u00e4hlt werden sollen, sondern nur bestimmte Sprachen. Review UT-Sprachen (Blu-ray Film) handbrake_review_subtitle_languages_bluray_movie string leer Standard Kommagetrennte Sprachliste f\u00fcr die Review-Vorauswahl von Untertiteln bei Blu-ray-Filmen. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Subtitle-Auswahl vorgeben. Wenn bei Blu-ray-Filmen im Review nicht mehr alle Untertitel vorausgew\u00e4hlt werden sollen, sondern nur bestimmte Sprachen. Review Audio-Sprachen (Blu-ray Serie) handbrake_review_audio_languages_bluray_series string leer Standard Kommagetrennte Sprachliste f\u00fcr die Review-Vorauswahl von Audio-Spuren bei Blu-ray-Serien. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Audio-Auswahl vorgeben. Wenn bei Blu-ray-Serien im Review nicht mehr alle Audio-Spuren vorausgew\u00e4hlt werden sollen, sondern nur bestimmte Sprachen. Review UT-Sprachen (Blu-ray Serie) handbrake_review_subtitle_languages_bluray_series string leer Standard Kommagetrennte Sprachliste f\u00fcr die Review-Vorauswahl von Untertiteln bei Blu-ray-Serien. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Subtitle-Auswahl vorgeben. Wenn bei Blu-ray-Serien im Review nicht mehr alle Untertitel vorausgew\u00e4hlt werden sollen, sondern nur bestimmte Sprachen. Ausgabeformat output_extension_bluray select mkv Standard Dateiendung f\u00fcr finale Datei (Blu-ray). Wenn finale Blu-ray-Dateien standardmaessig als MKV oder MP4 ausgegeben werden sollen. Mediainfo Extra Args mediainfo_extra_args_dvd string leer Expertenmodus Zus\u00e4tzliche CLI-Parameter f\u00fcr mediainfo (DVD). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). MakeMKV Rip Modus makemkv_rip_mode_dvd select mkv Ausgeblendet (nur API/DB) mkv: direkte MKV-Dateien; backup: vollst\u00e4ndige Disc-Struktur im RAW-Ordner. Wenn fuer 'MakeMKV Rip Modus' ein anderes Standardverhalten benoetigt wird. MakeMKV Analyze Extra Args makemkv_analyze_extra_args_dvd string leer Expertenmodus Zus\u00e4tzliche CLI-Parameter f\u00fcr Analyze (DVD). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). MakeMKV Rip Extra Args makemkv_rip_extra_args_dvd string leer Expertenmodus Zus\u00e4tzliche CLI-Parameter f\u00fcr Rip (DVD). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). HandBrake Preset handbrake_preset_dvd string H.264 MKV 480p30 Standard Preset Name f\u00fcr -Z (DVD). Leer = kein Preset, nur CLI-Parameter werden verwendet. Wenn ein bevorzugtes Standard-Preset fuer DVD nicht jedes Mal manuell gewaehlt werden soll. 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-ma... Standard Zus\u00e4tzliche CLI-Argumente (DVD). Wenn du das CLI-Verhalten feinjustieren willst (Codec, Sprache, Untertitel, Analyse-Optionen). Review Audio-Sprachen (DVD Film) handbrake_review_audio_languages_dvd_movie string leer Standard Kommagetrennte Sprachliste f\u00fcr die Review-Vorauswahl von Audio-Spuren bei DVD-Filmen. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Audio-Auswahl vorgeben. Wenn bei DVD-Filmen im Review nicht mehr alle Audio-Spuren vorausgew\u00e4hlt werden sollen, sondern nur bestimmte Sprachen. Review UT-Sprachen (DVD Film) handbrake_review_subtitle_languages_dvd_movie string leer Standard Kommagetrennte Sprachliste f\u00fcr die Review-Vorauswahl von Untertiteln bei DVD-Filmen. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Subtitle-Auswahl vorgeben. Wenn bei DVD-Filmen im Review nicht mehr alle Untertitel vorausgew\u00e4hlt werden sollen, sondern nur bestimmte Sprachen. Review Audio-Sprachen (DVD Serie) handbrake_review_audio_languages_dvd_series string leer Standard Kommagetrennte Sprachliste f\u00fcr die Review-Vorauswahl von Audio-Spuren bei DVD-Serien. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Audio-Auswahl vorgeben. Wenn bei DVD-Serien im Review nicht mehr alle Audio-Spuren vorausgew\u00e4hlt werden sollen, sondern nur bestimmte Sprachen. Review UT-Sprachen (DVD Serie) handbrake_review_subtitle_languages_dvd_series string leer Standard Kommagetrennte Sprachliste f\u00fcr die Review-Vorauswahl von Untertiteln bei DVD-Serien. Beispiel: de,en,jp. Greift nur, wenn Preset/Extra Args keine Subtitle-Auswahl vorgeben. Wenn bei DVD-Serien im Review nicht mehr alle Untertitel vorausgew\u00e4hlt werden sollen, sondern nur bestimmte Sprachen. Ausgabeformat output_extension_dvd select mkv Standard Dateiendung f\u00fcr finale Datei (DVD). Wenn finale DVD-Dateien standardmaessig als MKV oder MP4 ausgegeben werden sollen. mkvmerge Kommando mkvmerge_command string mkvmerge Standard Pfad oder Befehl f\u00fcr mkvmerge. Wird f\u00fcr Multipart-Movie-Merges genutzt. Wenn ein Tool nicht im PATH liegt oder eine feste Binary genutzt werden soll (voller Pfad)."},{"location":"configuration/settings-reference/#spezielle-werteformate","title":"Spezielle Werteformate","text":""},{"location":"configuration/settings-reference/#hinweis-zu-ausgeblendeten-feldern","title":"Hinweis zu ausgeblendeten Feldern","text":"

Die Keys drive_device, makemkv_source_index, makemkv_rip_mode_bluray, makemkv_rip_mode_dvd liegen im Schema, werden aber bewusst nicht im normalen Formular angezeigt.

"},{"location":"deployment/","title":"Anhang: Deployment","text":"

Technische Betriebsdokumentation f\u00fcr Entwicklung und Produktion.

"},{"location":"deployment/development/","title":"Entwicklungsumgebung","text":""},{"location":"deployment/development/#voraussetzungen","title":"Voraussetzungen","text":""},{"location":"deployment/development/#schnellstart","title":"Schnellstart","text":"
./start.sh\n

Startet:

Stoppen: Ctrl+C.

"},{"location":"deployment/development/#manuell","title":"Manuell","text":""},{"location":"deployment/development/#backend","title":"Backend","text":"
cd backend\nnpm install\nnpm run dev\n
"},{"location":"deployment/development/#frontend","title":"Frontend","text":"
cd frontend\nnpm install\nnpm run dev\n
"},{"location":"deployment/development/#vite-proxy-dev","title":"Vite-Proxy (Dev)","text":"

frontend/vite.config.js proxied standardm\u00e4\u00dfig:

"},{"location":"deployment/development/#remote-dev-optional","title":"Remote-Dev (optional)","text":"

Beispiel frontend/.env.local:

VITE_API_BASE=http://192.168.1.100:3001/api\nVITE_WS_URL=ws://192.168.1.100:3001/ws\nVITE_PUBLIC_ORIGIN=http://192.168.1.100:5173\nVITE_ALLOWED_HOSTS=192.168.1.100,ripster.local\nVITE_HMR_PROTOCOL=ws\nVITE_HMR_HOST=192.168.1.100\nVITE_HMR_CLIENT_PORT=5173\n
"},{"location":"deployment/development/#nutzliche-kommandos","title":"N\u00fctzliche Kommandos","text":"
# Root dev (backend + frontend)\nnpm run dev\n\n# einzeln\nnpm run dev:backend\nnpm run dev:frontend\n\n# Frontend Build\nnpm run build:frontend\n
"},{"location":"deployment/production/","title":"Produktions-Deployment","text":""},{"location":"deployment/production/#automatische-installation-empfohlen","title":"Automatische Installation (empfohlen)","text":"

Das mitgelieferte install.sh richtet Ripster vollautomatisch ein \u2013 inklusive Node.js, MakeMKV, HandBrake, nginx und systemd-Dienst.

Unterst\u00fctzte Systeme laut Script: Debian, Ubuntu, Linux Mint, Pop!_OS Voraussetzung: root-Rechte, Internetzugang

"},{"location":"deployment/production/#schnellstart-via-curl","title":"Schnellstart via curl","text":"
curl -fsSL https://raw.githubusercontent.com/Mboehmlaender/ripster/main/install.sh | sudo bash\n

Oder mit wget:

wget -qO- https://raw.githubusercontent.com/Mboehmlaender/ripster/main/install.sh | sudo bash\n

Optionen nur via Datei

Beim Pipen von curl/wget k\u00f6nnen keine Argumente \u00fcbergeben werden. F\u00fcr benutzerdefinierte Optionen zuerst herunterladen und dann mit sudo bash install.sh [Optionen] ausf\u00fchren.

"},{"location":"deployment/production/#optionen","title":"Optionen","text":"Option Standard Beschreibung --branch <branch> dev Git-Branch f\u00fcr die Installation --dir <pfad> /opt/ripster Installationsverzeichnis --user <benutzer> ripster Systembenutzer f\u00fcr den Dienst --port <port> 3001 Backend-Port --host <hostname> Auto (Maschinen-IP) Hostname/IP f\u00fcr die Weboberfl\u00e4che --no-makemkv \u2013 MakeMKV-Installation \u00fcberspringen --no-handbrake \u2013 HandBrake-Installation \u00fcberspringen --no-nginx \u2013 nginx-Einrichtung \u00fcberspringen --reinstall \u2013 Bestehende Installation aktualisieren (Daten bleiben erhalten) -h, --help \u2013 Hilfe anzeigen"},{"location":"deployment/production/#beispiele","title":"Beispiele","text":"
# Standard-Installation\nsudo bash install.sh\n\n# Anderen Branch und Port verwenden\nsudo bash install.sh --branch dev --port 8080\n\n# Ohne MakeMKV (bereits installiert)\nsudo bash install.sh --no-makemkv\n\n# Bestehende Installation aktualisieren\nsudo bash install.sh --reinstall\n\n# Ohne nginx (eigener Reverse-Proxy)\nsudo bash install.sh --no-nginx --host mein-server.local\n
"},{"location":"deployment/production/#was-das-skript-erledigt","title":"Was das Skript erledigt","text":"
  1. Systempr\u00fcfung \u2013 OS-Erkennung und Root-Check
  2. Systempakete \u2013 curl, wget, git, mediainfo, udev u. a.
  3. Node.js 20 \u2013 via NodeSource, falls noch nicht installiert
  4. MakeMKV \u2013 aktuelle Version wird aus dem offiziellen Forum ermittelt und aus dem Quellcode kompiliert (kann mit --no-makemkv \u00fcbersprungen werden)
  5. HandBrake \u2013 interaktive Auswahl:
    • Option 1: Standard (apt install handbrake-cli)
    • Option 2: Geb\u00fcndelte GPU-Version mit NVDEC aus bin/HandBrakeCLI
  6. Systembenutzer ripster \u2013 ohne Login-Shell und ohne Home-Verzeichnis; Gruppen werden (falls vorhanden) erg\u00e4nzt: cdrom, optical, disk, video, render
  7. Repository \u2013 klont Branch nach --dir (bei --reinstall: sichert backend/data, aktualisiert Repo, stellt Daten wieder her)
  8. Verzeichnisse \u2013 stellt u. a. sicher: backend/data, backend/logs, backend/data/output/raw, backend/data/output/movies, backend/data/logs
  9. npm-Abh\u00e4ngigkeiten \u2013 Root, Backend (nur production), Frontend
  10. Frontend-Build \u2013 npm run build mit relativen API-URLs (nginx-kompatibel)
  11. Backend .env \u2013 wird automatisch generiert (bei --reinstall bleibt bestehende .env erhalten)
  12. Berechtigungen \u2013 zun\u00e4chst ripster:ripster auf Installationsverzeichnis; bei sudo-Aufruf werden Output-/Log-Ordner auf <aufrufender user>:ripster mit 775 gesetzt; .env wird auf 600 gesetzt
  13. MakeMKV User-Ordner \u2013 erstellt bei sudo-Aufruf ~/.MakeMKV f\u00fcr den aufrufenden Benutzer
  14. systemd-Dienst \u2013 ripster-backend.service erstellt, aktiviert und gestartet
  15. nginx \u2013 konfiguriert als Reverse-Proxy f\u00fcr Frontend, /api/ und /ws (kann mit --no-nginx \u00fcbersprungen werden)
"},{"location":"deployment/production/#nach-der-installation","title":"Nach der Installation","text":"
# Status pr\u00fcfen\nsudo systemctl status ripster-backend\n\n# Logs verfolgen\nsudo journalctl -u ripster-backend -f\n\n# Neustart\nsudo systemctl restart ripster-backend\n\n# Aktualisieren\nsudo bash /opt/ripster/install.sh --reinstall\n

Zugriff: http://<Maschinen-IP> (oder der mit --host angegebene Hostname)

"},{"location":"deployment/production/#handbrake-modus-gpunvdec","title":"HandBrake-Modus (GPU/NVDEC)","text":"

Bei nicht-interaktiver Ausf\u00fchrung (Pipe von curl) wird automatisch die Standard-Version gew\u00e4hlt. F\u00fcr die GPU-Version zuerst herunterladen:

curl -fsSL https://raw.githubusercontent.com/Mboehmlaender/ripster/main/install.sh -o install.sh\nsudo bash install.sh\n# \u2192 Interaktive Auswahl: Option 2 f\u00fcr NVDEC\n

Das geb\u00fcndelte Binary liegt unter bin/HandBrakeCLI und wird nach /usr/local/bin/HandBrakeCLI kopiert.

"},{"location":"deployment/production/#manuelle-installation","title":"Manuelle Installation","text":"

Die folgenden Abschnitte beschreiben die einzelnen Schritte f\u00fcr manuelle oder angepasste Setups.

"},{"location":"deployment/production/#empfohlene-architektur","title":"Empfohlene Architektur","text":"
Client\n  -> nginx (Reverse Proxy + statisches Frontend)\n    -> Backend API/WebSocket (Node.js, Port 3001)\n

Wichtig: Das Backend serviert im aktuellen Stand keine frontend/dist-Dateien automatisch.

"},{"location":"deployment/production/#1-frontend-builden","title":"1) Frontend builden","text":"
cd frontend\nnpm install\nnpm run build\n

Artefakte liegen in frontend/dist/.

"},{"location":"deployment/production/#2-backend-als-systemd-service","title":"2) Backend als systemd-Service","text":"

Beispiel /etc/systemd/system/ripster-backend.service:

[Unit]\nDescription=Ripster Backend\nAfter=network.target\n\n[Service]\nType=simple\nUser=ripster\nWorkingDirectory=/opt/ripster/backend\nExecStart=/usr/bin/env node src/index.js\nRestart=on-failure\nRestartSec=5\nEnvironment=NODE_ENV=production\nEnvironment=PORT=3001\nEnvironment=LOG_LEVEL=info\n\n[Install]\nWantedBy=multi-user.target\n

Aktivieren:

sudo systemctl daemon-reload\nsudo systemctl enable --now ripster-backend\nsudo systemctl status ripster-backend\n
"},{"location":"deployment/production/#3-nginx-konfigurieren","title":"3) nginx konfigurieren","text":"

Beispiel /etc/nginx/sites-available/ripster:

server {\n    listen 80;\n    server_name ripster.local;\n    client_max_body_size 8G;\n\n    root /opt/ripster/frontend/dist;\n    index index.html;\n\n    location / {\n        try_files $uri $uri/ /index.html;\n    }\n\n    location /api/ {\n        proxy_pass http://127.0.0.1:3001;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n    }\n\n    location /ws {\n        proxy_pass http://127.0.0.1:3001;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n        proxy_set_header Host $host;\n    }\n}\n

Aktivieren:

sudo ln -s /etc/nginx/sites-available/ripster /etc/nginx/sites-enabled/\nsudo nginx -t\nsudo systemctl reload nginx\n

Hinweis: Fuer groessere Uploads wie .aax-Audiobooks muss client_max_body_size ausreichend hoch gesetzt sein. Im mitgelieferten Beispiel sind 8G hinterlegt.

"},{"location":"deployment/production/#datenbank-backup","title":"Datenbank-Backup","text":"
sqlite3 /opt/ripster/backend/data/ripster.db \\\n  \".backup '/var/backups/ripster-$(date +%Y%m%d).db'\"\n
"},{"location":"deployment/production/#sicherheit","title":"Sicherheit","text":""},{"location":"getting-started/","title":"Benutzerhandbuch \u00dcberblick","text":"

Dieses Kapitel ist f\u00fcr den Betrieb von Ripster im Alltag geschrieben.

"},{"location":"getting-started/#zielgruppe","title":"Zielgruppe","text":""},{"location":"getting-started/#kapitelstruktur","title":"Kapitelstruktur","text":"Kapitel Zweck Voraussetzungen Produktions- vs. Dev-Voraussetzungen klar trennen Installation Ripster aufsetzen und starten Ersteinrichtung Pfade, Tools und Metadaten korrekt setzen Erster Lauf Ein kompletter Job von Disc bis Datei GUI-Seiten Alle Ansichten und Aktionen im Detail Workflows Typische Abl\u00e4ufe und Entscheidungen aus User-Sicht"},{"location":"getting-started/#wenn-du-neu-startest","title":"Wenn du neu startest","text":"
  1. Voraussetzungen
  2. Installation
  3. Ersteinrichtung
  4. Erster Lauf
"},{"location":"getting-started/#wenn-ripster-bereits-lauft","title":"Wenn Ripster bereits l\u00e4uft","text":"
  1. GUI-Seiten
  2. Workflows
  3. Bei Detailfragen: Technischer Anhang
"},{"location":"getting-started/configuration/","title":"Ersteinrichtung","text":"

Diese Seite ist die Betriebs-Checkliste vor dem ersten produktiven Lauf.

"},{"location":"getting-started/configuration/#ziel-der-ersteinrichtung","title":"Ziel der Ersteinrichtung","text":"

Vor dem ersten Job sollten f\u00fcnf Bereiche sauber gesetzt sein:

  1. Pfade und Templates
  2. Laufwerk und Disc-Erkennung
  3. Metadatenzugang \u00fcber TMDb
  4. Encode-Standards und Queue-Regeln
  5. optionale Automatisierung und Benachrichtigungen
"},{"location":"getting-started/configuration/#empfohlene-reihenfolge","title":"Empfohlene Reihenfolge","text":""},{"location":"getting-started/configuration/#1-basis-in-settings-konfiguration","title":"1. Basis in Settings -> Konfiguration","text":"

Pr\u00fcfe zuerst diese Kernfelder:

Danach speichern.

"},{"location":"getting-started/configuration/#2-pfade-und-templates-bewusst-festlegen","title":"2. Pfade und Templates bewusst festlegen","text":"

Wichtig f\u00fcr den Alltag:

Wenn du auf NAS, USB oder andere Benutzer/Gruppen schreiben willst, pr\u00fcfe auch die jeweiligen *_owner-Felder.

"},{"location":"getting-started/configuration/#3-laufwerk-und-automatische-erkennung-prufen","title":"3. Laufwerk und automatische Erkennung pr\u00fcfen","text":"

Relevant:

Empfehlung:

"},{"location":"getting-started/configuration/#4-tmdb-und-metadatenverhalten-festlegen","title":"4. TMDb und Metadatenverhalten festlegen","text":"

Relevant:

Diese Einstellungen wirken direkt in Metadatensuche, Serienzuordnung, Nachpflege von Covern und im finalen Output.

"},{"location":"getting-started/configuration/#5-encode-und-review-standards-festlegen","title":"5. Encode- und Review-Standards festlegen","text":"

F\u00fcr Video-Workflows besonders wichtig:

Praxis:

"},{"location":"getting-started/configuration/#6-queue-verhalten-definieren","title":"6. Queue-Verhalten definieren","text":"

Stelle diese vier Felder bewusst ein:

Damit steuerst du, wie aggressiv Ripster mehrere Jobs gleichzeitig startet.

"},{"location":"getting-started/configuration/#7-optional-user-presets-und-standard-zuordnungen","title":"7. Optional: User-Presets und Standard-Zuordnungen","text":"

Unter Settings -> Encode-Presets kannst du:

Diese Defaults wirken sp\u00e4ter in der Review automatisch vorbef\u00fcllend.

"},{"location":"getting-started/configuration/#8-optional-benachrichtigungen","title":"8. Optional: Benachrichtigungen","text":"

Pr\u00fcfe:

Danach in Settings den Button PushOver Test ausf\u00fchren.

"},{"location":"getting-started/configuration/#9-optional-automatisierung","title":"9. Optional: Automatisierung","text":"

Erst wenn die Grundkonfiguration stabil ist:

  1. Skripte anlegen und testen
  2. Skriptketten aufbauen
  3. Cronjobs aktivieren
"},{"location":"getting-started/configuration/#funktionsprufung","title":"Funktionspr\u00fcfung","text":"

Ein sinnvoller Kurztest:

  1. Disc in Ripper erkennen lassen
  2. Analyse starten
  3. TMDb-Metadaten \u00fcbernehmen
  4. ggf. Playlist-/RAW-Entscheidung durchlaufen
  5. bis Bereit zum Encodieren kommen
  6. Encode starten
  7. Ergebnis in Historie pr\u00fcfen
"},{"location":"getting-started/configuration/#typische-konfigurationsfehler","title":"Typische Konfigurationsfehler","text":"Symptom H\u00e4ufige Ursache Disc wird nicht erkannt Laufwerksmodus oder Auto-Erkennung passt nicht Playlist-Auswahl wirkt unplausibel Minimale Titell\u00e4nge oder TMDb Runtime-Abzug ... ist zu streng/zu locker falsche Spuren sind in der Review vorausgew\u00e4hlt Review-Sprachfilter oder HandBrake-Args greifen unerwartet Ausgabe landet am falschen Ort Profilpfade oder Templates greifen \u00fcber Fallback Queue verh\u00e4lt sich unerwartet Parallele Jobs, CD-Limit und Gesamtlimit widersprechen sich"},{"location":"getting-started/configuration/#weiter","title":"Weiter","text":""},{"location":"getting-started/installation/","title":"Installation","text":"

Die empfohlene Installation startet immer \u00fcber setup.sh. setup.sh l\u00e4dt das passende install.sh aus dem gew\u00fcnschten Branch und \u00fcbergibt alle weiteren Parameter unver\u00e4ndert an den eigentlichen Installer.

Wichtig:

"},{"location":"getting-started/installation/#voraussetzungen","title":"Voraussetzungen","text":"

Der Installer erkennt aktuell:

"},{"location":"getting-started/installation/#standardinstallation","title":"Standardinstallation","text":"
wget -qO setup.sh https://raw.githubusercontent.com/Mboehmlaender/ripster/main/setup.sh\nbash setup.sh\n

Ohne --branch fragt setup.sh interaktiv nach dem gew\u00fcnschten Branch.

Die typischen Branches sind:

"},{"location":"getting-started/installation/#installation-mit-branch-oder-optionen","title":"Installation mit Branch oder Optionen","text":"

Beispiele:

bash setup.sh --branch main\nbash setup.sh --branch dev\nbash setup.sh --branch dev --dir /opt/ripster --user ripster --port 3001 --host 192.168.1.10\n

setup.sh wertet selbst nur --branch aus. Alles andere \u00fcbernimmt install.sh.

"},{"location":"getting-started/installation/#wichtige-optionen-von-installsh","title":"Wichtige Optionen von install.sh","text":"Option Default Zweck --branch <branch> dev installiert genau diesen Git-Branch --dir <pfad> /opt/ripster Installationsverzeichnis --user <benutzer> ripster Systembenutzer f\u00fcr den Dienst --port <port> 3001 Backend-Port --host <hostname|ip> automatisch ermittelte Host-IP Hostname/IP f\u00fcr Webzugriff und CORS --no-makemkv aus MakeMKV nicht installieren --no-handbrake aus HandBrake nicht installieren --no-nginx aus nginx-Setup \u00fcberspringen --no-system-deps aus Systemabh\u00e4ngigkeiten nicht nachinstallieren --reinstall aus bestehende Installation aktualisieren"},{"location":"getting-started/installation/#was-der-installer-einrichtet","title":"Was der Installer einrichtet","text":"

Typischer Ablauf:

  1. Betriebssystem, Root-Rechte und Host pr\u00fcfen
  2. Systemabh\u00e4ngigkeiten installieren
  3. Node.js 20 sicherstellen
  4. optional MakeMKV installieren
  5. optional HandBrakeCLI installieren
  6. optional nginx konfigurieren
  7. Repository nach --dir klonen oder aktualisieren
  8. Backend-/Frontend-Abh\u00e4ngigkeiten installieren
  9. Frontend bauen
  10. backend/.env und Laufzeitverzeichnisse vorbereiten
  11. ripster-backend.service anlegen und starten
"},{"location":"getting-started/installation/#dienst-prufen","title":"Dienst pr\u00fcfen","text":"
sudo systemctl status ripster-backend\n

Typische Aufrufe im Betrieb:

sudo journalctl -u ripster-backend -f\nsudo systemctl restart ripster-backend\n
"},{"location":"getting-started/installation/#update-einer-bestehenden-installation","title":"Update einer bestehenden Installation","text":"

Standard:

sudo bash /opt/ripster/install.sh --reinstall\n

Wenn die Installation mit abweichenden Kernparametern eingerichtet wurde, dieselben Parameter wieder mitgeben:

sudo bash /opt/ripster/install.sh --reinstall --dir /opt/ripster --user ripster --port 3001 --host 192.168.1.10\n

Alternativ kannst du auch erneut \u00fcber setup.sh gehen:

sudo bash /opt/ripster/setup.sh --reinstall\n

--reinstall aktualisiert die Installation, beh\u00e4lt aber die persistenten Daten der bestehenden Instanz.

"},{"location":"getting-started/installation/#danach-weiter","title":"Danach weiter","text":"
  1. Ersteinrichtung
  2. Erster Lauf
"},{"location":"getting-started/prerequisites/","title":"Voraussetzungen","text":"

Die Voraussetzungen h\u00e4ngen davon ab, ob du Ripster produktiv installieren oder lokal entwickeln willst.

"},{"location":"getting-started/prerequisites/#produktionsbetrieb-mit-setupsh","title":"Produktionsbetrieb mit setup.sh","text":"

F\u00fcr den normalen Betrieb brauchst du nur die Basisvoraussetzungen. Die eigentlichen Tools werden vom Installer eingerichtet, sofern du sie nicht bewusst mit --no-* \u00fcberspringst.

"},{"location":"getting-started/prerequisites/#pflicht","title":"Pflicht","text":"

Der Installer unterst\u00fctzt aktuell:

Standard-Einstieg:

wget -qO setup.sh https://raw.githubusercontent.com/Mboehmlaender/ripster/main/setup.sh\nbash setup.sh\n
"},{"location":"getting-started/prerequisites/#laufwerk-kurz-prufen","title":"Laufwerk kurz pr\u00fcfen","text":"
ls /dev/sr*\nlsblk | grep rom\n
"},{"location":"getting-started/prerequisites/#optional-vorab","title":"Optional vorab","text":"

Beides kann auch erst nach der Installation in Settings gesetzt werden.

"},{"location":"getting-started/prerequisites/#entwicklungsmodus","title":"Entwicklungsmodus","text":"

Wenn du lokal entwickelst (./start.sh, npm run dev), gelten zus\u00e4tzliche Voraussetzungen:

Details: Entwicklungsumgebung

"},{"location":"getting-started/prerequisites/#abschluss-checkliste","title":"Abschluss-Checkliste","text":""},{"location":"getting-started/quickstart/","title":"Erster Lauf","text":"

Dieser Ablauf f\u00fchrt einen typischen Disc-Job von Erkennung bis fertiger Datei durch.

"},{"location":"getting-started/quickstart/#1-disc-erkennen","title":"1. Disc erkennen","text":"
  1. Ripper \u00f6ffnen
  2. Disc einlegen
  3. auf Medium erkannt warten

Pr\u00fcfen:

Relevante Settings:

"},{"location":"getting-started/quickstart/#2-analyse-starten","title":"2. Analyse starten","text":"

Aktion:

Erwartung:

Relevantes Setting:

"},{"location":"getting-started/quickstart/#3-metadaten-in-tmdb-bestatigen","title":"3. Metadaten in TMDb best\u00e4tigen","text":"

Im Dialog:

  1. Treffer suchen oder filtern
  2. Film oder Serie ausw\u00e4hlen
  3. bei Serien zus\u00e4tzlich Disc-Nummer setzen
  4. Auswahl \u00fcbernehmen

M\u00f6gliche Abzweigungen:

Relevante Settings:

"},{"location":"getting-started/quickstart/#4-raw-und-playlist-entscheidungen","title":"4. RAW- und Playlist-Entscheidungen","text":"

Je nach Disc-Situation geht es jetzt unterschiedlich weiter.

"},{"location":"getting-started/quickstart/#normalfall","title":"Normalfall","text":"

Startbereit -> Rippen -> Mediainfo-Pr\u00fcfung

"},{"location":"getting-started/quickstart/#vorhandenes-raw","title":"Vorhandenes RAW","text":"

Kein neuer Rip, sondern erst eine Entscheidung:

"},{"location":"getting-started/quickstart/#playlist-oder-titelauswahl-erforderlich","title":"Playlist- oder Titelauswahl erforderlich","text":"

Bei bestimmten Blu-ray-/DVD-F\u00e4llen erscheint Warte auf Auswahl.

Dann best\u00e4tigst du:

Relevante Settings:

"},{"location":"getting-started/quickstart/#5-encode-review-abschlieen","title":"5. Encode-Review abschlie\u00dfen","text":"

Bei Bereit zum Encodieren pr\u00fcfst du:

Dann:

Relevante Settings:

"},{"location":"getting-started/quickstart/#6-encoding-uberwachen","title":"6. Encoding \u00fcberwachen","text":"

W\u00e4hrend Encodieren:

Relevante Settings:

"},{"location":"getting-started/quickstart/#7-ergebnis-verifizieren","title":"7. Ergebnis verifizieren","text":"

Nach Fertig:

  1. Historie \u00f6ffnen
  2. Jobdetail pr\u00fcfen
  3. Output-Pfad und Log kontrollieren

Kontrollpunkte:

Relevante Settings:

"},{"location":"getting-started/quickstart/#8-typische-folgeaktionen","title":"8. Typische Folgeaktionen","text":""},{"location":"gui/","title":"GUI-Seiten","text":"

Dieses Kapitel ist das Bedienhandbuch f\u00fcr die Oberfl\u00e4chen im Alltag.

"},{"location":"gui/#seitenuberblick","title":"Seiten\u00fcberblick","text":"Seite Rolle im Betrieb Typischer Einsatz Ripper Live-Steuerung der Disc-Pipeline Disc erkennen, Analyse starten, Entscheidungen treffen, Queue steuern Hardware Detailansicht f\u00fcr Live-Monitoring CPU/RAM/GPU und Verlauf pr\u00fcfen Audiobooks AAX-Spezialflow Upload, Kapitelpr\u00fcfung und Encode von Audiobooks Settings Konfiguration und Automatisierung Pfade, Tools, Queue, Presets, Skripte, Cron Historie Nachbearbeitung und Kontrolle Logs, Re-Encode, TMDb-Neuzuordnung, L\u00f6schvorschau Converter dateibasierte Konvertierung Video/Audio/ISO ohne Disc-Rip verarbeiten Downloads ZIP-Exports RAW/Output aus der Historie bereitstellen Database (Expert) Recovery-Sicht orphan RAW finden, pr\u00fcfen und importieren TMDb Migration Sonderseite f\u00fcr Altbest\u00e4nde alte Jobs gesammelt auf TMDb umstellen"},{"location":"gui/#empfohlener-tagesablauf","title":"Empfohlener Tagesablauf","text":"
  1. Ripper, Converter oder Audiobooks: neue Arbeit starten
  2. Historie: Ergebnisse kontrollieren und ggf. nachbearbeiten
  3. Downloads: Artefakte f\u00fcr externe \u00dcbergabe vorbereiten
  4. Settings: Regeln, Presets oder Limits nur kontrolliert anpassen
  5. Hardware: bei Lastspitzen oder Batch-L\u00e4ufen den Verlauf pr\u00fcfen
"},{"location":"gui/#navigation","title":"Navigation","text":"

Direkt in der Top-Navigation:

Zusatzansichten:

"},{"location":"gui/audiobooks/","title":"Audiobooks","text":"

Die Seite Audiobooks ist der spezialisierte Workflow f\u00fcr Audible-*.aax-Dateien.

"},{"location":"gui/audiobooks/#seitenstruktur","title":"Seitenstruktur","text":"

Die Oberfl\u00e4che besteht aus zwei Hauptbereichen:

  1. Audiobooks Upload
  2. Audiobook Jobs
"},{"location":"gui/audiobooks/#1-audiobooks-upload","title":"1. Audiobooks Upload","text":"

Der Upload akzeptiert ausschlie\u00dflich .aax.

"},{"location":"gui/audiobooks/#bedienung","title":"Bedienung","text":"

W\u00e4hrend des Uploads zeigt die UI:

"},{"location":"gui/audiobooks/#ablauf-nach-erfolgreichem-upload","title":"Ablauf nach erfolgreichem Upload","text":""},{"location":"gui/audiobooks/#2-audiobook-jobs","title":"2. Audiobook Jobs","text":"

Die Seite zeigt aktive Jobs. Abgeschlossene Jobs findest du in der Historie.

Ein Job kann eingeklappt oder ausgeklappt werden und zeigt:

"},{"location":"gui/audiobooks/#konfigurierbare-job-parameter","title":"Konfigurierbare Job-Parameter","text":"

Im ausgeklappten Job kannst du setzen:

"},{"location":"gui/audiobooks/#formatverhalten","title":"Formatverhalten","text":"

Wenn du mp3 oder flac w\u00e4hlst, zeigt die UI zus\u00e4tzlich eine Kapitel-Status-Tabelle.

"},{"location":"gui/audiobooks/#activation-bytes","title":"Activation Bytes","text":"

Wenn Ripster f\u00fcr eine Datei keine Activation Bytes verwenden kann, wird im Workflow eine manuelle Eingabe n\u00f6tig.

Wichtig:

"},{"location":"gui/audiobooks/#relevante-settings","title":"Relevante Settings","text":""},{"location":"gui/audiobooks/#so-wirken-die-settings-im-alltag","title":"So wirken die Settings im Alltag","text":""},{"location":"gui/audiobooks/#queue-und-laufzeit","title":"Queue und Laufzeit","text":"

Audiobook-Jobs nutzen dieselbe globale Pipeline wie die anderen Bereiche.

Relevante Settings:

"},{"location":"gui/audiobooks/#typische-fehlerbilder","title":"Typische Fehlerbilder","text":""},{"location":"gui/converter/","title":"Converter","text":"

Die Seite Converter verarbeitet vorhandene Dateien ohne Laufwerks-Rip. Sie ist f\u00fcr Video-, Audio- und ISO-Dateien gedacht, die bereits auf dem System liegen oder hochgeladen werden.

"},{"location":"gui/converter/#betriebsmodell","title":"Betriebsmodell","text":"

Der Converter arbeitet auf dem Eingangspfad converter_raw_dir.

Dort landen:

Wichtig:

"},{"location":"gui/converter/#datei-explorer","title":"Datei-Explorer","text":"

Der Explorer zeigt den kompletten Baum unter converter_raw_dir.

Aktionen:

Aktion Wirkung Upload schreibt neue Dateien in den Converter-RAW-Baum Ordner erstellen legt Unterordner an Umbenennen benennt Datei oder Ordner um Verschieben verschiebt Eintr\u00e4ge innerhalb des Raw-Baums L\u00f6schen entfernt Datei oder Ordner dauerhaft Scannen synchronisiert Dateisystem und Converter-Datenbank"},{"location":"gui/converter/#upload-und-scan-regeln","title":"Upload- und Scan-Regeln","text":"

Relevante Settings:

"},{"location":"gui/converter/#joberstellung-aus-explorer-auswahl","title":"Joberstellung aus Explorer-Auswahl","text":"

Es gibt zwei Audio-Strategien:

  1. Ein Job pro Datei
  2. Gemeinsamer Job (Audio)

Verhalten:

Shared-Audio-Job:

"},{"location":"gui/converter/#job-konfiguration","title":"Job-Konfiguration","text":"

Vor dem Start je Job einstellbar:

Spezifika:

"},{"location":"gui/converter/#ausgabe-pfade","title":"Ausgabe-Pfade","text":""},{"location":"gui/converter/#video-iso","title":"Video / ISO","text":""},{"location":"gui/converter/#audio","title":"Audio","text":"

Relevante Settings:

"},{"location":"gui/converter/#queue-und-start","title":"Queue und Start","text":"

Converter-Jobs laufen \u00fcber dieselbe globale Pipeline-Queue wie Ripper und Audiobooks.

Das bedeutet:

Relevante Settings:

"},{"location":"gui/converter/#typische-einsatzfalle","title":"Typische Einsatzf\u00e4lle","text":""},{"location":"gui/converter/#abgrenzung-zu-audiobooks","title":"Abgrenzung zu Audiobooks","text":""},{"location":"gui/database/","title":"Database (Expert)","text":"

/database ist die Recovery- und Expertensicht f\u00fcr F\u00e4lle, in denen Dateisystem und Historie nicht mehr sauber zusammenpassen.

"},{"location":"gui/database/#zugriff","title":"Zugriff","text":""},{"location":"gui/database/#bereich-gefundene-raw-eintrage","title":"Bereich Gefundene RAW-Eintr\u00e4ge","text":"

Dieser Bereich listet RAW-Verzeichnisse ohne zugeordneten Historie-Job.

Aktionen:

"},{"location":"gui/database/#was-bei-job-anlegen-passiert","title":"Was bei Job anlegen passiert","text":"

Typischer Einsatz:

"},{"location":"gui/database/#sicherheits-und-betriebsregeln","title":"Sicherheits- und Betriebsregeln","text":""},{"location":"gui/downloads/","title":"Downloads","text":"

Auf Downloads werden ZIP-Archive f\u00fcr Historie-Artefakte erstellt und bereitgestellt.

"},{"location":"gui/downloads/#was-heruntergeladen-werden-kann","title":"Was heruntergeladen werden kann","text":"

Ein Download-Eintrag referenziert immer einen Historie-Job und genau ein Ziel:

Erzeugt wird ein ZIP-Archiv im Download-Verzeichnis des Backends.

"},{"location":"gui/downloads/#statusmodell","title":"Statusmodell","text":"Status Bedeutung queued Eintrag erstellt, wartet auf Verarbeitung processing ZIP wird gerade gebaut ready Archiv fertig, Download-Link aktiv failed Erzeugung oder Zugriff fehlgeschlagen"},{"location":"gui/downloads/#eintrag-anlegen","title":"Eintrag anlegen","text":"

Startpunkt ist die Historie:

  1. Job \u00f6ffnen.
  2. Download einreihen.
  3. Ziel (RAW oder Output) w\u00e4hlen.
  4. Status in Downloads verfolgen.
"},{"location":"gui/downloads/#wichtige-laufzeitdetails","title":"Wichtige Laufzeitdetails","text":""},{"location":"gui/downloads/#download-auslosen","title":"Download ausl\u00f6sen","text":"

Bei Status ready:

"},{"location":"gui/downloads/#eintrage-entfernen","title":"Eintr\u00e4ge entfernen","text":"

L\u00f6schen entfernt:

Nicht erlaubt:

"},{"location":"gui/downloads/#echtzeitaktualisierung","title":"Echtzeitaktualisierung","text":"

Die Seite reagiert auf DOWNLOADS_UPDATED per WebSocket. Dadurch sind Statuswechsel ohne Reload sichtbar.

"},{"location":"gui/hardware/","title":"Hardware","text":"

Die Seite Hardware ist die ausf\u00fchrliche Detailansicht f\u00fcr das Live-Monitoring aus dem Ripper.

"},{"location":"gui/hardware/#was-die-seite-zeigt","title":"Was die Seite zeigt","text":""},{"location":"gui/hardware/#live-bereich","title":"Live-Bereich","text":"

Oben zeigt die Seite:

Wenn Monitoring deaktiviert ist, f\u00fchrt die Seite direkt zu Settings.

"},{"location":"gui/hardware/#historie","title":"Historie","text":"

Die Historie l\u00e4dt Messpunkte aus dem Backend und zeigt:

Das ist besonders n\u00fctzlich bei:

"},{"location":"gui/hardware/#relevante-settings","title":"Relevante Settings","text":"

Au\u00dferdem sinnvoll:

"},{"location":"gui/history/","title":"Historie","text":"

Historie ist die Kontroll- und Nachbearbeitungsoberfl\u00e4che f\u00fcr alle bereits angelegten Jobs.

"},{"location":"gui/history/#hauptansicht","title":"Hauptansicht","text":"

Filter und Arbeitsmittel:

Jeder Eintrag zeigt auf einen Blick:

"},{"location":"gui/history/#detaildialog","title":"Detaildialog","text":"

Der Detaildialog b\u00fcndelt:

Bei Seriencontainern und Multipart-Jobs wird container- und child-orientiert dargestellt.

"},{"location":"gui/history/#nachbearbeitungsaktionen","title":"Nachbearbeitungsaktionen","text":"Aktion Typischer Einsatz Technische Wirkung TMDb neu zuweisen falsches Match, anderer Film, andere Staffel Metadaten werden neu geschrieben; Poster, Jahr und ggf. Ordnername werden best effort aktualisiert Review neu starten neue Track-/Titelbewertung n\u00f6tig Review wird aus vorhandenem RAW neu aufgebaut RAW neu encodieren neuer Encode mit vorhandenem RAW startet Encode ohne neuen Disc-Rip Encode neu starten gleiche best\u00e4tigte Auswahl erneut fahren letzter best\u00e4tigter Plan wird geladen Retry Rippen Rip oder Analyse erneut ansto\u00dfen neuer Rip-Lauf inklusive RAW-Phase

Relevante Settings:

"},{"location":"gui/history/#loschaktionen-und-vorschau","title":"L\u00f6schaktionen und Vorschau","text":"

Vor dem endg\u00fcltigen L\u00f6schen zeigt Ripster eine Vorschau mit:

Wichtige Punkte:

"},{"location":"gui/history/#serien-und-multipart-sicht","title":"Serien- und Multipart-Sicht","text":""},{"location":"gui/history/#serien","title":"Serien","text":""},{"location":"gui/history/#multipart","title":"Multipart","text":""},{"location":"gui/history/#logs-sinnvoll-nutzen","title":"Logs sinnvoll nutzen","text":"

Empfehlung:

  1. erst den Tail pr\u00fcfen
  2. dann die Stelle im Log eingrenzen
  3. anschlie\u00dfend die passende Wiederanlauf-Aktion w\u00e4hlen
"},{"location":"gui/ripper/","title":"Ripper","text":"

Die Seite Ripper ist die Live-Steuerung der Disc-Pipeline. Hier laufen Disc-Erkennung, Queue, manuelle Entscheidungen, Review und aktive Jobs zusammen.

"},{"location":"gui/ripper/#seitenaufbau","title":"Seitenaufbau","text":"

Die wichtigsten Bereiche:

  1. Hardware
  2. Job Queue
  3. Skript- / Cron-Status
  4. Job \u00dcbersicht
  5. Disk-Information
"},{"location":"gui/ripper/#1-hardware","title":"1. Hardware","text":"

Die Hardware-Karte zeigt live:

Aktionen:

Relevante Settings:

"},{"location":"gui/ripper/#2-job-queue","title":"2. Job Queue","text":"

Es gibt zwei operative Zonen:

M\u00f6gliche Queue-Eintr\u00e4ge:

Wichtige Regeln:

Relevante Settings:

"},{"location":"gui/ripper/#3-skript-cron-status","title":"3. Skript- / Cron-Status","text":"

Zeigt Runtime-Aktivit\u00e4ten:

Aktionen:

"},{"location":"gui/ripper/#4-job-ubersicht","title":"4. Job \u00dcbersicht","text":"

Die Jobliste ist der zentrale Arbeitsbereich. Ein Klick \u00f6ffnet den jeweiligen Pipeline-Status.

"},{"location":"gui/ripper/#zustandsabhangige-hauptaktionen","title":"Zustandsabh\u00e4ngige Hauptaktionen","text":"Zustand Typische Aktion Ergebnis Medium erkannt Analyse starten MakeMKV-Analyse beginnt Metadatenauswahl Metadaten \u00f6ffnen TMDb-Dialog f\u00fcr Film/Serie Warte auf Auswahl Entscheidung best\u00e4tigen Flow geht an die passende Stelle weiter Startbereit Job starten Rip oder RAW-basierte Pr\u00fcfung startet Bereit zum Encodieren Encoding starten HandBrake startet mit best\u00e4tigter Auswahl laufend Abbrechen Job wird gestoppt Fehler / Abgebrochen Retry Rippen neuer Rip-Anlauf"},{"location":"gui/ripper/#was-warte-auf-auswahl-heute-bedeuten-kann","title":"Was Warte auf Auswahl heute bedeuten kann","text":"

Der Status ist nicht nur f\u00fcr eine einzige Entscheidung da. Im aktuellen Stand gibt es drei typische F\u00e4lle:

"},{"location":"gui/ripper/#vorhandenes-raw","title":"Vorhandenes RAW","text":"

Ripster hat zu den Metadaten bereits ein passendes RAW gefunden. Dann entscheidest du:

"},{"location":"gui/ripper/#playlist-auswahl","title":"Playlist-Auswahl","text":"

Bei mehrdeutigen Blu-rays oder bestimmten DVD-F\u00e4llen musst du eine Playlist best\u00e4tigen. Die Liste zeigt unter anderem:

Relevante Settings:

"},{"location":"gui/ripper/#titelauswahl-playall-grenzfall","title":"Titelauswahl / PlayAll-Grenzfall","text":"

Wenn Ripster mehrere HandBrake-Titel als plausibel erkannt hat, musst du einen oder mehrere Titel best\u00e4tigen. Bei Serien kann das der Grenzfall PlayAll oder Doppelfolge? sein.

"},{"location":"gui/ripper/#5-review-bereich-bereit-zum-encodieren","title":"5. Review-Bereich (Bereit zum Encodieren)","text":"

Hier triffst du die eigentliche Encode-Entscheidung.

Du legst fest:

Wichtig:

"},{"location":"gui/ripper/#welche-settings-hier-direkt-sichtbar-werden","title":"Welche Settings hier direkt sichtbar werden","text":""},{"location":"gui/ripper/#raw-ordnerphasen","title":"RAW-Ordnerphasen","text":"

Der Ripper arbeitet mit drei RAW-Zust\u00e4nden:

Das ist wichtig f\u00fcr:

"},{"location":"gui/ripper/#disk-information","title":"Disk-Information","text":"

Zeigt aktuelle Laufwerksdaten:

Aktionen:

Hinweis:

"},{"location":"gui/ripper/#wichtige-dialoge","title":"Wichtige Dialoge","text":""},{"location":"gui/ripper/#metadaten-auswahlen","title":"Metadaten ausw\u00e4hlen","text":"

Im Dialog best\u00e4tigst du Film- oder Serienmetadaten aus TMDb.

Sonderf\u00e4lle:

"},{"location":"gui/ripper/#vorhandenes-raw-erkannt","title":"Vorhandenes RAW erkannt","text":"

Wenn zu den Metadaten bereits RAW existiert, fordert Ripster eine explizite Entscheidung:

"},{"location":"gui/ripper/#queue-eintrag-einfugen","title":"Queue-Eintrag einf\u00fcgen","text":"

Du kannst gezielt ab Position einf\u00fcgen:

"},{"location":"gui/ripper/#audible-activation-bytes-eintragen","title":"Audible Activation Bytes eintragen","text":"

Wenn f\u00fcr eine AAX-Datei keine Activation Bytes verf\u00fcgbar sind, \u00f6ffnet Ripster einen Dialog zur manuellen Eingabe.

"},{"location":"gui/ripper/#siehe-auch","title":"Siehe auch","text":""},{"location":"gui/settings/","title":"Settings","text":"

Die Seite Settings ist das Kontrollzentrum f\u00fcr Laufzeitverhalten, Standardwerte und Automatisierung. Alles, was sp\u00e4tere Jobs automatisch tun oder vorschlagen, wird hier vorbereitet.

"},{"location":"gui/settings/#tab-uberblick","title":"Tab-\u00dcberblick","text":"Tab Zweck Konfiguration alle fachlichen Einstellungen aus der GUI Scripte einzelne Bash-Skripte anlegen, testen und sortieren Skriptketten mehrstufige Abl\u00e4ufe aus Skript- und Warte-Schritten bauen Encode-Presets eigene Video-Presets und Standard-Zuordnungen pflegen Cronjobs zeitgesteuerte Ausf\u00fchrung von Skripten oder Ketten"},{"location":"gui/settings/#tab-konfiguration","title":"Tab Konfiguration","text":""},{"location":"gui/settings/#bedienlogik","title":"Bedienlogik","text":"
  1. Felder \u00e4ndern
  2. \u00c4nderungen speichern klicken
  3. erst dann gelten die neuen Werte f\u00fcr k\u00fcnftige Starts, Reviews oder Scheduler

Ausnahmen:

"},{"location":"gui/settings/#toolbar-aktionen","title":"Toolbar-Aktionen","text":""},{"location":"gui/settings/#was-die-kategorien-im-alltag-steuern","title":"Was die Kategorien im Alltag steuern","text":""},{"location":"gui/settings/#benachrichtigungen","title":"Benachrichtigungen","text":"

Hier steuerst du zwei Dinge:

Wichtig:

"},{"location":"gui/settings/#laufwerk","title":"Laufwerk","text":"

Diese Kategorie beeinflusst, wie Ripster optische Laufwerke findet und \u00fcberwacht.

Typische Fragen:

Das ist vor allem wichtig bei:

"},{"location":"gui/settings/#logging","title":"Logging","text":"

Diese Felder \u00e4ndern nicht die Job-Logs auf Platte, sondern die Ausgabe im Server-Terminal.

Damit steuerst du zum Beispiel:

"},{"location":"gui/settings/#metadaten","title":"Metadaten","text":"

Hier legst du fest, wie Ripster mit TMDb, Covern und NFO-Dateien umgeht.

Besonders wichtig:

"},{"location":"gui/settings/#monitoring","title":"Monitoring","text":"

Steuert das Hardware-Monitoring f\u00fcr:

Diese Werte erscheinen:

"},{"location":"gui/settings/#pfade","title":"Pfade","text":"

Hier legst du fest, wohin Ripster schreibt und wie Dateien benannt werden.

Die Felder steuern:

Praxisbeispiele:

"},{"location":"gui/settings/#converter","title":"Converter","text":"

Diese Kategorie wirkt nur auf die Seite Converter.

Sie steuert:

"},{"location":"gui/settings/#tools","title":"Tools","text":"

Diese Kategorie entscheidet \u00fcber das technische Verhalten der eigentlichen Pipeline.

Dazu geh\u00f6ren:

F\u00fcr die Nutzer-Workflows besonders relevant:

"},{"location":"gui/settings/#kategorie-pfade-besondere-interaktion","title":"Kategorie Pfade: Besondere Interaktion","text":"

Die Pfad-Kategorie hat eine eigene Darstellung:

"},{"location":"gui/settings/#spezial-editoren","title":"Spezial-Editoren","text":""},{"location":"gui/settings/#wichtig-fur-reviews-und-workflows","title":"Wichtig f\u00fcr Reviews und Workflows","text":"

Die Seite Settings bestimmt direkt, was Nutzer sp\u00e4ter im Workflow sehen:

"},{"location":"gui/settings/#tab-scripte","title":"Tab Scripte","text":"

Funktionen:

Das Testergebnis zeigt:

"},{"location":"gui/settings/#tab-skriptketten","title":"Tab Skriptketten","text":"

Skriptketten bestehen aus Schritten:

Funktionen:

Wichtig:

"},{"location":"gui/settings/#tab-encode-presets","title":"Tab Encode-Presets","text":"

Hier werden Video-Standards f\u00fcr Disc- und Converter-Workflows verwaltet.

"},{"location":"gui/settings/#standard-zuordnungen","title":"Standard-Zuordnungen","text":"

Es gibt vier feste Slots:

Wenn f\u00fcr einen Workflow hier ein Default gesetzt ist, erscheint dieses User-Preset sp\u00e4ter in der Review bereits vorausgew\u00e4hlt.

"},{"location":"gui/settings/#preset-inhalt","title":"Preset-Inhalt","text":"

Ein User-Preset besteht aus:

"},{"location":"gui/settings/#tab-cronjobs","title":"Tab Cronjobs","text":"

Funktionen:

Die Runtime-Aktivit\u00e4ten der laufenden Cronjobs werden zus\u00e4tzlich live angezeigt.

"},{"location":"gui/settings/#expertenbereich-activation-bytes-cache","title":"Expertenbereich: Activation Bytes Cache","text":"

Dieser Block wird nur im Expertenmodus angezeigt.

Er zeigt lokal bekannte AAX-Activation-Bytes mit:

Das hilft bei Audiobook-Workflows, wenn dieselbe Datei oder derselbe Hash sp\u00e4ter erneut auftaucht.

"},{"location":"gui/settings/#validierung-von-template-feldern","title":"Validierung von Template-Feldern","text":"

Template-Felder akzeptieren nur:

Damit verhindert Ripster fehlerhafte Dateinamen schon beim Speichern.

"},{"location":"gui/settings/#siehe-auch","title":"Siehe auch","text":""},{"location":"gui/tmdb-migration/","title":"TMDb Migration","text":"

Die Seite TMDb Migration ist eine Sonderansicht f\u00fcr \u00e4ltere Bestandsjobs, die noch nicht als auf TMDb migriert markiert sind.

"},{"location":"gui/tmdb-migration/#zugriff","title":"Zugriff","text":""},{"location":"gui/tmdb-migration/#wofur-die-seite-gedacht-ist","title":"Wof\u00fcr die Seite gedacht ist","text":"

Typische Einsatzf\u00e4lle:

"},{"location":"gui/tmdb-migration/#funktionsweise","title":"Funktionsweise","text":"

Die Seite l\u00e4dt offene Migrationskandidaten und zeigt:

Aktionen:

"},{"location":"gui/tmdb-migration/#ablauf-einer-sequenz","title":"Ablauf einer Sequenz","text":"
  1. Jobliste laden
  2. Start
  3. der bekannte TMDb-Metadaten-Dialog \u00f6ffnet sich f\u00fcr den ersten Job
  4. nach erfolgreicher \u00dcbernahme plant Ripster den n\u00e4chsten Job mit Cooldown

Wichtig:

"},{"location":"gui/tmdb-migration/#relevante-settings","title":"Relevante Settings","text":"

Ohne diese Einstellungen ist die Migration nicht sinnvoll nutzbar.

"},{"location":"pipeline/","title":"Anhang: Pipeline intern","text":"

Dieser Abschnitt beschreibt die technische Pipeline-Logik hinter den UI-Workflows.

"},{"location":"pipeline/#zuruck-zum-handbuch","title":"Zur\u00fcck zum Handbuch","text":""},{"location":"pipeline/encoding/","title":"Encode-Planung & Track-Auswahl","text":"

Vor dem eigentlichen Encoding erstellt Ripster einen Encode-Plan und zeigt ihn im Review an.

"},{"location":"pipeline/encoding/#ablauf","title":"Ablauf","text":"
Quelle bestimmen (Disc/RAW)\n  -> HandBrake-Scan (--scan --json)\n  -> Plan erstellen (Titel, Audio, Untertitel)\n  -> Status: Bereit zum Encodieren\n  -> Benutzer bestaetigt Auswahl\n  -> finaler HandBrake-Aufruf\n
"},{"location":"pipeline/encoding/#review-inhalt-status-bereit-zum-encodieren","title":"Review-Inhalt (Status: Bereit zum Encodieren)","text":""},{"location":"pipeline/encoding/#bestaetigung-confirm-encode","title":"Bestaetigung (confirm-encode)","text":"

Typischer Payload:

{\n  \"selectedEncodeTitleId\": 1,\n  \"selectedTrackSelection\": {\n    \"1\": {\n      \"audioTrackIds\": [1, 2],\n      \"subtitleTrackIds\": [3]\n    }\n  },\n  \"selectedPreEncodeScriptIds\": [1],\n  \"selectedPostEncodeScriptIds\": [2],\n  \"selectedPreEncodeChainIds\": [3],\n  \"selectedPostEncodeChainIds\": [4],\n  \"selectedUserPresetId\": 5\n}\n

Die best\u00e4tigte Auswahl wird im Job gespeichert und f\u00fcr Neustarts wiederverwendet.

"},{"location":"pipeline/encoding/#handbrake-aufruf","title":"HandBrake-Aufruf","text":"

Grundstruktur:

HandBrakeCLI \\\n  -i <input> \\\n  -o <output> \\\n  -t <titleId> \\\n  -Z \"<preset>\" \\\n  <extra-args> \\\n  -a <audioTrackIds|none> \\\n  -s <subtitleTrackIds|none>\n

Untertitel-Flags werden bei Bedarf erg\u00e4nzt:

"},{"location":"pipeline/encoding/#pre-post-encode-ausfuhrungen","title":"Pre-/Post-Encode-Ausf\u00fchrungen","text":"

Fehlerverhalten:

"},{"location":"pipeline/encoding/#dateinamenordner","title":"Dateinamen/Ordner","text":"

Der finale Outputpfad wird aus den Templates in den Settings aufgebaut.

Platzhalter:

Ung\u00fcltige Dateizeichen werden bereinigt.

"},{"location":"pipeline/playlist-analysis/","title":"Playlist-Analyse","text":"

Ripster analysiert bei Blu-ray-\u00e4hnlichen Quellen Playlists und fordert bei Mehrdeutigkeit eine manuelle Auswahl an.

"},{"location":"pipeline/playlist-analysis/#ziel","title":"Ziel","text":"

Erkennen, welche Playlist sehr wahrscheinlich der Hauptfilm ist, statt versehentlich eine Fake-/Dummy-Playlist zu verwenden.

"},{"location":"pipeline/playlist-analysis/#eingabedaten","title":"Eingabedaten","text":"

Die Analyse basiert auf MakeMKV-Infos (u. a. Playlist-/Segment-Struktur, Laufzeiten, Titelzuordnung).

"},{"location":"pipeline/playlist-analysis/#auswertung-vereinfacht","title":"Auswertung (vereinfacht)","text":"

F\u00fcr Kandidaten werden u. a. ber\u00fccksichtigt:

Daraus entstehen intern Kandidatenlisten, Bewertungen und eine Empfehlung.

"},{"location":"pipeline/playlist-analysis/#wann-muss-der-benutzer-entscheiden","title":"Wann muss der Benutzer entscheiden?","text":"

Wenn nach Filterung mehr als ein relevanter Kandidat \u00fcbrig bleibt, wechselt der Job in der GUI auf:

Dann muss eine Playlist best\u00e4tigt werden, bevor der Workflow weiterl\u00e4uft.

"},{"location":"pipeline/playlist-analysis/#konfigurationseinfluss","title":"Konfigurationseinfluss","text":"Feld in Settings Wirkung Minimale Titell\u00e4nge (Minuten) Mindestlaufzeit f\u00fcr Kandidaten aus MakeMKV/Playlist-Analyse TMDb Runtime-Abzug f\u00fcr Playlistfilter (%) lockert bei Bedarf die untere Laufzeitgrenze relativ zur TMDb-Laufzeit, damit leicht k\u00fcrzere Hauptfassungen Kandidaten bleiben

Default ist aktuell 60 Minuten.

"},{"location":"pipeline/playlist-analysis/#ui-verhalten","title":"UI-Verhalten","text":"

Bei manueller Entscheidung zeigt der Ripper Kandidaten mit:

Nach Best\u00e4tigung:

"},{"location":"pipeline/post-encode-scripts/","title":"Encode-Skripte (Pre & Post)","text":"

Ripster kann Skripte und Skript-Ketten vor und nach dem Encode ausf\u00fchren.

"},{"location":"pipeline/post-encode-scripts/#ablauf","title":"Ablauf","text":"
Bereit zum Encodieren\n  -> Pre-Encode Skripte/Ketten\n  -> HandBrake Encoding\n  -> Post-Encode Skripte/Ketten\n  -> Fertig oder Fehler\n
"},{"location":"pipeline/post-encode-scripts/#auswahl-im-review","title":"Auswahl im Review","text":"

Im Review-Panel kannst du getrennt w\u00e4hlen:

"},{"location":"pipeline/post-encode-scripts/#fehlerverhalten","title":"Fehlerverhalten","text":""},{"location":"pipeline/post-encode-scripts/#verfugbare-umgebungsvariablen","title":"Verf\u00fcgbare Umgebungsvariablen","text":"

Beim Script-Run werden gesetzt:

"},{"location":"pipeline/post-encode-scripts/#skript-ketten","title":"Skript-Ketten","text":"

Ketten unterst\u00fctzen zwei Step-Typen:

Bei Fehler in einem Script-Step wird die Kette abgebrochen.

"},{"location":"pipeline/post-encode-scripts/#testlaufe","title":"Testl\u00e4ufe","text":"

Ergebnisse enthalten Erfolg/Exit-Code, Laufzeit und stdout/stderr.

"},{"location":"pipeline/workflow/","title":"Workflow & Zust\u00e4nde","text":"

Ripster steuert den Ablauf als Zustandsmaschine.

"},{"location":"pipeline/workflow/#zustandsdiagramm-vereinfacht","title":"Zustandsdiagramm (vereinfacht)","text":"
flowchart LR\n    A[Bereit] --> B[Medium erkannt]\n    B --> C[Analyse]\n    C --> D[Metadatenauswahl]\n    D --> E[Startbereit]\n    E --> F[Rippen]\n    E --> G[Mediainfo-Pruefung]\n    G --> H[Warte auf Auswahl]\n    H --> G\n    G --> I[Bereit zum Encodieren]\n    I --> J[Encodieren]\n    J --> K[Fertig]\n    J --> L[Fehler]\n    F --> L\n    F --> M[Abgebrochen]
"},{"location":"pipeline/workflow/#statusliste-gui-anzeige","title":"Statusliste (GUI-Anzeige)","text":"Status in der GUI Bedeutung Bereit Wartet auf Disc Medium erkannt Disc wurde erkannt Analyse MakeMKV-Analyse l\u00e4uft Metadatenauswahl Metadaten m\u00fcssen best\u00e4tigt werden Warte auf Auswahl Playlist-Auswahl ist erforderlich Warte auf Auswahl auch f\u00fcr RAW-Entscheidung bei vorhandenen Quelldaten genutzt Startbereit kurzer \u00dcbergang vor Start Rippen MakeMKV-Rip l\u00e4uft Mediainfo-Pruefung Titel/Spuren werden ausgewertet Bereit zum Encodieren Review ist bereit Encodieren HandBrake l\u00e4uft CD-Metadatenauswahl CD-Metadaten m\u00fcssen best\u00e4tigt werden CD-Startbereit CD-Job wartet auf Start CD-Analyse CD-Track-/Strukturaufbereitung CD-Rippen Audio-CD-Rip l\u00e4uft CD-Encodieren CD-Encode l\u00e4uft Fertig erfolgreich abgeschlossen Abgebrochen manuell oder technisch abgebrochen Fehler fehlgeschlagen"},{"location":"pipeline/workflow/#typische-pfade","title":"Typische Pfade","text":""},{"location":"pipeline/workflow/#standardfall-kein-vorhandenes-raw","title":"Standardfall (kein vorhandenes RAW)","text":"
  1. Medium erkannt
  2. Analyse + Metadaten
  3. Rippen
  4. Mediainfo-Pruefung
  5. Bereit zum Encodieren
  6. Encodieren
  7. Fertig
"},{"location":"pipeline/workflow/#vorhandenes-raw","title":"Vorhandenes RAW","text":"

Startbereit springt direkt zu Mediainfo-Pruefung (kein neuer Rip).

"},{"location":"pipeline/workflow/#mehrdeutige-blu-ray-playlist","title":"Mehrdeutige Blu-ray-Playlist","text":"

Mediainfo-Pruefung -> Warte auf Auswahl bis Playlist best\u00e4tigt wurde.

"},{"location":"pipeline/workflow/#vorhandenes-raw-mit-nutzerentscheidung","title":"Vorhandenes RAW mit Nutzerentscheidung","text":"

Metadatenauswahl -> Warte auf Auswahl bis Entscheidung f\u00fcr Weiterverarbeitung (continue) oder Neustart getroffen wurde.

"},{"location":"pipeline/workflow/#cd-flow","title":"CD-Flow","text":"

CD-Metadatenauswahl -> CD-Startbereit -> CD-Rippen -> CD-Encodieren -> Fertig

"},{"location":"pipeline/workflow/#queue-verhalten","title":"Queue-Verhalten","text":"

Wenn der Wert Parallele Jobs erreicht ist:

"},{"location":"pipeline/workflow/#abbruch-wiederaufnahme-neustart","title":"Abbruch, Wiederaufnahme, Neustart","text":""},{"location":"tools/","title":"Anhang: Externe Tools","text":"

Ripster orchestriert externe CLI-Tools. Dieser Abschnitt erkl\u00e4rt deren Rolle im Gesamtsystem.

"},{"location":"tools/handbrake/","title":"HandBrake","text":"

Ripster verwendet HandBrakeCLI f\u00fcr Scan und Encode.

"},{"location":"tools/handbrake/#verwendete-aufrufe","title":"Verwendete Aufrufe","text":""},{"location":"tools/handbrake/#scan-review-aufbau","title":"Scan (Review-Aufbau)","text":"
HandBrakeCLI --scan --json -i <input> -t 0\n
"},{"location":"tools/handbrake/#encode-vereinfacht","title":"Encode (vereinfacht)","text":"
HandBrakeCLI \\\n  -i <input> \\\n  -o <output> \\\n  -t <titleId> \\\n  -Z \"<preset>\" \\\n  <extra-args> \\\n  -a <audioTrackIds|none> \\\n  -s <subtitleTrackIds|none>\n

Optional erg\u00e4nzt Ripster:

"},{"location":"tools/handbrake/#presets-auslesen","title":"Presets auslesen","text":"

Ripster liest Presets mit:

HandBrakeCLI -z\n
"},{"location":"tools/handbrake/#relevante-felder-in-settings","title":"Relevante Felder in Settings","text":"Feldname in der GUI Bedeutung HandBrake Kommando CLI-Binary HandBrake Preset (Blu-ray/DVD) profilspezifisches Preset HandBrake Extra Args (Blu-ray/DVD) profilspezifische Zusatzargumente Ausgabeformat (Blu-ray/DVD) Dateiendung der finalen Datei Encode-Neustart: unvollst\u00e4ndige Ausgabe l\u00f6schen unvollst\u00e4ndige Ausgabe bei Neustart l\u00f6schen"},{"location":"tools/handbrake/#fortschritts-parsing","title":"Fortschritts-Parsing","text":"

Ripster parst HandBrake-Stderr (Prozent/ETA/Detail) und sendet WebSocket-Progress (PIPELINE_PROGRESS).

"},{"location":"tools/handbrake/#troubleshooting","title":"Troubleshooting","text":"

Das Produktions-Installer-Script install.sh bietet eine Option zur Installation eines geb\u00fcndelten HandBrakeCLI-Binaries mit NVDEC-Unterst\u00fctzung (NVIDIA GPU-Dekodierung). Diese Option erscheint interaktiv w\u00e4hrend der Installation.

"},{"location":"tools/makemkv/","title":"MakeMKV","text":"

Ripster nutzt makemkvcon f\u00fcr Disc-Analyse und Rip.

"},{"location":"tools/makemkv/#verwendete-aufrufe","title":"Verwendete Aufrufe","text":""},{"location":"tools/makemkv/#analyse","title":"Analyse","text":"
makemkvcon -r info <source>\n

<source> ist typischerweise:

"},{"location":"tools/makemkv/#rip-mkv-modus","title":"Rip (MKV-Modus)","text":"
makemkvcon mkv <source> <title-or-all> <rawDir> [--minlength=...] [...extraArgs]\n
"},{"location":"tools/makemkv/#rip-backup-modus","title":"Rip (Backup-Modus)","text":"
makemkvcon backup <source> <rawDir> --decrypt\n
"},{"location":"tools/makemkv/#registrierungsschlussel-optional","title":"Registrierungsschl\u00fcssel (optional)","text":"

Wenn in Settings ein MakeMKV Key gesetzt ist, synchronisiert Ripster ihn nach:

~/.MakeMKV/settings.conf\n

Format:

app_Key = \"product-key\"\n

Zus\u00e4tzlich zeigt die UI unterhalb des Feldes den aktuellen Betakey an, der per Button in das Eingabefeld \u00fcbernommen werden kann.

"},{"location":"tools/makemkv/#relevante-felder-in-settings","title":"Relevante Felder in Settings","text":"Feldname in der GUI Bedeutung MakeMKV Kommando CLI-Binary MakeMKV Source Index Source-Index im Auto-Modus Minimale Titellaenge (Minuten) Mindestlaufzeitfilter MakeMKV Rip Modus (Blu-ray/DVD) mkv oder backup MakeMKV Analyze Extra Args (Blu-ray/DVD) Zusatzargumente f\u00fcr Analyse MakeMKV Rip Extra Args (Blu-ray/DVD) Zusatzargumente f\u00fcr Rip"},{"location":"tools/makemkv/#hinweise","title":"Hinweise","text":""},{"location":"tools/mediainfo/","title":"MediaInfo","text":"

Ripster nutzt mediainfo zur JSON-Analyse von Medien-Dateien.

"},{"location":"tools/mediainfo/#aufruf","title":"Aufruf","text":"
mediainfo --Output=JSON <input>\n

Der Input ist typischerweise eine RAW-Datei oder ein vom Workflow gew\u00e4hlter Inputpfad.

"},{"location":"tools/mediainfo/#verwendung-in-ripster","title":"Verwendung in Ripster","text":""},{"location":"tools/mediainfo/#relevante-settings","title":"Relevante Settings","text":"Key Bedeutung mediainfo_command CLI-Binary mediainfo_extra_args_bluray / _dvd profilspezifische Zusatzargumente"},{"location":"tools/mediainfo/#troubleshooting","title":"Troubleshooting","text":""},{"location":"workflows/","title":"Workflows aus Nutzersicht","text":"

Diese Seite beschreibt die produktiven Abl\u00e4ufe aus Sicht der Benutzer: welche Entscheidung wann anf\u00e4llt, welche Jobs oder Container entstehen und welche Settings den Ablauf sichtbar beeinflussen.

"},{"location":"workflows/#gemeinsame-grundlagen","title":"Gemeinsame Grundlagen","text":""},{"location":"workflows/#typische-statuskette","title":"Typische Statuskette","text":"

Medium erkannt -> Analyse -> Metadatenauswahl -> Startbereit -> Rippen -> Mediainfo-Pr\u00fcfung -> Bereit zum Encodieren -> Encodieren -> Fertig

Wichtige Abweichungen:

"},{"location":"workflows/#welche-settings-fast-uberall-hineinspielen","title":"Welche Settings fast \u00fcberall hineinspielen","text":"

Die wichtigsten globalen Einflussfaktoren:

F\u00fcr Disc-Video zus\u00e4tzlich:

"},{"location":"workflows/#workflow-a-film-von-disc-blu-ray-dvd","title":"Workflow A: Film von Disc (Blu-ray / DVD)","text":""},{"location":"workflows/#1-disc-analysieren-und-tmdb-metadaten-wahlen","title":"1. Disc analysieren und TMDb-Metadaten w\u00e4hlen","text":"
  1. Im Ripper Analyse starten
  2. im Metadaten-Dialog Film ausw\u00e4hlen
  3. Auswahl \u00fcbernehmen

Wirkung:

Relevante Settings:

"},{"location":"workflows/#2-duplikatfall-entscheiden","title":"2. Duplikatfall entscheiden","text":"

Wenn ein Film mit gleichem Fingerprint bereits existiert:

  1. \u00dcbernahme erzwingen: neuer unabh\u00e4ngiger Film-Job
  2. Multipart movie: neuer Job wird mit bestehendem Film zu einem Multipart-Container verkn\u00fcpft

Bei Multipart gilt:

"},{"location":"workflows/#3-raw-verzeichnis-und-raw-entscheidung","title":"3. RAW-Verzeichnis und RAW-Entscheidung","text":"

Wenn noch kein passendes RAW vorhanden ist:

Wenn bereits ein passendes RAW gefunden wird:

Relevante Settings:

"},{"location":"workflows/#4-playlist-oder-titelauswahl","title":"4. Playlist- oder Titelauswahl","text":"

Bei bestimmten Discs ist nach der Metadatenphase eine manuelle Auswahl n\u00f6tig:

Das ist der aktuelle playlistflow.

Relevante Settings:

Praxis:

"},{"location":"workflows/#5-review-und-encode","title":"5. Review und Encode","text":"

Im Zustand Bereit zum Encodieren entscheidest du:

Relevante Settings:

"},{"location":"workflows/#6-finale-ausgabe","title":"6. Finale Ausgabe","text":"

Finale Ausgabe:

Optional:

Relevante Settings:

"},{"location":"workflows/#workflow-b-serie-von-disc-blu-ray-dvd","title":"Workflow B: Serie von Disc (Blu-ray / DVD)","text":""},{"location":"workflows/#1-serienmodus-festlegen","title":"1. Serienmodus festlegen","text":"
  1. Disc analysieren
  2. im Metadaten-Dialog Serienmetadaten w\u00e4hlen
  3. Disc-Nummer setzen

Wirkung:

"},{"location":"workflows/#2-serien-raw-und-staffelkontext","title":"2. Serien-RAW und Staffelkontext","text":"

F\u00fcr Serien bevorzugt Ripster eigene Serien-RAW-Verzeichnisse:

Falls leer:

"},{"location":"workflows/#3-episodenprufung-und-multi-episode-falle","title":"3. Episodenpr\u00fcfung und Multi-Episode-F\u00e4lle","text":"

In der Review werden Episoden oder Mehrfachfolgen aufgel\u00f6st.

Ausgabevarianten:

Relevante Settings:

"},{"location":"workflows/#4-playlistflow-auch-bei-serien","title":"4. Playlistflow auch bei Serien","text":"

Auch Serien k\u00f6nnen vor der Review in eine Playlist- oder Titelauswahl laufen.

Zus\u00e4tzlich wirken:

"},{"location":"workflows/#workflow-c-multipart-film","title":"Workflow C: Multipart-Film","text":""},{"location":"workflows/#wann-der-flow-gedacht-ist","title":"Wann der Flow gedacht ist","text":""},{"location":"workflows/#ablauf","title":"Ablauf","text":"
  1. Film-Metadaten w\u00e4hlen
  2. Duplikatdialog Multipart movie
  3. Disc-Nummern f\u00fcr bestehenden und neuen Job festlegen

Wirkung:

Relevante Settings:

"},{"location":"workflows/#workflow-d-audio-cd","title":"Workflow D: Audio-CD","text":""},{"location":"workflows/#1-toc-lesen-und-metadaten-wahlen","title":"1. TOC lesen und Metadaten w\u00e4hlen","text":"
  1. Audio-CD analysieren
  2. Tracks pr\u00fcfen
  3. Metadaten aus MusicBrainz \u00fcbernehmen oder manuell anpassen
"},{"location":"workflows/#2-trackauswahl-und-format","title":"2. Trackauswahl und Format","text":"

Vor dem Start legst du fest:

"},{"location":"workflows/#3-rip-und-encode","title":"3. Rip und Encode","text":"

Die CD l\u00e4uft anschlie\u00dfend als Track-f\u00fcr-Track-Flow:

CD-Metadatenauswahl -> CD-Startbereit -> CD-Rippen -> CD-Encodieren -> Fertig

Relevante Settings:

"},{"location":"workflows/#workflow-e-converter","title":"Workflow E: Converter","text":""},{"location":"workflows/#1-dateien-bereitstellen","title":"1. Dateien bereitstellen","text":"

Dateien gelangen in den Converter \u00fcber:

"},{"location":"workflows/#2-jobs-aus-auswahl-erzeugen","title":"2. Jobs aus Auswahl erzeugen","text":""},{"location":"workflows/#3-job-konfigurieren-und-starten","title":"3. Job konfigurieren und starten","text":"

Je nach Medium:

Relevante Settings:

"},{"location":"workflows/#workflow-f-audiobooks","title":"Workflow F: Audiobooks","text":""},{"location":"workflows/#1-aax-hochladen","title":"1. AAX hochladen","text":"
  1. Datei hochladen
  2. Metadaten und Kapitel aufbauen lassen
  3. bei Bedarf Activation Bytes kl\u00e4ren
"},{"location":"workflows/#2-ausgabeformat-wahlen","title":"2. Ausgabeformat w\u00e4hlen","text":""},{"location":"workflows/#3-kapitel-und-skripte-prufen","title":"3. Kapitel und Skripte pr\u00fcfen","text":"

Vor dem Start anpassbar:

Relevante Settings:

"},{"location":"workflows/#workflow-g-nachbearbeitung-in-der-historie","title":"Workflow G: Nachbearbeitung in der Historie","text":"

Typische Folgeaktionen:

Besonders wichtig:

"},{"location":"workflows/#workflow-h-downloads-und-recovery","title":"Workflow H: Downloads und Recovery","text":""},{"location":"workflows/#downloads","title":"Downloads","text":"

Aus Historie k\u00f6nnen ZIPs f\u00fcr:

erstellt werden.

Relevante Settings:

"},{"location":"workflows/#database-expert","title":"Database (Expert)","text":"

Die Recovery-Seite hilft bei orphan RAW:

So lassen sich vorhandene RAW-Verzeichnisse wieder in einen normalen Workflow zur\u00fcckf\u00fchren.

"},{"location":"workflows/#tmdb-migration","title":"TMDb Migration","text":"

F\u00fcr \u00e4ltere Bestandsjobs gibt es die Sonderseite /tmdb-migration, um mehrere Jobs nacheinander auf den heutigen TMDb-Stand zu bringen.

"}]} \ No newline at end of file +{"config":{"lang":["de"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"Ripster Handbuch","text":"

Diese Dokumentation ist als vollst\u00e4ndiges Benutzerhandbuch aufgebaut: t\u00e4gliche Bedienung zuerst, technische Referenz danach.

"},{"location":"#einstieg-in-3-schritten","title":"Einstieg in 3 Schritten","text":"
  1. Installation: Installation
  2. Betriebskonfiguration: Ersteinrichtung
  3. erster End-to-End-Lauf: Erster Lauf
"},{"location":"#was-das-handbuch-abdeckt","title":"Was das Handbuch abdeckt","text":""},{"location":"#empfohlene-lesereihenfolge","title":"Empfohlene Lesereihenfolge","text":"
  1. Benutzerhandbuch \u00dcberblick
  2. GUI-Seiten
  3. Workflows aus Nutzersicht
  4. Einstellungsreferenz
  5. bei Bedarf technischer Tiefgang im Anhang
"},{"location":"api/","title":"Anhang: API-Referenz","text":"

REST- und WebSocket-Schnittstellen f\u00fcr Integration, Automatisierung und Debugging.

"},{"location":"api/#basis-url","title":"Basis-URL","text":"
http://localhost:3001\n

API-Prefix: /api

"},{"location":"api/#api-gruppen","title":"API-Gruppen","text":""},{"location":"api/#hinweis","title":"Hinweis","text":"

Ripster hat keine eingebaute Authentifizierung und ist f\u00fcr lokalen, gesch\u00fctzten Betrieb gedacht.

"},{"location":"api/converter/","title":"Converter API","text":"

Endpunkte f\u00fcr den Datei-Converter: Datei-Explorer, Upload, Job-Verwaltung.

Basis-Pfad: /api/converter

"},{"location":"api/converter/#scan-explorer","title":"Scan & Explorer","text":""},{"location":"api/converter/#get-apiconvertertree","title":"GET /api/converter/tree","text":"

Vollst\u00e4ndiger Verzeichnisbaum des converter_raw_dir (FS-basiert, keine DB).

Response:

{\n  \"tree\": [\n    {\n      \"name\": \"filme\",\n      \"relPath\": \"filme\",\n      \"isDir\": true,\n      \"children\": [\n        {\n          \"name\": \"film.mkv\",\n          \"relPath\": \"filme/film.mkv\",\n          \"isDir\": false,\n          \"size\": 10485760\n        }\n      ]\n    }\n  ]\n}\n
"},{"location":"api/converter/#get-apiconverterbrowseparentrelpath","title":"GET /api/converter/browse?parent=relPath","text":"

DB-basierter Datei-Explorer. Gibt Eintr\u00e4ge f\u00fcr einen Unterordner zur\u00fcck.

Query-Parameter:

Parameter Typ Beschreibung parent string Relativer Pfad zum Unterordner (leer = Root)

Response:

{\n  \"entries\": [\n    {\n      \"id\": 1,\n      \"rel_path\": \"filme/film.mkv\",\n      \"is_dir\": false,\n      \"size\": 10485760,\n      \"job_id\": null\n    }\n  ],\n  \"rawDir\": \"/data/output/converter-raw\"\n}\n
"},{"location":"api/converter/#post-apiconverterscan","title":"POST /api/converter/scan","text":"

Manuellen Scan des converter_raw_dir ausl\u00f6sen. Aktualisiert converter_scan_entries in der DB.

Response:

{ \"result\": { \"added\": 3, \"removed\": 1 } }\n
"},{"location":"api/converter/#jobs-erstellen","title":"Jobs erstellen","text":""},{"location":"api/converter/#post-apiconverterjobsfrom-selection","title":"POST /api/converter/jobs/from-selection","text":"

Jobs aus im Datei-Explorer ausgew\u00e4hlten Dateien erstellen.

Body:

{\n  \"relPaths\": [\"filme/film.mkv\", \"musik/track.flac\"],\n  \"audioMode\": \"individual\"\n}\n
Feld Typ Beschreibung relPaths string[] Relative Pfade der ausgew\u00e4hlten Dateien audioMode string individual (ein Job pro Datei) oder shared (ein gemeinsamer Job)

Response:

{ \"jobs\": [{ \"id\": 42, \"status\": \"READY_TO_START\" }] }\n
"},{"location":"api/converter/#post-apiconvertercreate-jobs","title":"POST /api/converter/create-jobs","text":"

Jobs aus DB-Scan-Eintr\u00e4gen erstellen.

Body:

{\n  \"entries\": [\n    { \"relPath\": \"filme/film.mkv\", \"converterMediaType\": \"video\" }\n  ]\n}\n
"},{"location":"api/converter/#post-apiconverterupload","title":"POST /api/converter/upload","text":"

Dateien hochladen (Multipart, max. 50 Dateien).

Form-Felder:

Feld Typ Beschreibung files File[] Hochzuladende Dateien folderName string (Optional) Ziel-Unterordner

Response:

{\n  \"folders\": [{ \"folderRelPath\": \"upload-2026-03-30\", \"fileCount\": 2 }]\n}\n
"},{"location":"api/converter/#job-verwaltung","title":"Job-Verwaltung","text":""},{"location":"api/converter/#get-apiconverterjobs","title":"GET /api/converter/jobs","text":"

Alle Converter-Jobs zur\u00fcckgeben.

Response:

{ \"jobs\": [{ \"id\": 42, \"status\": \"READY_TO_START\", \"title\": \"film.mkv\" }] }\n
"},{"location":"api/converter/#get-apiconverterjobsjobid","title":"GET /api/converter/jobs/:jobId","text":"

Einzelnen Converter-Job abrufen.

"},{"location":"api/converter/#post-apiconverterjobsjobidconfig","title":"POST /api/converter/jobs/:jobId/config","text":"

Konfigurationsentwurf f\u00fcr einen Job speichern (persistiert in encode_plan_json).

Body: Partielles Konfig-Objekt (Ausgabeformat, Presets, Metadaten, Track-Auswahl).

"},{"location":"api/converter/#post-apiconverterjobsjobidassign-files","title":"POST /api/converter/jobs/:jobId/assign-files","text":"

Dateien einem bestehenden (noch nicht gestarteten) Job hinzuf\u00fcgen.

Body:

{ \"relPaths\": [\"musik/track2.flac\"] }\n
"},{"location":"api/converter/#post-apiconverterjobsjobidremove-file","title":"POST /api/converter/jobs/:jobId/remove-file","text":"

Datei aus einem Job entfernen (per relativer Pfad).

Body:

{ \"relPath\": \"musik/track2.flac\" }\n
"},{"location":"api/converter/#post-apiconverterjobsjobidremove-input","title":"POST /api/converter/jobs/:jobId/remove-input","text":"

Datei aus einem Job entfernen (per absolutem Eingabepfad).

Body:

{ \"inputPath\": \"/data/output/converter-raw/musik/track2.flac\" }\n
"},{"location":"api/converter/#post-apiconverterjobsjobidstart","title":"POST /api/converter/jobs/:jobId/start","text":"

Job mit finaler Konfiguration starten.

Body:

{\n  \"converterMediaType\": \"video\",\n  \"outputFormat\": \"mkv\",\n  \"userPreset\": \"H.264 MKV 1080p30\",\n  \"trackSelection\": {},\n  \"handBrakeTitleId\": 1,\n  \"audioFormatOptions\": {}\n}\n
"},{"location":"api/converter/#post-apiconverterjobsjobidcancel","title":"POST /api/converter/jobs/:jobId/cancel","text":"

Laufenden Job abbrechen.

"},{"location":"api/converter/#delete-apiconverterjobsjobid","title":"DELETE /api/converter/jobs/:jobId","text":"

Job aus der DB l\u00f6schen.

"},{"location":"api/converter/#datei-operationen","title":"Datei-Operationen","text":"

Alle Datei-Operationen arbeiten direkt auf dem Dateisystem (ohne DB-Aktualisierung). Ein anschlie\u00dfender Scan-Aufruf synchronisiert die DB.

"},{"location":"api/converter/#delete-apiconverterfiles","title":"DELETE /api/converter/files","text":"

Datei oder Ordner l\u00f6schen.

Body:

{ \"relPath\": \"filme/film.mkv\" }\n
"},{"location":"api/converter/#post-apiconverterfilesrename","title":"POST /api/converter/files/rename","text":"

Datei oder Ordner umbenennen.

Body:

{ \"relPath\": \"filme/film.mkv\", \"newName\": \"film-neu.mkv\" }\n
"},{"location":"api/converter/#post-apiconverterfilesmove","title":"POST /api/converter/files/move","text":"

Datei oder Ordner verschieben.

Body:

{ \"relPath\": \"filme/film.mkv\", \"targetParentRelPath\": \"archiv\" }\n

targetParentRelPath = \"\" verschiebt in das Root-Verzeichnis.

"},{"location":"api/converter/#post-apiconverterfilesfolder","title":"POST /api/converter/files/folder","text":"

Neuen Ordner anlegen.

Body:

{ \"parentRelPath\": \"filme\", \"name\": \"neu\" }\n
"},{"location":"api/crons/","title":"Cron API","text":"

Ripster enth\u00e4lt ein eingebautes Cron-System f\u00fcr Skripte und Skript-Ketten (sourceType: script|chain).

"},{"location":"api/crons/#get-apicrons","title":"GET /api/crons","text":"

Listet alle Cron-Jobs.

{\n  \"jobs\": [\n    {\n      \"id\": 1,\n      \"name\": \"Nachtlauf Backup\",\n      \"cronExpression\": \"0 2 * * *\",\n      \"sourceType\": \"script\",\n      \"sourceId\": 3,\n      \"sourceName\": \"Backup-Skript\",\n      \"enabled\": true,\n      \"pushoverEnabled\": true,\n      \"lastRunAt\": \"2026-03-10T02:00:00.000Z\",\n      \"lastRunStatus\": \"success\",\n      \"nextRunAt\": \"2026-03-11T02:00:00.000Z\",\n      \"createdAt\": \"2026-03-01T10:00:00.000Z\",\n      \"updatedAt\": \"2026-03-10T02:00:05.000Z\"\n    }\n  ]\n}\n
"},{"location":"api/crons/#post-apicrons","title":"POST /api/crons","text":"

Erstellt Cron-Job.

{\n  \"name\": \"Nachtlauf Backup\",\n  \"cronExpression\": \"0 2 * * *\",\n  \"sourceType\": \"script\",\n  \"sourceId\": 3,\n  \"enabled\": true,\n  \"pushoverEnabled\": true\n}\n

Response: 201 mit { \"job\": { ... } }

"},{"location":"api/crons/#get-apicronsid","title":"GET /api/crons/:id","text":"

Response:

{ \"job\": { \"id\": 1, \"name\": \"...\" } }\n
"},{"location":"api/crons/#put-apicronsid","title":"PUT /api/crons/:id","text":"

Aktualisiert Cron-Job. Felder wie bei POST.

Response:

{ \"job\": { ... } }\n
"},{"location":"api/crons/#delete-apicronsid","title":"DELETE /api/crons/:id","text":"

Response:

{ \"removed\": { \"id\": 1, \"name\": \"Nachtlauf Backup\" } }\n
"},{"location":"api/crons/#get-apicronsidlogs","title":"GET /api/crons/:id/logs","text":"

Liefert Ausf\u00fchrungs-Logs.

Query-Parameter:

Parameter Typ Default Beschreibung limit number 20 Anzahl Eintr\u00e4ge, max. 100

Response:

{\n  \"logs\": [\n    {\n      \"id\": 42,\n      \"cronJobId\": 1,\n      \"startedAt\": \"2026-03-10T02:00:01.000Z\",\n      \"finishedAt\": \"2026-03-10T02:00:05.000Z\",\n      \"status\": \"success\",\n      \"output\": \"Backup abgeschlossen.\",\n      \"errorMessage\": null\n    }\n  ]\n}\n

status: running | success | error

"},{"location":"api/crons/#post-apicronsidrun","title":"POST /api/crons/:id/run","text":"

Triggert Job manuell (asynchron).

Response:

{ \"triggered\": true, \"cronJobId\": 1 }\n

Wenn Job bereits l\u00e4uft: 409.

"},{"location":"api/crons/#post-apicronsvalidate-expression","title":"POST /api/crons/validate-expression","text":"

Validiert 5-Felder-Cron-Ausdruck und berechnet n\u00e4chsten Lauf.

Request:

{ \"cronExpression\": \"*/15 * * * *\" }\n

G\u00fcltige Response:

{\n  \"valid\": true,\n  \"nextRunAt\": \"2026-03-10T14:15:00.000Z\"\n}\n

Ung\u00fcltige Response:

{\n  \"valid\": false,\n  \"error\": \"Cron-Ausdruck muss genau 5 Felder haben (Minute Stunde Tag Monat Wochentag).\",\n  \"nextRunAt\": null\n}\n
"},{"location":"api/crons/#cron-format","title":"Cron-Format","text":"

Ripster unterst\u00fctzt 5 Felder:

Minute Stunde Tag Monat Wochentag\n

Beispiele:

"},{"location":"api/crons/#websocket-events-zu-cron","title":"WebSocket-Events zu Cron","text":""},{"location":"api/downloads/","title":"Downloads API","text":"

Endpunkte f\u00fcr die Download-Queue. Ausgabedateien aus der Job-Historie k\u00f6nnen als ZIP heruntergeladen werden.

Basis-Pfad: /api/downloads

"},{"location":"api/downloads/#get-apidownloads","title":"GET /api/downloads","text":"

Liste aller Download-Eintr\u00e4ge plus Zusammenfassung.

Response:

{\n  \"items\": [\n    {\n      \"id\": \"dl-42-raw\",\n      \"jobId\": 42,\n      \"target\": \"raw\",\n      \"status\": \"ready\",\n      \"archiveName\": \"Job_42_raw.zip\",\n      \"outputPath\": null,\n      \"createdAt\": \"2026-03-30T10:00:00.000Z\",\n      \"updatedAt\": \"2026-03-30T10:01:00.000Z\",\n      \"errorMessage\": null\n    }\n  ],\n  \"summary\": {\n    \"total\": 3,\n    \"pending\": 1,\n    \"processing\": 0,\n    \"ready\": 1,\n    \"failed\": 1\n  }\n}\n

Status-Werte:

Status Beschreibung pending In der Queue, noch nicht gestartet processing ZIP wird gerade erstellt ready ZIP fertig, Download verf\u00fcgbar failed Fehler bei der Erstellung"},{"location":"api/downloads/#get-apidownloadssummary","title":"GET /api/downloads/summary","text":"

Nur die Zusammenfassung der Download-Queue (ohne Item-Liste).

Response:

{\n  \"summary\": {\n    \"total\": 3,\n    \"pending\": 1,\n    \"processing\": 0,\n    \"ready\": 1,\n    \"failed\": 1\n  }\n}\n
"},{"location":"api/downloads/#post-apidownloadshistoryjobid","title":"POST /api/downloads/history/:jobId","text":"

Job-Ausgabe in die Download-Queue einreihen.

Parameter:

Parameter Typ Beschreibung jobId number ID des Jobs in der Historie

Body:

{\n  \"target\": \"raw\",\n  \"outputPath\": null\n}\n
Feld Typ Default Beschreibung target string raw raw (RAW-Dateien) oder movie (Ausgabedateien) outputPath string null Optionaler expliziter Ausgabepfad

Response (201 Created):

{\n  \"created\": true,\n  \"id\": \"dl-42-raw\",\n  \"status\": \"pending\",\n  \"summary\": { \"total\": 1, \"pending\": 1, \"processing\": 0, \"ready\": 0, \"failed\": 0 }\n}\n

Ist der Eintrag bereits vorhanden, wird 201 durch 200 ersetzt und created: false zur\u00fcckgegeben.

"},{"location":"api/downloads/#get-apidownloadsidfile","title":"GET /api/downloads/:id/file","text":"

Fertige ZIP-Datei herunterladen.

Parameter:

Parameter Typ Beschreibung id string Download-ID (z. B. dl-42-raw)

Response: Datei-Download (Content-Disposition: attachment).

Schl\u00e4gt fehl mit 404, wenn kein Download-Eintrag mit dieser ID existiert oder die Datei noch nicht bereit ist.

"},{"location":"api/downloads/#delete-apidownloadsid","title":"DELETE /api/downloads/:id","text":"

Download-Eintrag l\u00f6schen (auch fertige ZIP-Dateien werden vom Dateisystem entfernt).

Response:

{\n  \"ok\": true,\n  \"summary\": { \"total\": 2, \"pending\": 0, \"processing\": 0, \"ready\": 2, \"failed\": 0 }\n}\n
"},{"location":"api/downloads/#websocket","title":"WebSocket","text":"

Status\u00e4nderungen werden \u00fcber DOWNLOADS_UPDATED in Echtzeit gemeldet. Vollst\u00e4ndige Dokumentation: WebSocket Events.

"},{"location":"api/history/","title":"History API","text":"

Endpunkte f\u00fcr Job-Historie, Metadaten-Nachpflege, Orphan-Import und L\u00f6schoperationen.

"},{"location":"api/history/#get-apihistory","title":"GET /api/history","text":"

Liefert Jobs mit optionalen Filtern.

Query-Parameter:

Parameter Typ Beschreibung status string Einzelstatus-Filter (legacy-kompatibel). statuses string Mehrfachstatus als CSV, z. B. FINISHED,ERROR. search string Suche in Titel-/IMDb-Feldern. limit number Maximale Anzahl Ergebnisse. lite bool Ohne Dateisystem-Checks (schneller). includeChildren bool Child-Jobs (z. B. Serien-/Multipart-Kinder) explizit einbeziehen.

Beispiel:

GET /api/history?statuses=FINISHED,ERROR&search=Inception&limit=50&lite=1\n

Response (Beispiel):

{\n  \"jobs\": [\n    {\n      \"id\": 42,\n      \"status\": \"FINISHED\",\n      \"title\": \"Inception\",\n      \"job_kind\": \"bluray\",\n      \"raw_path\": \"/mnt/raw/Inception - RAW - job-42\",\n      \"output_path\": \"/mnt/movies/Inception (2010)/Inception (2010).mkv\",\n      \"mediaType\": \"bluray\",\n      \"ripSuccessful\": true,\n      \"encodeSuccess\": true,\n      \"created_at\": \"2026-03-10T08:00:00.000Z\",\n      \"updated_at\": \"2026-03-10T10:00:00.000Z\"\n    }\n  ]\n}\n
"},{"location":"api/history/#get-apihistoryid","title":"GET /api/history/:id","text":"

Liefert Job-Detail.

Query-Parameter:

Parameter Typ Standard Beschreibung includeLogs bool false Prozesslog laden. includeLiveLog bool false Live-/Tail-Log laden. includeAllLogs bool false vollst\u00e4ndiges Log statt Tail. logTailLines number 800 Tail-L\u00e4nge falls nicht includeAllLogs. lite bool false Detailantwort ohne FS-Checks.

Response (Beispiel):

{\n  \"job\": {\n    \"id\": 42,\n    \"status\": \"FINISHED\",\n    \"makemkvInfo\": {},\n    \"mediainfoInfo\": {},\n    \"handbrakeInfo\": {},\n    \"encodePlan\": {},\n    \"log\": \"...\",\n    \"log_count\": 1,\n    \"logMeta\": {\n      \"loaded\": true,\n      \"total\": 800,\n      \"returned\": 800,\n      \"truncated\": true\n    }\n  }\n}\n
"},{"location":"api/history/#get-apihistoryorphan-raw","title":"GET /api/history/orphan-raw","text":"

Sucht RAW-Ordner ohne zugeh\u00f6rigen Job.

"},{"location":"api/history/#post-apihistoryorphan-rawimport","title":"POST /api/history/orphan-raw/import","text":"

Importiert einen RAW-Ordner als Job und triggert optional die Analyse des Imports.

Request:

{ \"rawPath\": \"/mnt/raw/Inception (2010) [tt1375666] - RAW - job-99\" }\n

Response (Beispiel):

{\n  \"job\": { \"id\": 77, \"status\": \"FINISHED\" },\n  \"activation\": { \"started\": true },\n  \"activationError\": null\n}\n
"},{"location":"api/history/#post-apihistoryidmetadataassign","title":"POST /api/history/:id/metadata/assign","text":"

Weist TMDb-Metadaten nachtr\u00e4glich zu oder aktualisiert bestehende Film-/Serien-Metadaten eines Jobs.

"},{"location":"api/history/#post-apihistoryidcdassign","title":"POST /api/history/:id/cd/assign","text":"

Weist CD-Metadaten (z. B. MusicBrainz) nachtr\u00e4glich zu.

"},{"location":"api/history/#post-apihistoryiderrorack","title":"POST /api/history/:id/error/ack","text":"

Quittiert einen Fehlerzustand im Historieneintrag.

"},{"location":"api/history/#get-apihistoryiddelete-preview","title":"GET /api/history/:id/delete-preview","text":"

Liefert eine Vorschau der l\u00f6schbaren Pfade (inkl. Scope auf verkn\u00fcpfte Jobs).

Query-Parameter:

Parameter Typ Standard Beschreibung includeRelated bool true Verkn\u00fcpfte Jobs in die Vorschau einbeziehen.

Response (Beispiel):

{\n  \"preview\": {\n    \"jobId\": 42,\n    \"relatedJobs\": [{ \"id\": 42 }, { \"id\": 73 }],\n    \"pathCandidates\": {\n      \"raw\": [{ \"path\": \"/mnt/raw/...\", \"exists\": true, \"isDirectory\": true }],\n      \"movie\": [{ \"path\": \"/mnt/movies/...\", \"exists\": true, \"isDirectory\": true }]\n    }\n  }\n}\n
"},{"location":"api/history/#post-apihistoryiddelete-files","title":"POST /api/history/:id/delete-files","text":"

L\u00f6scht Dateien eines Jobs, beh\u00e4lt DB-Eintrag.

Request:

{\n  \"target\": \"both\",\n  \"includeRelated\": true,\n  \"selectedRawPaths\": [\"/mnt/raw/Inception - RAW - Disc1\"],\n  \"selectedMoviePaths\": [\"/mnt/movies/Inception (2010)\"]\n}\n

target: raw | movie | both

selectedRawPaths / selectedMoviePaths sind optional und begrenzen die L\u00f6schung auf ausgew\u00e4hlte Pfade aus der Vorschau.

"},{"location":"api/history/#post-apihistoryiddelete","title":"POST /api/history/:id/delete","text":"

L\u00f6scht Job aus DB; optional auch Dateien.

Request:

{\n  \"target\": \"both\",\n  \"includeRelated\": true,\n  \"resetDriveState\": false,\n  \"keepDetectedDevice\": true,\n  \"preserveRawForImportJobs\": false,\n  \"selectedRawPaths\": [\"/mnt/raw/Inception - RAW - Disc1\"],\n  \"selectedMoviePaths\": [\"/mnt/movies/Inception (2010)\"]\n}\n

target: none | raw | movie | both

Response (Beispiel):

{\n  \"deleted\": true,\n  \"jobId\": 42,\n  \"fileTarget\": \"both\",\n  \"fileSummary\": {\n    \"target\": \"both\",\n    \"raw\": { \"filesDeleted\": 10 },\n    \"movie\": { \"filesDeleted\": 1 }\n  },\n  \"uiReset\": {\n    \"reset\": true,\n    \"state\": \"IDLE\"\n  },\n  \"safeguards\": {\n    \"containsOrphanRawImportJob\": false,\n    \"resetDriveStateApplied\": false,\n    \"keepDetectedDeviceApplied\": true\n  }\n}\n
"},{"location":"api/history/#hinweise","title":"Hinweise","text":""},{"location":"api/pipeline/","title":"Pipeline API","text":"

Endpunkte zur Steuerung des Pipeline-Workflows.

"},{"location":"api/pipeline/#get-apipipelinestate","title":"GET /api/pipeline/state","text":"

Liefert aktuellen Pipeline- und Hardware-Monitoring-Snapshot.

Response (Beispiel):

{\n  \"pipeline\": {\n    \"state\": \"READY_TO_ENCODE\",\n    \"activeJobId\": 42,\n    \"progress\": 0,\n    \"eta\": null,\n    \"statusText\": \"Mediainfo best\u00e4tigt - Encode manuell starten\",\n    \"context\": {\n      \"jobId\": 42\n    },\n    \"jobProgress\": {\n      \"42\": {\n        \"state\": \"MEDIAINFO_CHECK\",\n        \"progress\": 68.5,\n        \"eta\": null,\n        \"statusText\": \"MEDIAINFO_CHECK 68.50%\"\n      }\n    },\n    \"queue\": {\n      \"maxParallelJobs\": 1,\n      \"runningCount\": 1,\n      \"queuedCount\": 2,\n      \"runningJobs\": [],\n      \"queuedJobs\": []\n    }\n  },\n  \"hardwareMonitoring\": {\n    \"enabled\": true,\n    \"intervalMs\": 5000,\n    \"updatedAt\": \"2026-03-10T09:00:00.000Z\",\n    \"sample\": {\n      \"cpu\": {},\n      \"memory\": {},\n      \"gpu\": {},\n      \"storage\": {}\n    },\n    \"error\": null\n  }\n}\n
"},{"location":"api/pipeline/#post-apipipelineanalyze","title":"POST /api/pipeline/analyze","text":"

Startet Disc-Analyse und legt Job an.

Response:

{\n  \"result\": {\n    \"jobId\": 42,\n    \"detectedTitle\": \"INCEPTION\",\n    \"omdbCandidates\": []\n  }\n}\n
"},{"location":"api/pipeline/#post-apipipelinerescan-disc","title":"POST /api/pipeline/rescan-disc","text":"

Erzwingt erneute Laufwerkspr\u00fcfung.

Response (Beispiel):

{\n  \"result\": {\n    \"present\": true,\n    \"changed\": true,\n    \"emitted\": \"discInserted\",\n    \"device\": {\n      \"path\": \"/dev/sr0\",\n      \"discLabel\": \"INCEPTION\",\n      \"mediaProfile\": \"bluray\"\n    }\n  }\n}\n
"},{"location":"api/pipeline/#post-apipipelinerescan-drive","title":"POST /api/pipeline/rescan-drive","text":"

Erzwingt Rescan f\u00fcr ein konkretes Laufwerk.

Request:

{ \"devicePath\": \"/dev/sr0\" }\n
"},{"location":"api/pipeline/#get-apipipelinetmdbmoviesearchq","title":"GET /api/pipeline/tmdb/movie/search?q=

TMDb-Filmsuche.

Response:

{\n  \"results\": [\n    {\n      \"imdbId\": \"tt1375666\",\n      \"title\": \"Inception\",\n      \"year\": \"2010\",\n      \"type\": \"movie\",\n      \"poster\": \"https://...\"\n    }\n  ]\n}\n
","text":""},{"location":"api/pipeline/#get-apipipelinetmdbseriessearchqseason","title":"GET /api/pipeline/tmdb/series/search?q=&season=

TMDb-Seriensuche (f\u00fcr Serien-Workflow bei DVD/Blu-ray).

","text":""},{"location":"api/pipeline/#get-apipipelinecddrives","title":"GET /api/pipeline/cd/drives

Liefert Snapshot der aktuell bekannten CD-Laufwerke.

","text":""},{"location":"api/pipeline/#get-apipipelinecdmusicbrainzsearchq","title":"GET /api/pipeline/cd/musicbrainz/search?q=

MusicBrainz-Suche f\u00fcr CD-Metadaten.

","text":""},{"location":"api/pipeline/#get-apipipelinecdmusicbrainzreleasembid","title":"GET /api/pipeline/cd/musicbrainz/release/:mbId

L\u00e4dt Release-Details zu einer MusicBrainz-ID.

","text":""},{"location":"api/pipeline/#post-apipipelinecdselect-metadata","title":"POST /api/pipeline/cd/select-metadata

\u00dcbernimmt CD-Metadaten f\u00fcr einen Job.

Request (Beispiel):

{\n  \"jobId\": 91,\n  \"title\": \"Album\",\n  \"artist\": \"Artist\",\n  \"year\": 2020,\n  \"mbId\": \"f5093c06-23e3-404f-aeaa-40f72885ee3a\",\n  \"coverUrl\": \"https://...\",\n  \"tracks\": []\n}\n
","text":""},{"location":"api/pipeline/#post-apipipelinecdstartjobid","title":"POST /api/pipeline/cd/start/:jobId

Startet/queued CD-Rip mit Format-/Script-/Chain-Konfiguration.

","text":""},{"location":"api/pipeline/#post-apipipelineaudiobookupload","title":"POST /api/pipeline/audiobook/upload

Upload von AAX-Datei (Multipart/FormData).

FormData-Felder:

","text":""},{"location":"api/pipeline/#get-apipipelineaudiobookpending-activation","title":"GET /api/pipeline/audiobook/pending-activation

Zeigt AAX-Jobs mit fehlenden Activation-Bytes.

","text":""},{"location":"api/pipeline/#post-apipipelineaudiobookstartjobid","title":"POST /api/pipeline/audiobook/start/:jobId

Startet Audiobook-Job mit optionaler Konfiguration.

","text":""},{"location":"api/pipeline/#get-apipipelineaudiobookjobs","title":"GET /api/pipeline/audiobook/jobs

Liefert Audiobook-Jobliste.

","text":""},{"location":"api/pipeline/#get-apipipelineaudiobookoutput-tree","title":"GET /api/pipeline/audiobook/output-tree

Read-only Baumansicht des Audiobook-Ausgabeordners.

","text":""},{"location":"api/pipeline/#post-apipipelineselect-metadata","title":"POST /api/pipeline/select-metadata

Setzt Metadaten (und optional Playlist) f\u00fcr einen Job.

Request:

{\n  \"jobId\": 42,\n  \"title\": \"Inception\",\n  \"year\": 2010,\n  \"imdbId\": \"tt1375666\",\n  \"poster\": \"https://...\",\n  \"fromOmdb\": true,\n  \"selectedPlaylist\": \"00800\"\n}\n

Wichtige optionale Felder:

Response:

{ \"job\": { \"id\": 42, \"status\": \"READY_TO_START\" } }\n

Konflikt-Response (Beispiel, HTTP 409):

{\n  \"message\": \"Metadaten bereits in der Historie gefunden. Bitte Auswahl \u00fcbernehmen oder Multipart movie w\u00e4hlen.\",\n  \"details\": [\n    {\n      \"code\": \"METADATA_DUPLICATE_FOUND\",\n      \"mediaProfile\": \"bluray\",\n      \"existingJob\": {\n        \"id\": 17,\n        \"title\": \"Inception\",\n        \"year\": 2010,\n        \"status\": \"FINISHED\",\n        \"jobKind\": \"bluray\",\n        \"discNumber\": 1,\n        \"isMultipartMovie\": false\n      }\n    }\n  ]\n}\n

Relevante Fehlercodes (POST /api/pipeline/select-metadata):

Code Bedeutung METADATA_DUPLICATE_FOUND Film-Metadaten existieren bereits in der Historie (Konfliktdialog im UI). MULTIPART_DISC_REQUIRED F\u00fcr Multipart fehlen Disc-Nummern (discNumber/existingDiscNumber). MULTIPART_DISC_ALREADY_EXISTS Disc-Nummer im Multipart-Container bereits vergeben oder doppelt. MULTIPART_MEDIA_MISMATCH Multipart nur bei gleichem Medientyp (DVD oder Blu-ray). MULTIPART_SERIES_NOT_ALLOWED Multipart ist nur f\u00fcr Film-Jobs erlaubt, nicht f\u00fcr Serien-Workflow. MULTIPART_METADATA_MISMATCH Ausgew\u00e4hlter bestehender Job passt nicht zu den Film-Metadaten. SERIES_DISC_ALREADY_EXISTS Serien-Disc-Nummer innerhalb einer Staffel bereits vorhanden.","text":""},{"location":"api/pipeline/#post-apipipelinejobsjobidraw-decision","title":"POST /api/pipeline/jobs/:jobId/raw-decision

Trifft Entscheidung bei vorhandenem RAW (continue oder restart je nach Dialogfluss).

Request:

{ \"decision\": \"continue\" }\n
","text":""},{"location":"api/pipeline/#post-apipipelinestartjobid","title":"POST /api/pipeline/start/:jobId

Startet vorbereiteten Job oder queued ihn (je nach Parallel-Limit).

M\u00f6gliche Responses:

{ \"result\": { \"started\": true, \"stage\": \"RIPPING\" } }\n
{ \"result\": { \"queued\": true, \"started\": false, \"queuePosition\": 2, \"action\": \"START_PREPARED\" } }\n
","text":""},{"location":"api/pipeline/#post-apipipelineconfirm-encodejobid","title":"POST /api/pipeline/confirm-encode/:jobId

Best\u00e4tigt Review-Auswahl (Tracks, Pre/Post-Skripte/Ketten, User-Preset).

Request (typisch):

{\n  \"selectedEncodeTitleId\": 1,\n  \"selectedTrackSelection\": {\n    \"1\": {\n      \"audioTrackIds\": [1, 2],\n      \"subtitleTrackIds\": [3]\n    }\n  },\n  \"selectedPreEncodeScriptIds\": [1],\n  \"selectedPostEncodeScriptIds\": [2, 7],\n  \"selectedPreEncodeChainIds\": [3],\n  \"selectedPostEncodeChainIds\": [4],\n  \"selectedUserPresetId\": 5,\n  \"skipPipelineStateUpdate\": false\n}\n

Response:

{ \"job\": { \"id\": 42, \"encode_review_confirmed\": 1 } }\n
","text":""},{"location":"api/pipeline/#post-apipipelinecancel","title":"POST /api/pipeline/cancel

Bricht laufenden Job ab oder entfernt Queue-Eintrag.

Request (optional):

{ \"jobId\": 42 }\n

M\u00f6gliche Responses:

{ \"result\": { \"cancelled\": true, \"queuedOnly\": true, \"jobId\": 42 } }\n
{ \"result\": { \"cancelled\": true, \"queuedOnly\": false, \"jobId\": 42 } }\n
{ \"result\": { \"cancelled\": true, \"queuedOnly\": false, \"pending\": true, \"jobId\": 42 } }\n
","text":""},{"location":"api/pipeline/#post-apipipelineretryjobid","title":"POST /api/pipeline/retry/:jobId

Retry f\u00fcr ERROR/CANCELLED-Jobs (oder Queue-Einreihung).

","text":""},{"location":"api/pipeline/#post-apipipelinereencodejobid","title":"POST /api/pipeline/reencode/:jobId

Startet Re-Encode aus bestehendem RAW.

","text":""},{"location":"api/pipeline/#post-apipipelinerestart-reviewjobid","title":"POST /api/pipeline/restart-review/:jobId

Berechnet Review aus RAW neu.

","text":""},{"location":"api/pipeline/#post-apipipelinerestart-encodejobid","title":"POST /api/pipeline/restart-encode/:jobId

Startet Encoding mit letzter best\u00e4tigter Review neu.

","text":""},{"location":"api/pipeline/#post-apipipelinerestart-cd-reviewjobid","title":"POST /api/pipeline/restart-cd-review/:jobId

Berechnet CD-Review aus vorhandenem RAW neu.

","text":""},{"location":"api/pipeline/#post-apipipelineresume-readyjobid","title":"POST /api/pipeline/resume-ready/:jobId

L\u00e4dt READY_TO_ENCODE-Job nach Neustart wieder in aktive Session.

","text":""},{"location":"api/pipeline/#get-apipipelineoutput-foldersjobid","title":"GET /api/pipeline/output-folders/:jobId

Liefert bekannte Output-Ordner entlang der Job-Lineage.

","text":""},{"location":"api/pipeline/#post-apipipelinedelete-output-foldersjobid","title":"POST /api/pipeline/delete-output-folders/:jobId

L\u00f6scht ausgew\u00e4hlte Output-Ordner.

Request:

{ \"folderPaths\": [\"/mnt/movies/Inception (2010)\"] }\n

Alle Endpunkte liefern { result: ... } bzw. { job: ... }.

","text":""},{"location":"api/pipeline/#queue-endpunkte","title":"Queue-Endpunkte","text":""},{"location":"api/pipeline/#get-apipipelinequeue","title":"GET /api/pipeline/queue","text":"

Liefert Queue-Snapshot.

{\n  \"queue\": {\n    \"maxParallelJobs\": 1,\n    \"runningCount\": 1,\n    \"queuedCount\": 3,\n    \"runningJobs\": [\n      {\n        \"jobId\": 41,\n        \"title\": \"Inception\",\n        \"status\": \"ENCODING\",\n        \"lastState\": \"ENCODING\"\n      }\n    ],\n    \"queuedJobs\": [\n      {\n        \"entryId\": 11,\n        \"position\": 1,\n        \"type\": \"job\",\n        \"jobId\": 42,\n        \"action\": \"START_PREPARED\",\n        \"actionLabel\": \"Start\",\n        \"title\": \"Matrix\",\n        \"status\": \"READY_TO_ENCODE\",\n        \"lastState\": \"READY_TO_ENCODE\",\n        \"hasScripts\": true,\n        \"hasChains\": false,\n        \"enqueuedAt\": \"2026-03-10T09:00:00.000Z\"\n      },\n      {\n        \"entryId\": 12,\n        \"position\": 2,\n        \"type\": \"wait\",\n        \"waitSeconds\": 30,\n        \"title\": \"Warten 30s\",\n        \"status\": \"QUEUED\",\n        \"enqueuedAt\": \"2026-03-10T09:01:00.000Z\"\n      }\n    ],\n    \"updatedAt\": \"2026-03-10T09:01:02.000Z\"\n  }\n}\n
"},{"location":"api/pipeline/#post-apipipelinequeuereorder","title":"POST /api/pipeline/queue/reorder","text":"

Sortiert Queue-Eintr\u00e4ge neu.

Request:

{\n  \"orderedEntryIds\": [12, 11]\n}\n

Legacy fallback wird akzeptiert:

{\n  \"orderedJobIds\": [42, 43]\n}\n
"},{"location":"api/pipeline/#post-apipipelinequeueentry","title":"POST /api/pipeline/queue/entry","text":"

F\u00fcgt Nicht-Job-Queue-Eintrag hinzu (script, chain, wait).

Request-Beispiele:

{ \"type\": \"script\", \"scriptId\": 3 }\n
{ \"type\": \"chain\", \"chainId\": 2, \"insertAfterEntryId\": 11 }\n
{ \"type\": \"wait\", \"waitSeconds\": 45 }\n

Response:

{\n  \"result\": { \"entryId\": 12, \"type\": \"wait\", \"position\": 2 },\n  \"queue\": { \"...\": \"...\" }\n}\n
"},{"location":"api/pipeline/#delete-apipipelinequeueentryentryid","title":"DELETE /api/pipeline/queue/entry/:entryId","text":"

Entfernt Queue-Eintrag.

Response:

{ \"queue\": { \"...\": \"...\" } }\n
"},{"location":"api/pipeline/#pipeline-zustande","title":"Pipeline-Zust\u00e4nde State Bedeutung IDLE Wartet auf Medium DISC_DETECTED Medium erkannt ANALYZING MakeMKV-Analyse l\u00e4uft METADATA_SELECTION Metadaten-Auswahl WAITING_FOR_USER_DECISION Nutzerentscheidung erforderlich (Playlist-Auswahl oder RAW-Entscheidung) READY_TO_START \u00dcbergang vor Start RIPPING MakeMKV-Rip l\u00e4uft MEDIAINFO_CHECK Titel-/Track-Auswertung READY_TO_ENCODE Review bereit ENCODING HandBrake-Encoding l\u00e4uft CD_METADATA_SELECTION CD-Metadatenauswahl aktiv CD_READY_TO_RIP CD-Job ist startbereit CD_ANALYZING CD-Struktur/Tracks werden vorbereitet CD_RIPPING CD-Ripping l\u00e4uft CD_ENCODING CD-Encode l\u00e4uft FINISHED Abgeschlossen DONE Abgeschlossen (v. a. Audiobook/Converter/CD-Varianten) CANCELLED Abgebrochen ERROR Fehler","text":""},{"location":"api/runtime-activities/","title":"Runtime Activities API","text":"

Ripster verfolgt alle laufenden und k\u00fcrzlich abgeschlossenen Aktivit\u00e4ten (Skripte, Skript-Ketten, Cron-Jobs, interne Tasks) in Echtzeit \u00fcber den RuntimeActivityService.

"},{"location":"api/runtime-activities/#ubersicht","title":"\u00dcbersicht","text":"

Aktivit\u00e4ten entstehen, wenn Ripster intern Aktionen ausf\u00fchrt \u2013 z. B. beim Start eines Cron-Jobs, beim Ausf\u00fchren einer Skript-Kette oder beim Durchlaufen von Pipeline-Schritten. Sie sind nicht persistent (kein DB-Speicher) und werden nur im Arbeitsspeicher gehalten.

\u00c4nderungen werden \u00fcber WebSocket (RUNTIME_ACTIVITY_CHANGED) in Echtzeit gesendet.

"},{"location":"api/runtime-activities/#aktivitats-objekt","title":"Aktivit\u00e4ts-Objekt","text":"
{\n  \"id\": 7,\n  \"type\": \"chain\",\n  \"name\": \"Post-Encode Aufr\u00e4umen\",\n  \"status\": \"running\",\n  \"source\": \"cron\",\n  \"message\": \"Schritt 2 von 3\",\n  \"currentStep\": \"cleanup.sh\",\n  \"currentStepType\": \"script\",\n  \"currentScriptName\": \"cleanup.sh\",\n  \"stepIndex\": 2,\n  \"stepTotal\": 3,\n  \"parentActivityId\": null,\n  \"jobId\": 42,\n  \"cronJobId\": 3,\n  \"chainId\": 5,\n  \"scriptId\": null,\n  \"canCancel\": true,\n  \"canNextStep\": false,\n  \"outcome\": \"running\",\n  \"errorMessage\": null,\n  \"output\": null,\n  \"stdout\": null,\n  \"stderr\": null,\n  \"stdoutTruncated\": false,\n  \"stderrTruncated\": false,\n  \"startedAt\": \"2026-03-10T10:00:00.000Z\",\n  \"finishedAt\": null,\n  \"durationMs\": null,\n  \"exitCode\": null,\n  \"success\": null\n}\n
"},{"location":"api/runtime-activities/#felder","title":"Felder","text":"Feld Typ Beschreibung id number Eindeutige ID (Laufz\u00e4hler, nicht persistent) type string Art der Aktivit\u00e4t: script | chain | cron | task name string \\| null Anzeigename der Aktivit\u00e4t status string Aktueller Status: running | success | error source string \\| null Ausl\u00f6ser (z. B. cron, pipeline, manual) message string \\| null Kurztext zum aktuellen Zustand currentStep string \\| null Name des aktuell ausgef\u00fchrten Schritts currentStepType string \\| null Typ des Schritts (z. B. script, wait) currentScriptName string \\| null Name des Skripts im aktuellen Schritt stepIndex number \\| null Aktueller Schritt (1-basiert) stepTotal number \\| null Gesamtanzahl Schritte parentActivityId number \\| null ID der \u00fcbergeordneten Aktivit\u00e4t jobId number \\| null Verkn\u00fcpfte Job-ID cronJobId number \\| null Verkn\u00fcpfte Cron-Job-ID chainId number \\| null Verkn\u00fcpfte Skript-Ketten-ID scriptId number \\| null Verkn\u00fcpfte Skript-ID canCancel boolean Abbrechen \u00fcber API m\u00f6glich canNextStep boolean N\u00e4chster Schritt \u00fcber API ausl\u00f6sbar outcome string \\| null Abschluss-Ergebnis: success | error | cancelled | skipped | running errorMessage string \\| null Fehlermeldung (max. 2.000 Zeichen) output string \\| null Allgemeine Ausgabe (max. 12.000 Zeichen) stdout string \\| null Standardausgabe des Prozesses (max. 12.000 Zeichen) stderr string \\| null Fehlerausgabe des Prozesses (max. 12.000 Zeichen) stdoutTruncated boolean true, wenn stdout gek\u00fcrzt wurde stderrTruncated boolean true, wenn stderr gek\u00fcrzt wurde startedAt string ISO-8601-Zeitstempel des Starts finishedAt string \\| null ISO-8601-Zeitstempel des Endes durationMs number \\| null Laufzeit in Millisekunden exitCode number \\| null Exit-Code des Prozesses success boolean \\| null Erfolgsstatus (null bei laufender Aktivit\u00e4t)"},{"location":"api/runtime-activities/#snapshot-objekt","title":"Snapshot-Objekt","text":"

Alle Aktivit\u00e4ts-Endpunkte geben einen Snapshot zur\u00fcck:

{\n  \"active\": [ /* laufende Aktivit\u00e4ten, nach startedAt absteigend */ ],\n  \"recent\": [ /* abgeschlossene Aktivit\u00e4ten, nach finishedAt absteigend, max. 120 */ ],\n  \"updatedAt\": \"2026-03-10T10:05:00.000Z\"\n}\n
"},{"location":"api/runtime-activities/#endpunkte","title":"Endpunkte","text":""},{"location":"api/runtime-activities/#get-apiruntimeactivities","title":"GET /api/runtime/activities","text":"

Aktuellen Aktivit\u00e4ts-Snapshot abrufen.

Antwort:

{\n  \"active\": [],\n  \"recent\": [\n    {\n      \"id\": 5,\n      \"type\": \"script\",\n      \"name\": \"notify.sh\",\n      \"status\": \"success\",\n      \"outcome\": \"success\",\n      \"startedAt\": \"2026-03-10T09:58:00.000Z\",\n      \"finishedAt\": \"2026-03-10T09:58:02.000Z\",\n      \"durationMs\": 2100,\n      \"exitCode\": 0,\n      \"success\": true,\n      \"canCancel\": false,\n      \"canNextStep\": false\n    }\n  ],\n  \"updatedAt\": \"2026-03-10T10:05:00.000Z\"\n}\n
"},{"location":"api/runtime-activities/#post-apiruntimeactivitiesidcancel","title":"POST /api/runtime/activities/:id/cancel","text":"

Aktive Aktivit\u00e4t abbrechen (nur wenn canCancel: true).

Parameter:

Name In Typ Beschreibung id path number Aktivit\u00e4ts-ID reason body string Optionaler Abbruchgrund

Request Body:

{ \"reason\": \"Manueller Abbruch durch Benutzer\" }\n

Antwort (Erfolg):

{\n  \"ok\": true,\n  \"action\": null,\n  \"snapshot\": { \"active\": [], \"recent\": [], \"updatedAt\": \"...\" }\n}\n

Fehlercodes:

HTTP Bedeutung 404 Aktivit\u00e4t nicht gefunden oder bereits abgeschlossen 409 Abbrechen wird von dieser Aktivit\u00e4t nicht unterst\u00fctzt"},{"location":"api/runtime-activities/#post-apiruntimeactivitiesidnext-step","title":"POST /api/runtime/activities/:id/next-step","text":"

N\u00e4chsten Schritt einer Aktivit\u00e4t ausl\u00f6sen (nur wenn canNextStep: true).

Parameter:

Name In Typ Beschreibung id path number Aktivit\u00e4ts-ID

Antwort (Erfolg):

{\n  \"ok\": true,\n  \"action\": null,\n  \"snapshot\": { \"active\": [], \"recent\": [], \"updatedAt\": \"...\" }\n}\n

Fehlercodes:

HTTP Bedeutung 404 Aktivit\u00e4t nicht gefunden 409 N\u00e4chster Schritt wird von dieser Aktivit\u00e4t nicht unterst\u00fctzt"},{"location":"api/runtime-activities/#post-apiruntimeactivitiesclear-recent","title":"POST /api/runtime/activities/clear-recent","text":"

Alle abgeschlossenen Aktivit\u00e4ten aus recent l\u00f6schen.

Antwort:

{\n  \"ok\": true,\n  \"removed\": 14,\n  \"snapshot\": { \"active\": [], \"recent\": [], \"updatedAt\": \"...\" }\n}\n
"},{"location":"api/runtime-activities/#grenzwerte","title":"Grenzwerte","text":"Wert Limit Maximale recent-Eintr\u00e4ge 120 Maximale L\u00e4nge stdout / stderr / output 12.000 Zeichen Maximale L\u00e4nge errorMessage / message 2.000 Zeichen Maximale L\u00e4nge outcome 40 Zeichen

Gek\u00fcrzte Ausgaben erhalten den Suffix ...[gek\u00fcrzt] (bei Inline-Text) bzw. \\n...[gek\u00fcrzt] (bei mehrzeiligem Output).

"},{"location":"api/runtime-activities/#echtzeit-updates","title":"Echtzeit-Updates","text":"

\u00c4nderungen werden automatisch als RUNTIME_ACTIVITY_CHANGED WebSocket-Event gesendet. Die Frontend-Komponente braucht GET /api/runtime/activities nur beim initialen Laden aufzurufen.

"},{"location":"api/settings/","title":"Settings API","text":"

Endpunkte f\u00fcr Einstellungen, Skripte, Skript-Ketten und User-Presets.

"},{"location":"api/settings/#get-apisettings","title":"GET /api/settings","text":"

Liefert alle Einstellungen kategorisiert.

Response (Struktur):

{\n  \"categories\": [\n    {\n      \"category\": \"Pfade\",\n      \"settings\": [\n        {\n          \"key\": \"raw_dir\",\n          \"label\": \"Raw Ausgabeordner\",\n          \"type\": \"path\",\n          \"required\": true,\n          \"description\": \"...\",\n          \"defaultValue\": \"data/output/raw\",\n          \"options\": [],\n          \"validation\": { \"minLength\": 1 },\n          \"value\": \"data/output/raw\",\n          \"orderIndex\": 100\n        }\n      ]\n    }\n  ]\n}\n
"},{"location":"api/settings/#put-apisettingskey","title":"PUT /api/settings/:key","text":"

Aktualisiert eine einzelne Einstellung.

Request:

{ \"value\": \"/mnt/storage/raw\" }\n

Response:

{\n  \"setting\": {\n    \"key\": \"raw_dir\",\n    \"value\": \"/mnt/storage/raw\"\n  },\n  \"reviewRefresh\": {\n    \"triggered\": false,\n    \"reason\": \"not_ready\"\n  }\n}\n

reviewRefresh ist null oder ein Objekt mit Status der optionalen Review-Neuberechnung.

"},{"location":"api/settings/#put-apisettings","title":"PUT /api/settings","text":"

Aktualisiert mehrere Einstellungen atomar.

Request:

{\n  \"settings\": {\n    \"raw_dir\": \"/mnt/storage/raw\",\n    \"movie_dir\": \"/mnt/storage/movies\",\n    \"handbrake_preset_bluray\": \"H.264 MKV 1080p30\"\n  }\n}\n

Response:

{\n  \"changes\": [\n    { \"key\": \"raw_dir\", \"value\": \"/mnt/storage/raw\" },\n    { \"key\": \"movie_dir\", \"value\": \"/mnt/storage/movies\" }\n  ],\n  \"reviewRefresh\": {\n    \"triggered\": true,\n    \"jobId\": 42,\n    \"relevantKeys\": [\"handbrake_preset_bluray\"]\n  }\n}\n

Bei Validierungsfehlern kommt 400 mit error.details[].

"},{"location":"api/settings/#get-apisettingshandbrake-presets","title":"GET /api/settings/handbrake-presets","text":"

Liest Preset-Liste via HandBrakeCLI -z (mit Fallback auf konfigurierte Presets).

Response (Beispiel):

{\n  \"source\": \"handbrake-cli\",\n  \"message\": null,\n  \"options\": [\n    { \"label\": \"General/\", \"value\": \"__group__general\", \"disabled\": true, \"category\": \"General\" },\n    { \"label\": \"   Fast 1080p30\", \"value\": \"Fast 1080p30\", \"category\": \"General\" }\n  ]\n}\n
"},{"location":"api/settings/#post-apisettingspushovertest","title":"POST /api/settings/pushover/test","text":"

Sendet Testnachricht \u00fcber aktuelle PushOver-Settings.

Request (optional):

{\n  \"title\": \"Test\",\n  \"message\": \"Ripster Test\"\n}\n

Response:

{\n  \"result\": {\n    \"sent\": true,\n    \"eventKey\": \"test\",\n    \"requestId\": \"...\"\n  }\n}\n

Wenn PushOver deaktiviert ist oder Credentials fehlen, kommt i. d. R. ebenfalls 200 mit sent: false + reason.

"},{"location":"api/settings/#skripte","title":"Skripte","text":"

Basis: /api/settings/scripts

"},{"location":"api/settings/#get-apisettingsscripts","title":"GET /api/settings/scripts","text":"
{ \"scripts\": [ { \"id\": 1, \"name\": \"...\", \"scriptBody\": \"...\", \"orderIndex\": 1, \"createdAt\": \"...\", \"updatedAt\": \"...\" } ] }\n
"},{"location":"api/settings/#post-apisettingsscripts","title":"POST /api/settings/scripts","text":"
{ \"name\": \"Move\", \"scriptBody\": \"mv \\\"$RIPSTER_OUTPUT_PATH\\\" /mnt/movies/\" }\n

Response: 201 mit { \"script\": { ... } }

"},{"location":"api/settings/#put-apisettingsscriptsid","title":"PUT /api/settings/scripts/:id","text":"

Body wie POST, Response { \"script\": { ... } }.

"},{"location":"api/settings/#delete-apisettingsscriptsid","title":"DELETE /api/settings/scripts/:id","text":"

Response { \"removed\": { ... } }.

"},{"location":"api/settings/#post-apisettingsscriptsreorder","title":"POST /api/settings/scripts/reorder","text":"
{ \"orderedScriptIds\": [3, 1, 2] }\n

Response { \"scripts\": [ ... ] }.

"},{"location":"api/settings/#post-apisettingsscriptsidtest","title":"POST /api/settings/scripts/:id/test","text":"

F\u00fchrt Skript als Testlauf aus.

{\n  \"result\": {\n    \"scriptId\": 1,\n    \"scriptName\": \"Move\",\n    \"success\": true,\n    \"exitCode\": 0,\n    \"signal\": null,\n    \"timedOut\": false,\n    \"durationMs\": 120,\n    \"stdout\": \"...\",\n    \"stderr\": \"...\",\n    \"stdoutTruncated\": false,\n    \"stderrTruncated\": false\n  }\n}\n
"},{"location":"api/settings/#umgebungsvariablen-fur-skripte","title":"Umgebungsvariablen f\u00fcr Skripte","text":"

Diese Variablen werden beim Ausf\u00fchren gesetzt:

"},{"location":"api/settings/#skript-ketten","title":"Skript-Ketten","text":"

Basis: /api/settings/script-chains

Eine Kette hat Schritte vom Typ:

"},{"location":"api/settings/#get-apisettingsscript-chains","title":"GET /api/settings/script-chains","text":"

Response { \"chains\": [ ... ] } (inkl. steps[]).

"},{"location":"api/settings/#get-apisettingsscript-chainsid","title":"GET /api/settings/script-chains/:id","text":"

Response { \"chain\": { ... } }.

"},{"location":"api/settings/#post-apisettingsscript-chains","title":"POST /api/settings/script-chains","text":"
{\n  \"name\": \"After Encode\",\n  \"steps\": [\n    { \"stepType\": \"script\", \"scriptId\": 1 },\n    { \"stepType\": \"wait\", \"waitSeconds\": 15 },\n    { \"stepType\": \"script\", \"scriptId\": 2 }\n  ]\n}\n

Response: 201 mit { \"chain\": { ... } }

"},{"location":"api/settings/#put-apisettingsscript-chainsid","title":"PUT /api/settings/script-chains/:id","text":"

Body wie POST, Response { \"chain\": { ... } }.

"},{"location":"api/settings/#delete-apisettingsscript-chainsid","title":"DELETE /api/settings/script-chains/:id","text":"

Response { \"removed\": { ... } }.

"},{"location":"api/settings/#post-apisettingsscript-chainsreorder","title":"POST /api/settings/script-chains/reorder","text":"
{ \"orderedChainIds\": [2, 1, 3] }\n

Response { \"chains\": [ ... ] }.

"},{"location":"api/settings/#post-apisettingsscript-chainsidtest","title":"POST /api/settings/script-chains/:id/test","text":"

Response:

{\n  \"result\": {\n    \"chainId\": 2,\n    \"chainName\": \"After Encode\",\n    \"steps\": 3,\n    \"succeeded\": 3,\n    \"failed\": 0,\n    \"aborted\": false,\n    \"results\": []\n  }\n}\n
"},{"location":"api/settings/#user-presets","title":"User-Presets","text":"

Basis: /api/settings/user-presets

"},{"location":"api/settings/#get-apisettingsuser-presets","title":"GET /api/settings/user-presets","text":"

Optionaler Query-Parameter: media_type=bluray|dvd|other|all

{\n  \"presets\": [\n    {\n      \"id\": 1,\n      \"name\": \"Blu-ray HQ\",\n      \"mediaType\": \"bluray\",\n      \"handbrakePreset\": \"H.264 MKV 1080p30\",\n      \"extraArgs\": \"--encoder-preset slow\",\n      \"description\": \"...\",\n      \"createdAt\": \"...\",\n      \"updatedAt\": \"...\"\n    }\n  ]\n}\n
"},{"location":"api/settings/#post-apisettingsuser-presets","title":"POST /api/settings/user-presets","text":"
{\n  \"name\": \"Blu-ray HQ\",\n  \"mediaType\": \"bluray\",\n  \"handbrakePreset\": \"H.264 MKV 1080p30\",\n  \"extraArgs\": \"--encoder-preset slow\",\n  \"description\": \"optional\"\n}\n

Response: 201 mit { \"preset\": { ... } }

"},{"location":"api/settings/#put-apisettingsuser-presetsid","title":"PUT /api/settings/user-presets/:id","text":"

Body mit beliebigen Feldern aus POST, Response { \"preset\": { ... } }.

"},{"location":"api/settings/#delete-apisettingsuser-presetsid","title":"DELETE /api/settings/user-presets/:id","text":"

Response { \"removed\": { ... } }.

"},{"location":"api/settings/#weitere-endpunkte","title":"Weitere Endpunkte","text":""},{"location":"api/settings/#get-apisettingseffective-paths","title":"GET /api/settings/effective-paths","text":"

Liefert aufgel\u00f6ste, effektiv genutzte Pfade aus den Settings (f\u00fcr UI- und Diagnosezwecke).

"},{"location":"api/settings/#post-apisettingscoverartrecover","title":"POST /api/settings/coverart/recover","text":"

Startet eine manuelle Coverart-Recovery.

Response (Beispiel):

{\n  \"result\": { \"started\": true },\n  \"scheduler\": { \"enabled\": true }\n}\n
"},{"location":"api/settings/#activation-bytes-aax","title":"Activation Bytes (AAX)","text":""},{"location":"api/settings/#get-apisettingsactivation-bytes","title":"GET /api/settings/activation-bytes","text":"

Liest gecachte AAX-Activation-Bytes.

"},{"location":"api/settings/#post-apisettingsactivation-bytes","title":"POST /api/settings/activation-bytes","text":"

Speichert Activation-Bytes.

Request:

{\n  \"checksum\": \"abc123...\",\n  \"activationBytes\": \"1a2b3c4d\"\n}\n
"},{"location":"api/settings/#laufwerke","title":"Laufwerke","text":""},{"location":"api/settings/#get-apisettingsdrives","title":"GET /api/settings/drives","text":"

Liefert erkannte optische Laufwerke (/dev/...) inkl. MakeMKV-Disc-Index.

"},{"location":"api/settings/#post-apisettingsdrivesforce-unlock","title":"POST /api/settings/drives/force-unlock","text":"

Erzwingt Entsperren aktiver Laufwerkslocks.

Hinweis: Expertenmodus (ui_expert_mode) ist erforderlich, sonst 403.

Request (ein Laufwerk):

{ \"devicePath\": \"/dev/sr0\" }\n

Request (alle):

{ \"all\": true }\n
"},{"location":"api/settings/#ui-preferences","title":"UI Preferences","text":""},{"location":"api/settings/#get-apisettingsprefskey","title":"GET /api/settings/prefs/:key","text":"

Liest einen persistierten UI-Preference-Wert.

"},{"location":"api/settings/#put-apisettingsprefskey","title":"PUT /api/settings/prefs/:key","text":"

Speichert einen persistierten UI-Preference-Wert.

Request:

{ \"value\": \"{\\\"columns\\\":[\\\"id\\\",\\\"status\\\"]}\" }\n
"},{"location":"api/websocket/","title":"WebSocket Events","text":"

Ripster sendet Echtzeit-Updates \u00fcber /ws.

"},{"location":"api/websocket/#verbindung","title":"Verbindung","text":"
const ws = new WebSocket('ws://localhost:3001/ws');\n\nws.onmessage = (event) => {\n  const msg = JSON.parse(event.data);\n  console.log(msg.type, msg.payload);\n};\n
"},{"location":"api/websocket/#nachrichtenformat","title":"Nachrichtenformat","text":"

Die meisten Broadcasts haben dieses Schema:

{\n  \"type\": \"EVENT_TYPE\",\n  \"payload\": {},\n  \"timestamp\": \"2026-03-10T09:00:00.000Z\"\n}\n

Ausnahme: WS_CONNECTED beim Verbindungsaufbau enth\u00e4lt kein timestamp.

"},{"location":"api/websocket/#event-typen","title":"Event-Typen","text":""},{"location":"api/websocket/#ws_connected","title":"WS_CONNECTED","text":"

Sofort nach erfolgreicher Verbindung.

{\n  \"type\": \"WS_CONNECTED\",\n  \"payload\": {\n    \"connectedAt\": \"2026-03-10T09:00:00.000Z\"\n  }\n}\n
"},{"location":"api/websocket/#pipeline_state_changed","title":"PIPELINE_STATE_CHANGED","text":"

Neuer Pipeline-Snapshot.

{\n  \"type\": \"PIPELINE_STATE_CHANGED\",\n  \"payload\": {\n    \"state\": \"ENCODING\",\n    \"activeJobId\": 42,\n    \"progress\": 62.5,\n    \"eta\": \"00:12:34\",\n    \"statusText\": \"ENCODING 62.50%\",\n    \"context\": {},\n    \"jobProgress\": {\n      \"42\": {\n        \"state\": \"ENCODING\",\n        \"progress\": 62.5,\n        \"eta\": \"00:12:34\",\n        \"statusText\": \"ENCODING 62.50%\"\n      }\n    },\n    \"queue\": {\n      \"maxParallelJobs\": 1,\n      \"runningCount\": 1,\n      \"queuedCount\": 2,\n      \"runningJobs\": [],\n      \"queuedJobs\": []\n    }\n  }\n}\n
"},{"location":"api/websocket/#pipeline_progress","title":"PIPELINE_PROGRESS","text":"

Laufende Fortschrittsupdates.

{\n  \"type\": \"PIPELINE_PROGRESS\",\n  \"payload\": {\n    \"state\": \"ENCODING\",\n    \"activeJobId\": 42,\n    \"progress\": 62.5,\n    \"eta\": \"00:12:34\",\n    \"statusText\": \"ENCODING 62.50%\"\n  }\n}\n
"},{"location":"api/websocket/#pipeline_queue_changed","title":"PIPELINE_QUEUE_CHANGED","text":"

Queue-Snapshot aktualisiert.

"},{"location":"api/websocket/#disc_detected-disc_removed","title":"DISC_DETECTED / DISC_REMOVED","text":"

Disc-Insertion/-Removal.

{\n  \"type\": \"DISC_DETECTED\",\n  \"payload\": {\n    \"device\": {\n      \"path\": \"/dev/sr0\",\n      \"discLabel\": \"INCEPTION\",\n      \"model\": \"ASUS BW-16D1HT\",\n      \"fstype\": \"udf\",\n      \"mountpoint\": null,\n      \"mediaProfile\": \"bluray\"\n    }\n  }\n}\n

mediaProfile: bluray | dvd | other | null

"},{"location":"api/websocket/#hardware_monitor_update","title":"HARDWARE_MONITOR_UPDATE","text":"

Snapshot aus Hardware-Monitoring.

{\n  \"type\": \"HARDWARE_MONITOR_UPDATE\",\n  \"payload\": {\n    \"enabled\": true,\n    \"intervalMs\": 5000,\n    \"updatedAt\": \"2026-03-10T09:00:00.000Z\",\n    \"sample\": {\n      \"cpu\": {},\n      \"memory\": {},\n      \"gpu\": {},\n      \"storage\": {}\n    },\n    \"error\": null\n  }\n}\n
"},{"location":"api/websocket/#pipeline_error","title":"PIPELINE_ERROR","text":"

Fehler bei Disc-Event-Verarbeitung in Pipeline.

"},{"location":"api/websocket/#disk_detection_error","title":"DISK_DETECTION_ERROR","text":"

Fehler in Laufwerkserkennung.

"},{"location":"api/websocket/#settings_updated","title":"SETTINGS_UPDATED","text":"

Einzelnes Setting wurde gespeichert.

"},{"location":"api/websocket/#settings_bulk_updated","title":"SETTINGS_BULK_UPDATED","text":"

Bulk-Settings gespeichert.

{\n  \"type\": \"SETTINGS_BULK_UPDATED\",\n  \"payload\": {\n    \"count\": 3,\n    \"keys\": [\"raw_dir\", \"movie_dir\", \"handbrake_preset_bluray\"]\n  }\n}\n
"},{"location":"api/websocket/#settings_scripts_updated","title":"SETTINGS_SCRIPTS_UPDATED","text":"

Skript ge\u00e4ndert (created|updated|deleted|reordered).

"},{"location":"api/websocket/#settings_script_chains_updated","title":"SETTINGS_SCRIPT_CHAINS_UPDATED","text":"

Skript-Kette ge\u00e4ndert (created|updated|deleted|reordered).

"},{"location":"api/websocket/#user_presets_updated","title":"USER_PRESETS_UPDATED","text":"

User-Preset ge\u00e4ndert (created|updated|deleted).

"},{"location":"api/websocket/#cron_jobs_updated","title":"CRON_JOBS_UPDATED","text":"

Cron-Config ge\u00e4ndert (created|updated|deleted).

"},{"location":"api/websocket/#cron_job_updated","title":"CRON_JOB_UPDATED","text":"

Laufzeitstatus eines Cron-Jobs ge\u00e4ndert.

{\n  \"type\": \"CRON_JOB_UPDATED\",\n  \"payload\": {\n    \"id\": 1,\n    \"lastRunStatus\": \"running\",\n    \"lastRunAt\": \"2026-03-10T10:00:00.000Z\",\n    \"nextRunAt\": null\n  }\n}\n
"},{"location":"api/websocket/#runtime_activity_changed","title":"RUNTIME_ACTIVITY_CHANGED","text":"

Vollst\u00e4ndiger Snapshot aller laufenden und k\u00fcrzlich abgeschlossenen Aktivit\u00e4ten.

Wird ausgel\u00f6st, wenn eine Aktivit\u00e4t gestartet, aktualisiert oder abgeschlossen wird sowie nach clear-recent.

{\n  \"type\": \"RUNTIME_ACTIVITY_CHANGED\",\n  \"payload\": {\n    \"active\": [\n      {\n        \"id\": 7,\n        \"type\": \"chain\",\n        \"name\": \"Post-Encode Aufr\u00e4umen\",\n        \"status\": \"running\",\n        \"source\": \"cron\",\n        \"message\": \"Schritt 2 von 3\",\n        \"currentStep\": \"cleanup.sh\",\n        \"currentStepType\": \"script\",\n        \"stepIndex\": 2,\n        \"stepTotal\": 3,\n        \"canCancel\": true,\n        \"canNextStep\": false,\n        \"outcome\": \"running\",\n        \"startedAt\": \"2026-03-10T10:00:00.000Z\",\n        \"finishedAt\": null,\n        \"durationMs\": null\n      }\n    ],\n    \"recent\": [],\n    \"updatedAt\": \"2026-03-10T10:00:05.000Z\"\n  }\n}\n

Vollst\u00e4ndige Feldbeschreibung: Runtime Activities API.

"},{"location":"api/websocket/#converter_scan_update","title":"CONVERTER_SCAN_UPDATE","text":"

Wird nach einem Scan des Converter-Eingangsordners gesendet (manuell oder per Polling).

{\n  \"type\": \"CONVERTER_SCAN_UPDATE\",\n  \"payload\": {\n    \"entryCount\": 12\n  }\n}\n
"},{"location":"api/websocket/#downloads_updated","title":"DOWNLOADS_UPDATED","text":"

Wird bei jeder Status\u00e4nderung in der Download-Queue gesendet.

{\n  \"type\": \"DOWNLOADS_UPDATED\",\n  \"payload\": {\n    \"reason\": \"ready\",\n    \"item\": {\n      \"id\": \"dl-1\",\n      \"jobId\": 42,\n      \"status\": \"ready\",\n      \"archiveName\": \"Job_42_movie.zip\",\n      \"createdAt\": \"2026-03-30T10:00:00.000Z\"\n    },\n    \"summary\": {\n      \"total\": 3,\n      \"pending\": 1,\n      \"processing\": 0,\n      \"ready\": 1,\n      \"failed\": 1\n    }\n  }\n}\n

M\u00f6gliche reason-Werte: queued, processing, ready, failed, deleted.

"},{"location":"api/websocket/#reconnect-verhalten","title":"Reconnect-Verhalten","text":"

useWebSocket verbindet bei Abbruch automatisch neu:

"},{"location":"appendix/","title":"Technischer Anhang","text":"

Dieser Bereich enth\u00e4lt die technische Referenz hinter dem Benutzerhandbuch.

"},{"location":"appendix/#inhalt","title":"Inhalt","text":""},{"location":"appendix/#wann-du-in-den-anhang-wechselst","title":"Wann du in den Anhang wechselst","text":""},{"location":"architecture/","title":"Anhang: Architektur","text":"

Ripster ist eine Client-Server-Anwendung mit REST + WebSocket und externen CLI-Tools.

"},{"location":"architecture/#systemuberblick","title":"System\u00fcberblick","text":"
graph TB\n    subgraph Browser[\"Browser (React)\"]\n        Ripper[Ripper]\n        Settings[Einstellungen]\n        History[Historie]\n    end\n\n    subgraph Backend[\"Node.js Backend\"]\n        API[REST API\\nExpress]\n        WS[WebSocket\\n/ws]\n        Pipeline[pipelineService]\n        Cron[cronService]\n        DB[(SQLite)]\n    end\n\n    subgraph Tools[\"Externe Tools\"]\n        MakeMKV[makemkvcon]\n        HandBrake[HandBrakeCLI]\n        MediaInfo[mediainfo]\n    end\n\n    Browser <-->|HTTP| API\n    Browser <-->|WebSocket| WS\n    Pipeline --> MakeMKV\n    Pipeline --> HandBrake\n    Pipeline --> MediaInfo\n    API --> DB\n    Pipeline --> DB\n    Cron --> DB
"},{"location":"architecture/#details","title":"Details","text":""},{"location":"architecture/backend/","title":"Backend-Services","text":"

Das Backend ist in Services aufgeteilt, die von Express-Routen orchestriert werden. Seit v0.12.0 erfolgt die Medienverarbeitung \u00fcber ein Plugin-System.

"},{"location":"architecture/backend/#plugin-system-srcplugins","title":"Plugin-System (src/plugins/)","text":"

Ab v0.12.0 ist die Pipeline modular aufgebaut. Jeder Medientyp wird von einem eigenen Plugin verwaltet.

"},{"location":"architecture/backend/#basisklassen","title":"Basisklassen","text":""},{"location":"architecture/backend/#plugin-lifecycle","title":"Plugin-Lifecycle","text":"

Jedes Plugin implementiert die folgenden Methoden:

Methode Beschreibung detect(discInfo) Medientyp-Erkennung analyze(devicePath, job, ctx) Analyse / Metadaten-Extraktion rip(job, ctx) Rohdaten-Extraktion review(job, ctx) Optionale Vorschau-Vorbereitung encode(job, ctx) Finales Encoding/Konvertierung finalize(job, ctx) Nachbearbeitung onCancel(job, ctx) Bereinigung bei Abbruch onRetry(job, ctx) Zustand-Reset vor Retry"},{"location":"architecture/backend/#implementierte-plugins","title":"Implementierte Plugins","text":""},{"location":"architecture/backend/#pipelineservicejs","title":"pipelineService.js","text":"

Zentrale Workflow-Orchestrierung.

Aufgaben:

Wichtige Methoden:

"},{"location":"architecture/backend/#diskdetectionservicejs","title":"diskDetectionService.js","text":"

Pollt Laufwerk(e) und emittiert:

Zusatz:

"},{"location":"architecture/backend/#settingsservicejs","title":"settingsService.js","text":"

Settings-Layer mit Validation/Serialisierung.

Features:

"},{"location":"architecture/backend/#historyservicejs","title":"historyService.js","text":"

Historie + Dateioperationen.

Features:

"},{"location":"architecture/backend/#audiobookservicejs","title":"audiobookService.js","text":"

Audiobook-Verarbeitung (AAX/M4B).

Features:

"},{"location":"architecture/backend/#activationbytesservicejs","title":"activationBytesService.js","text":"

Verwaltung von Audible-Activation-Bytes f\u00fcr AAX-DRM-Handling.

Features:

"},{"location":"architecture/backend/#converterscanservicejs","title":"converterScanService.js","text":"

Dateisystem-\u00dcberwachung des Converter-Eingangsordners.

Features:

"},{"location":"architecture/backend/#downloadservicejs","title":"downloadService.js","text":"

Download-Queue f\u00fcr Ausgabedateien aus der Historie.

Features:

"},{"location":"architecture/backend/#cronservicejs","title":"cronService.js","text":"

Integriertes Cron-System ohne externe Parser-Library.

Features:

"},{"location":"architecture/backend/#runtimeactivityservicejs","title":"runtimeActivityService.js","text":"

In-Memory-Tracking aller laufenden und k\u00fcrzlich abgeschlossenen Aktivit\u00e4ten (Skripte, Ketten, Cron-Jobs, Tasks).

Features:

Limits:

Vollst\u00e4ndige API-Dokumentation: Runtime Activities API

"},{"location":"architecture/backend/#weitere-services","title":"Weitere Services","text":""},{"location":"architecture/backend/#bootstrapping-srcindexjs","title":"Bootstrapping (src/index.js)","text":"

Beim Start:

  1. DB init/migrate
  2. Pipeline-Init (inkl. Plugin-Registry)
  3. Cron-Init
  4. Express-Routes + Error-Handler
  5. WebSocket-Server auf /ws
  6. Hardware-Monitoring-Init
  7. Disk-Detection-Start
  8. Converter-Scan-Service-Init (Polling falls aktiviert)
"},{"location":"architecture/database/","title":"Datenbank","text":"

Ripster verwendet SQLite (backend/data/ripster.db).

"},{"location":"architecture/database/#tabellen","title":"Tabellen","text":"
settings_schema\nsettings_values\njobs\njob_lineage_artifacts\njob_output_folders\npipeline_state\nscripts\nscript_chains\nscript_chain_steps\nuser_presets\ncron_jobs\ncron_run_logs\naax_activation_bytes\nuser_prefs\nconverter_scan_entries\n
"},{"location":"architecture/database/#jobs","title":"jobs","text":"

Speichert Pipeline-Lifecycle und Artefakte pro Job.

Zentrale Felder:

Typische job_kind-Werte:

Wichtige Indizes:

"},{"location":"architecture/database/#job_lineage_artifacts","title":"job_lineage_artifacts","text":"

Verkn\u00fcpft Jobs mit ihren Quell-Jobs (z. B. Re-Encode aus einem vorherigen Rip).

Felder:

"},{"location":"architecture/database/#job_output_folders","title":"job_output_folders","text":"

Verfolgt Ausgabepfade pro Job (mehrere Ausgaben m\u00f6glich, z. B. bei Kapitel-Splitting).

Felder:

"},{"location":"architecture/database/#pipeline_state","title":"pipeline_state","text":"

Singleton-Tabelle (id = 1) f\u00fcr aktiven Snapshot:

"},{"location":"architecture/database/#settings_schema-settings_values","title":"settings_schema + settings_values","text":""},{"location":"architecture/database/#scripts-script_chains-script_chain_steps","title":"scripts, script_chains, script_chain_steps","text":""},{"location":"architecture/database/#user_presets","title":"user_presets","text":"

Benannte HandBrake-Preset-Sets:

"},{"location":"architecture/database/#cron_jobs-cron_run_logs","title":"cron_jobs + cron_run_logs","text":""},{"location":"architecture/database/#aax_activation_bytes","title":"aax_activation_bytes","text":"

Cache f\u00fcr Audible-Activation-Bytes (AAX-DRM).

Felder:

"},{"location":"architecture/database/#user_prefs","title":"user_prefs","text":"

Benutzer-spezifische Einstellungen (Key-Value).

Felder:

"},{"location":"architecture/database/#converter_scan_entries","title":"converter_scan_entries","text":"

DB-seitige Erfassung gescannter Dateien im Converter-Eingangsordner.

Felder:

"},{"location":"architecture/database/#migrationrecovery","title":"Migration/Recovery","text":"

Beim Start werden Schema und Settings-Metadaten automatisch abgeglichen.

Bei korruptem SQLite-File:

  1. Datei wird nach backend/data/corrupt-backups/ verschoben
  2. neue DB wird initialisiert
  3. Schema wird neu aufgebaut
"},{"location":"architecture/database/#direkte-inspektion","title":"Direkte Inspektion","text":"
sqlite3 backend/data/ripster.db\n\n.mode table\nSELECT id, status, title, media_type, created_at FROM jobs ORDER BY created_at DESC;\nSELECT id, parent_job_id, job_kind, is_multipart_movie, disc_number FROM jobs ORDER BY created_at DESC;\nSELECT key, value FROM settings_values ORDER BY key;\nSELECT checksum, activation_bytes FROM aax_activation_bytes;\nSELECT rel_path, job_id FROM converter_scan_entries;\n
"},{"location":"architecture/frontend/","title":"Frontend-Komponenten","text":"

Frontend: React + PrimeReact + Vite.

"},{"location":"architecture/frontend/#hauptseiten","title":"Hauptseiten","text":""},{"location":"architecture/frontend/#ripperpagejsx","title":"RipperPage.jsx","text":"

Pipeline-Steuerung:

"},{"location":"architecture/frontend/#settingspagejsx","title":"SettingsPage.jsx","text":"

Konfiguration:

"},{"location":"architecture/frontend/#historypagejsx","title":"HistoryPage.jsx","text":"

Historie:

"},{"location":"architecture/frontend/#converterpagejsx","title":"ConverterPage.jsx","text":"

Datei-Converter:

"},{"location":"architecture/frontend/#audiobookspagejsx","title":"AudiobooksPage.jsx","text":"

Dedizierter AAX-/Audiobook-Flow:

"},{"location":"architecture/frontend/#downloadspagejsx","title":"DownloadsPage.jsx","text":"

Download-Queue:

"},{"location":"architecture/frontend/#databasepagejsx","title":"DatabasePage.jsx","text":"

Expert-Modus:

"},{"location":"architecture/frontend/#wichtige-komponenten","title":"Wichtige Komponenten","text":""},{"location":"architecture/frontend/#api-client-apiclientjs","title":"API-Client (api/client.js)","text":""},{"location":"architecture/frontend/#websocket-hooksusewebsocketjs","title":"WebSocket (hooks/useWebSocket.js)","text":"

In App.jsx werden u. a. verarbeitet:

"},{"location":"architecture/frontend/#buildrun","title":"Build/Run","text":"
# dev\nnpm run dev --prefix frontend\n\n# prod build\nnpm run build --prefix frontend\n
"},{"location":"architecture/overview/","title":"Architektur-\u00dcbersicht","text":""},{"location":"architecture/overview/#kernprinzipien","title":"Kernprinzipien","text":""},{"location":"architecture/overview/#event-getriebene-pipeline","title":"Event-getriebene Pipeline","text":"

pipelineService h\u00e4lt einen Snapshot der State-Machine und broadcastet \u00c4nderungen sofort via WebSocket.

State-\u00c4nderung -> PIPELINE_STATE_CHANGED/PIPELINE_PROGRESS -> Frontend-Update\n
"},{"location":"architecture/overview/#service-layer","title":"Service-Layer","text":"
Route -> Service -> DB/Tool-Execution\n

Routes enthalten kaum Business-Logik.

"},{"location":"architecture/overview/#schema-getriebene-settings","title":"Schema-getriebene Settings","text":"

Settings sind DB-schema-getrieben (settings_schema + settings_values), UI rendert dynamisch aus diesen Daten.

"},{"location":"architecture/overview/#echtzeit-kommunikation","title":"Echtzeit-Kommunikation","text":"

WebSocket l\u00e4uft auf /ws.

Wichtige Events:

"},{"location":"architecture/overview/#prozessausfuhrung","title":"Prozessausf\u00fchrung","text":"

Externe Tools werden als Child-Processes gestartet (processRunner):

"},{"location":"architecture/overview/#persistenz","title":"Persistenz","text":"

SQLite-Datei: backend/data/ripster.db

Kern-Tabellen:

Beim Start werden Schema und Settings-Migrationen automatisch ausgef\u00fchrt.

"},{"location":"architecture/overview/#fehlerbehandlung","title":"Fehlerbehandlung","text":"

Zentrales Error-Handling liefert:

{\n  \"error\": {\n    \"message\": \"...\",\n    \"statusCode\": 400,\n    \"reqId\": \"...\",\n    \"details\": []\n  }\n}\n

Fehlgeschlagene Jobs bleiben in der Historie (Fehler oder Abgebrochen) und k\u00f6nnen erneut gestartet werden.

"},{"location":"architecture/overview/#cors-runtime-konfig","title":"CORS & Runtime-Konfig","text":""},{"location":"configuration/","title":"Anhang: Konfiguration","text":"

Dieser Abschnitt ist die technische Referenz zu allen Konfigurationsarten in Ripster.

"},{"location":"configuration/#inhalte","title":"Inhalte","text":""},{"location":"configuration/#zuruck-zum-handbuch","title":"Zur\u00fcck zum Handbuch","text":""},{"location":"configuration/environment/","title":"Umgebungsvariablen","text":"

Umgebungsvariablen steuern Backend/Vite au\u00dferhalb der DB-basierten UI-Settings.

"},{"location":"configuration/environment/#backend-backendenv","title":"Backend (backend/.env)","text":"Variable Default (Code) Beschreibung PORT 3001 Express-Port DB_PATH backend/data/ripster.db SQLite-Datei (relativ zu backend/) LOG_DIR backend/logs Fallback-Logverzeichnis (wenn log_dir-Setting nicht gesetzt/lesbar) CORS_ORIGIN * CORS-Origin f\u00fcr API LOG_LEVEL info debug, info, warn, error

Beispiel:

PORT=3001\nDB_PATH=/var/lib/ripster/ripster.db\nLOG_DIR=/var/log/ripster\nCORS_ORIGIN=http://192.168.1.50:5173\nLOG_LEVEL=info\n

Hinweis: backend/.env.example enth\u00e4lt bewusst dev-freundliche Werte (z. B. lokaler CORS_ORIGIN).

"},{"location":"configuration/environment/#frontend-frontendenv","title":"Frontend (frontend/.env)","text":"Variable Default Beschreibung VITE_API_BASE /api API-Basis f\u00fcr Fetch-Client VITE_WS_URL automatisch aus window.location + /ws Optional explizite WebSocket-URL VITE_PUBLIC_ORIGIN leer \u00d6ffentliche Vite-Origin (Remote-Dev) VITE_ALLOWED_HOSTS true Komma-separierte Hostliste f\u00fcr Vite allowedHosts VITE_HMR_PROTOCOL abgeleitet aus VITE_PUBLIC_ORIGIN HMR-Protokoll (ws/wss) VITE_HMR_HOST abgeleitet aus VITE_PUBLIC_ORIGIN HMR-Host VITE_HMR_CLIENT_PORT abgeleitet aus VITE_PUBLIC_ORIGIN HMR-Client-Port

Beispiele:

# lokal (mit Vite-Proxy)\nVITE_API_BASE=/api\n
# remote dev\nVITE_API_BASE=http://192.168.1.50:3001/api\nVITE_WS_URL=ws://192.168.1.50:3001/ws\nVITE_PUBLIC_ORIGIN=http://192.168.1.50:5173\nVITE_ALLOWED_HOSTS=192.168.1.50,ripster.local\nVITE_HMR_PROTOCOL=ws\nVITE_HMR_HOST=192.168.1.50\nVITE_HMR_CLIENT_PORT=5173\n
"},{"location":"configuration/environment/#prioritat","title":"Priorit\u00e4t","text":"
  1. Prozess-Umgebungsvariablen
  2. .env
  3. Code-Defaults
"},{"location":"configuration/settings-reference/","title":"Einstellungsreferenz","text":"

Diese Seite beschreibt jedes Feld aus Settings -> Konfiguration aus Anwendersicht: was du dort steuerst, wann die Einstellung greift und welchen Einfluss sie auf Review, Queue, Pfade oder Automatisierung hat.

"},{"location":"configuration/settings-reference/#so-liest-du-diese-seite","title":"So liest du diese Seite","text":""},{"location":"configuration/settings-reference/#benachrichtigungen","title":"Benachrichtigungen","text":""},{"location":"configuration/settings-reference/#expertenmodus","title":"Expertenmodus","text":"

Standard: Aus

Der Schalter blendet zus\u00e4tzliche technische Felder in der gesamten Settings-Oberfl\u00e4che ein, zum Beispiel f\u00fcr Logging, Polling-Intervalle oder CLI-Feinjustierung. Er wird sofort gespeichert und wirkt ohne extra Speichern der ganzen Seite.

Greift in: - die Sichtbarkeit von Expertenfeldern in Settings - zus\u00e4tzliche Navigations- und Wartungsbereiche

Praxis: - Aktiviere ihn, wenn du Ripster genauer steuern oder Fehler analysieren willst. - Lass ihn aus, wenn die Oberfl\u00e4che bewusst schlank bleiben soll.

"},{"location":"configuration/settings-reference/#pushover-aktiviert","title":"PushOver aktiviert","text":"

Standard: Aus

Das ist der Master-Schalter f\u00fcr alle PushOver-Nachrichten. Ist er aus, sendet Ripster unabh\u00e4ngig von den einzelnen Ereignis-Toggles nichts.

Greift in: - Push-Benachrichtigungen zu Auswahl, Start, Erfolg, Fehler und Re-Encode

Praxis: - Aktiviere den Schalter nur zusammen mit g\u00fcltigem Token und User-Key.

"},{"location":"configuration/settings-reference/#pushover-token","title":"PushOver Token","text":"

Standard: leer

Hier hinterlegst du den Application Token deiner PushOver-Anwendung. Ohne diesen Wert kann Ripster keine Nachricht zustellen.

Greift in: - jeden PushOver-Versand

Praxis: - Der Wert stammt aus deiner PushOver-App-Konfiguration.

"},{"location":"configuration/settings-reference/#pushover-user","title":"PushOver User","text":"

Standard: leer

Hier steht der User-Key des PushOver-Kontos, an das Ripster senden soll.

Greift in: - jeden PushOver-Versand

Praxis: - Trage hier den Zielaccount ein, der die Meldungen wirklich erhalten soll.

"},{"location":"configuration/settings-reference/#pushover-device-optional","title":"PushOver Device (optional)","text":"

Standard: leer

Mit diesem Feld begrenzt du PushOver-Nachrichten auf ein bestimmtes Ger\u00e4t. Bleibt es leer, gehen die Nachrichten an alle Ger\u00e4te des PushOver-Users.

Greift in: - die Zielauswahl beim Versand

Praxis: - Sinnvoll, wenn Ripster nur ein bestimmtes Telefon oder Tablet benachrichtigen soll.

"},{"location":"configuration/settings-reference/#pushover-titel-prafix","title":"PushOver Titel-Pr\u00e4fix","text":"

Standard: Ripster

Das Pr\u00e4fix wird vor den eigentlichen Titel jeder PushOver-Nachricht gesetzt. So kannst du mehrere Instanzen oder Systeme leichter auseinanderhalten.

Greift in: - die Betreffzeile aller PushOver-Nachrichten

Praxis: - Typische Werte sind zum Beispiel Ripster Keller, Wohnzimmer-Ripper oder der Hostname.

"},{"location":"configuration/settings-reference/#pushover-priority","title":"PushOver Priority","text":"

Standard: 0

Die Priorit\u00e4t steuert, wie dringend PushOver die Nachricht behandelt. Niedrigere Werte sind leiser, h\u00f6here Werte auff\u00e4lliger.

Greift in: - die Zustellungsart auf der PushOver-Seite

Praxis: - F\u00fcr normale Statusmeldungen reicht meist 0. - H\u00f6here Priorit\u00e4ten sind eher f\u00fcr Fehler oder manuelle Eingriffe gedacht.

"},{"location":"configuration/settings-reference/#pushover-timeout-ms","title":"PushOver Timeout (ms)","text":"

Standard: 7000

Dieser Wert legt fest, wie lange Ripster auf eine Antwort von PushOver wartet, bevor der Versand als fehlgeschlagen gilt.

Greift in: - die HTTP-Verbindung zu PushOver

Praxis: - Ein h\u00f6herer Wert kann bei langsamen Verbindungen helfen. - Ein niedrigerer Wert sorgt daf\u00fcr, dass H\u00e4nger schneller abgebrochen werden.

"},{"location":"configuration/settings-reference/#bei-manueller-auswahl-senden","title":"Bei manueller Auswahl senden","text":"

Standard: An

Ripster sendet eine Nachricht, wenn ein Job auf eine Benutzerentscheidung wartet, zum Beispiel bei Metadatenauswahl, RAW-Entscheidung, Playlist-Auswahl oder Titelwahl vor dem Review.

Greift in: - Playlistflow - RAW-Wiederverwendung - manuelle Review-Vorbereitung

Praxis: - Das ist eines der wichtigsten Events, wenn Ripster unbeaufsichtigt laufen soll.

"},{"location":"configuration/settings-reference/#bei-rip-start-senden","title":"Bei Rip-Start senden","text":"

Standard: An

Sendet eine Nachricht in dem Moment, in dem der eigentliche MakeMKV-Rip startet.

Greift in: - Disc-Workflows im Ripper

Praxis: - N\u00fctzlich, wenn du wissen willst, dass die Wartephase beendet ist und das Laufwerk jetzt wirklich arbeitet.

"},{"location":"configuration/settings-reference/#bei-encode-start-senden","title":"Bei Encode-Start senden","text":"

Standard: An

Sendet eine Nachricht beim Start von HandBrake oder eines anderen Encode-Schritts.

Greift in: - Film-, Serien-, Converter- und Audiobook-Encodes

Praxis: - Hilfreich, wenn Rip und Encode auf unterschiedlichen Systemlasten beruhen und du den eigentlichen Rechenstart mitbekommen willst.

"},{"location":"configuration/settings-reference/#bei-erfolg-senden","title":"Bei Erfolg senden","text":"

Standard: An

Sendet eine Nachricht nach erfolgreichem Abschluss eines Jobs.

Greift in: - alle erfolgreichen Pipeline-L\u00e4ufe

Praxis: - Gut f\u00fcr lange Nachtl\u00e4ufe oder Stapelverarbeitung.

"},{"location":"configuration/settings-reference/#bei-fehler-senden","title":"Bei Fehler senden","text":"

Standard: An

Sendet eine Nachricht, sobald ein Job in einen Fehlerzustand l\u00e4uft.

Greift in: - Fehler in Rip, Analyse, Review-Aufbau, Encode oder Folgeaktionen

Praxis: - Dieses Event sollte in produktiven Umgebungen fast immer aktiv bleiben.

"},{"location":"configuration/settings-reference/#bei-abbruch-senden","title":"Bei Abbruch senden","text":"

Standard: An

Sendet eine Nachricht, wenn ein Job manuell abgebrochen wurde.

Greift in: - Benutzerabbr\u00fcche im laufenden Workflow

Praxis: - Vor allem n\u00fctzlich, wenn mehrere Personen mit derselben Instanz arbeiten.

"},{"location":"configuration/settings-reference/#bei-re-encode-start-senden","title":"Bei Re-Encode Start senden","text":"

Standard: An

Sendet eine Nachricht beim Start eines Re-Encodes aus vorhandenem RAW.

Greift in: - RAW neu encodieren - Review neu starten mit erneutem Encode

Praxis: - Praktisch, wenn du bestehende RAWs sp\u00e4ter gesammelt neu verarbeitest.

"},{"location":"configuration/settings-reference/#bei-re-encode-erfolg-senden","title":"Bei Re-Encode Erfolg senden","text":"

Standard: An

Sendet eine Nachricht, wenn ein Re-Encode erfolgreich abgeschlossen wurde.

Greift in: - Nachbearbeitung aus der Historie

Praxis: - Besonders hilfreich bei Korrekturl\u00e4ufen auf Basis alter RAWs.

"},{"location":"configuration/settings-reference/#converter","title":"Converter","text":""},{"location":"configuration/settings-reference/#erlaubte-datei-endungen","title":"Erlaubte Datei-Endungen","text":"

Standard: mkv,mp4,m2ts,iso,avi,mov,flac,mp3,aac,wav,m4a,ogg,opus

Die Liste bestimmt, welche Dateitypen der Converter-Upload akzeptiert und welche Dateien beim Scannen des Converter-Eingangsordners ber\u00fccksichtigt werden. Die Eintr\u00e4ge werden kommagetrennt und ohne Punkt gepflegt.

Greift in: - Upload im Converter - manueller Scan - Auto-Scan

Praxis: - Entferne Formate, die in deiner Umgebung nie verarbeitet werden sollen. - Erg\u00e4nze nur Formate, die Ripster sp\u00e4ter auch sinnvoll als Job behandeln kann.

"},{"location":"configuration/settings-reference/#auto-scan-polling","title":"Auto-Scan (Polling)","text":"

Standard: Aus

Wenn dieser Schalter aktiv ist, scannt Ripster den Converter-Eingangsordner in festen Abst\u00e4nden automatisch neu. Neue oder verschobene Dateien tauchen dann ohne manuellen Klick auf.

Greift in: - die Dateiansicht des Converters - automatisches Erkennen externer Dateiimporte

Praxis: - Sinnvoll, wenn Dateien per Netzfreigabe, Script oder anderer Software in den Converter gelegt werden.

"},{"location":"configuration/settings-reference/#polling-intervall-sekunden","title":"Polling-Intervall (Sekunden)","text":"

Standard: 300

Der Wert bestimmt, wie oft der Converter-Eingangsordner bei aktivem Auto-Scan gepr\u00fcft wird.

Greift in: - Reaktionsgeschwindigkeit des Converter-Scans - Systemlast durch wiederholte Verzeichnispr\u00fcfungen

Praxis: - Kleinere Werte aktualisieren schneller, erzeugen aber mehr Dateisystemzugriffe.

"},{"location":"configuration/settings-reference/#laufwerk","title":"Laufwerk","text":""},{"location":"configuration/settings-reference/#laufwerksmodus","title":"Laufwerksmodus","text":"

Standard: auto

Hier legst du fest, ob Ripster optische Laufwerke automatisch erkennen soll oder ob du feste Laufwerke manuell definierst.

Greift in: - Laufwerkserkennung - Disc-Monitoring - Zuordnung von Laufwerk und MakeMKV-Quelle

Praxis: - auto passt f\u00fcr die meisten Einzel-Laufwerke. - Ein expliziter Modus ist besser, wenn mehrere Laufwerke stabil an bestimmte Ger\u00e4te gebunden werden sollen.

"},{"location":"configuration/settings-reference/#explizite-laufwerke","title":"Explizite Laufwerke","text":"

Standard: leer

In diesem Editor legst du pro Laufwerk einen Ger\u00e4tepfad und den passenden MakeMKV-Index fest. Diese Liste wird nur verwendet, wenn der Laufwerksmodus auf einen expliziten Betrieb gestellt ist.

Greift in: - Multi-Drive-Setups - stabile Zuordnung zwischen Linux-Ger\u00e4t und MakeMKV-Quelle

Praxis: - Besonders hilfreich bei zwei oder mehr Laufwerken oder bei wechselnden USB-Adaptern.

"},{"location":"configuration/settings-reference/#device-pfad","title":"Device Pfad","text":"

Standard: /dev/sr0

Dieses Feld ist normalerweise ausgeblendet und dient nur als \u00e4lterer Einzelwert f\u00fcr feste Laufwerkskonfigurationen. In der Praxis solltest du stattdessen den Editor Explizite Laufwerke verwenden.

Greift in: - interne Fallbacks bei expliziter Laufwerkskonfiguration

Praxis: - Nur relevant f\u00fcr Sonderf\u00e4lle oder Altdaten.

"},{"location":"configuration/settings-reference/#makemkv-source-index","title":"MakeMKV Source Index","text":"

Standard: 0

Dieses normalerweise ausgeblendete Feld legt den MakeMKV-Quellindex fest, wenn kein expliziter Laufwerks-Eintrag greift.

Greift in: - interne Quellaufl\u00f6sung f\u00fcr MakeMKV

Praxis: - Im Alltag wird dieser Wert meist automatisch aus der Laufwerkskonfiguration abgeleitet.

"},{"location":"configuration/settings-reference/#automatische-disk-erkennung","title":"Automatische Disk-Erkennung","text":"

Standard: An

Wenn der Schalter aktiv ist, pr\u00fcft Ripster regelm\u00e4\u00dfig, ob neue Discs eingelegt wurden. Ist er aus, musst du Laufwerke manuell neu einlesen.

Greift in: - automatisches Erkennen neu eingelegter Discs

Praxis: - Deaktiviere die Automatik nur, wenn sie in deiner Umgebung st\u00f6rt oder du volle manuelle Kontrolle willst.

"},{"location":"configuration/settings-reference/#polling-intervall-ms","title":"Polling Intervall (ms)","text":"

Standard: 4000

Der Wert bestimmt, wie h\u00e4ufig Ripster nach neuen oder entfernten Discs sucht.

Greift in: - Reaktionsgeschwindigkeit der Disc-Erkennung - H\u00e4ufigkeit der Laufwerksabfragen

Praxis: - Ein kleinerer Wert reagiert schneller. - Ein gr\u00f6\u00dferer Wert reduziert die Polling-Last.

"},{"location":"configuration/settings-reference/#laufwerk-nach-rip-auswerfen","title":"Laufwerk nach Rip auswerfen","text":"

Standard: Aus

Wenn aktiv, wirft Ripster das beteiligte Laufwerk nach einem erfolgreich abgeschlossenen Rip automatisch aus.

Greift in: - Disc-Workflows nach erfolgreichem Rip

Praxis: - N\u00fctzlich bei Stapelbetrieb, damit du sofort siehst, welches Laufwerk fertig ist.

"},{"location":"configuration/settings-reference/#logging","title":"Logging","text":""},{"location":"configuration/settings-reference/#terminal-ausgabe-aktiv","title":"Terminal-Ausgabe aktiv","text":"

Standard: An

Dieser Schalter steuert die Konsolenausgabe des Servers im Terminal. Die Log-Dateien auf Platte bleiben davon unber\u00fchrt.

Greift in: - start.sh - Service-Diagnose im Terminal

Praxis: - Deaktiviere die Ausgabe, wenn die Konsole bewusst ruhig bleiben soll.

"},{"location":"configuration/settings-reference/#http-logs-im-terminal","title":"HTTP-Logs im Terminal","text":"

Standard: An

Zeigt oder unterdr\u00fcckt eingehende HTTP-Requests in der Konsolenausgabe.

Greift in: - API-Debugging - Analyse von Frontend-/Backend-Kommunikation

Praxis: - Besonders bei Fehlersuche im Webinterface n\u00fctzlich.

"},{"location":"configuration/settings-reference/#debug-im-terminal","title":"DEBUG im Terminal","text":"

Standard: An

Steuert, ob sehr detaillierte Debug-Meldungen im Terminal mitlaufen.

Greift in: - tiefes Troubleshooting

Praxis: - Gut f\u00fcr Fehlersuche, oft zu ausf\u00fchrlich f\u00fcr den Dauerbetrieb.

"},{"location":"configuration/settings-reference/#info-im-terminal","title":"INFO im Terminal","text":"

Standard: An

Steuert normale Statusmeldungen in der Konsolenausgabe.

Greift in: - allt\u00e4gliche Laufzeitbeobachtung

Praxis: - F\u00fcr normale Bedienung meist sinnvoll aktiviert.

"},{"location":"configuration/settings-reference/#warn-im-terminal","title":"WARN im Terminal","text":"

Standard: An

Steuert Warnmeldungen in der Konsole.

Greift in: - Hinweise auf ungew\u00f6hnliche, aber nicht sofort kritische Situationen

Praxis: - Sollte fast immer sichtbar bleiben.

"},{"location":"configuration/settings-reference/#error-im-terminal","title":"ERROR im Terminal","text":"

Standard: An

Steuert Fehlermeldungen in der Konsole.

Greift in: - alle ernsthaften Laufzeitfehler

Praxis: - Sollte im Regelfall immer aktiviert bleiben.

"},{"location":"configuration/settings-reference/#metadaten","title":"Metadaten","text":""},{"location":"configuration/settings-reference/#tmdb-read-access-token","title":"TMDb Read Access Token","text":"

Standard: leer

Ohne diesen Token kann Ripster keine regul\u00e4re TMDb-Metadatensuche f\u00fcr Filme und Serien durchf\u00fchren. Der Wert wird f\u00fcr Suche, Zuordnung und sp\u00e4tere Neu-Zuweisungen verwendet.

Greift in: - Metadatenauswahl nach der Analyse - Serienzuordnung - TMDb neu zuweisen - Poster- und Titellookups

Praxis: - Dieses Feld geh\u00f6rt zu den wichtigsten Grundeinstellungen f\u00fcr Disc-Workflows.

"},{"location":"configuration/settings-reference/#film-sprache","title":"Film-Sprache","text":"

Standard: de-DE

Hier legst du fest, in welcher TMDb-Sprache Ripster Titel, Beschreibungen, Staffelnamen und \u00e4hnliche Daten zuerst abruft.

Greift in: - Film- und Serienmetadaten in der Auswahl - Sprache der zur\u00fcckgegebenen TMDb-Daten

Praxis: - W\u00e4hle die Sprache, in der du Titel und Episodennamen sp\u00e4ter auch in Ordnern und Historie sehen willst.

"},{"location":"configuration/settings-reference/#fallback-sprache","title":"Fallback Sprache","text":"

Standard: de-DE,en-US

Wenn in der Hauptsprache keine brauchbaren Daten vorhanden sind, versucht Ripster nacheinander diese Fallback-Sprachen.

Greift in: - Trefferqualit\u00e4t bei seltenen oder schlecht lokalisierten Titeln

Praxis: - Eine Kombination aus lokaler Sprache und en-US ist oft am robustesten.

"},{"location":"configuration/settings-reference/#coverart-nachladen-aktiv","title":"Coverart-Nachladen aktiv","text":"

Standard: An

Wenn bei Jobs oder Containern Cover fehlen, pr\u00fcft Ripster in Intervallen automatisch nach und versucht das Material sp\u00e4ter nachzuladen.

Greift in: - nachtr\u00e4gliche Pflege von Postern und Covern

Praxis: - Sinnvoll, wenn beim ersten Lauf gelegentlich noch keine vollst\u00e4ndigen Bilder verf\u00fcgbar waren.

"},{"location":"configuration/settings-reference/#coverart-prufintervall-stunden","title":"Coverart-Pr\u00fcfintervall (Stunden)","text":"

Standard: 6

Legt fest, wie oft die automatische Cover-Pr\u00fcfung laufen darf.

Greift in: - H\u00e4ufigkeit des Cover-Nachladens

Praxis: - Kleinere Werte aktualisieren schneller, gr\u00f6\u00dfere Werte reduzieren Hintergrundaktivit\u00e4t.

"},{"location":"configuration/settings-reference/#nfo-nach-encode-erzeugen","title":"NFO nach Encode erzeugen","text":"

Standard: Aus

Wenn dieser Schalter aktiv ist, legt Ripster nach erfolgreichem Encode eine .nfo-Datei neben der finalen Ausgabedatei an.

Greift in: - Film- und Serienausgabe - Nachbearbeitung in Media-Centern

Praxis: - Hilfreich f\u00fcr Setups mit Kodi, Jellyfin-Begleitdateien oder eigener Archivierung.

"},{"location":"configuration/settings-reference/#monitoring","title":"Monitoring","text":""},{"location":"configuration/settings-reference/#hardware-monitoring-aktiviert","title":"Hardware Monitoring aktiviert","text":"

Standard: An

Das ist der Master-Schalter f\u00fcr CPU-, RAM-, GPU- und Speicher-Monitoring. Ist er aus, stoppt Ripster Polling und Live-Updates f\u00fcr diese Daten.

Greift in: - die kompakte Anzeige im Ripper - die Seite Hardware

Praxis: - Deaktiviere das Monitoring nur, wenn du die Werte nicht brauchst oder die Abfragen in deiner Umgebung unerw\u00fcnscht sind.

"},{"location":"configuration/settings-reference/#hardware-monitoring-intervall-ms","title":"Hardware Monitoring Intervall (ms)","text":"

Standard: 5000

Hier stellst du ein, wie oft Hardware- und Speicherwerte neu ermittelt werden.

Greift in: - Aktualit\u00e4t der Hardware-Daten - Polling-Last

Praxis: - K\u00fcrzere Intervalle f\u00fchlen sich live an, erzeugen aber mehr Messaufrufe.

"},{"location":"configuration/settings-reference/#pfade","title":"Pfade","text":""},{"location":"configuration/settings-reference/#grundregeln-fur-pfade-besitzer-und-templates","title":"Grundregeln f\u00fcr Pfade, Besitzer und Templates","text":""},{"location":"configuration/settings-reference/#raw-ausgabeordner-blu-ray","title":"Raw Ausgabeordner (Blu-ray)","text":"

Standard: leer

Hier landet das von Blu-ray-Discs erzeugte RAW-Material, sofern kein spezieller Serien-RAW-Ordner greift.

Greift in: - Film- und Disc-Vorbereitung f\u00fcr Blu-ray - Wiederverwendung vorhandener RAWs

Praxis: - Lege RAW-Material gern auf ein gro\u00dfes, schnelles Laufwerk.

"},{"location":"configuration/settings-reference/#raw-ausgabeordner-dvd","title":"Raw Ausgabeordner (DVD)","text":"

Standard: leer

Hier landet das von DVD-Discs erzeugte RAW-Material, sofern kein spezieller Serien-RAW-Ordner greift.

Greift in: - DVD-Rip-Phase - RAW-Wiederverwendung bei DVDs

Praxis: - Trenne Blu-ray- und DVD-RAW, wenn du unterschiedliche Speicherorte oder Aufbewahrungsstrategien willst.

"},{"location":"configuration/settings-reference/#cd-raw-ordner","title":"CD RAW-Ordner","text":"

Standard: leer

In diesem Ordner legt Ripster die rohen CD-Dateien aus dem Audio-CD-Rip ab, bevor das endg\u00fcltige Ausgabeformat erzeugt wird.

Greift in: - Audio-CD-Rip

Praxis: - Sinnvoll auf einem lokalen Datentr\u00e4ger mit genug Platz f\u00fcr WAV-Zwischendaten.

"},{"location":"configuration/settings-reference/#audiobook-raw-ordner","title":"Audiobook RAW-Ordner","text":"

Standard: leer

Das ist der Basisordner f\u00fcr hochgeladene Audiobook-Quelldateien und deren vorbereitete Rohdaten.

Greift in: - AAX-Upload - Audiobook-Vorbereitung

Praxis: - Gut geeignet f\u00fcr einen Bereich, in dem auch gr\u00f6\u00dfere tempor\u00e4re Quelldateien liegen d\u00fcrfen.

"},{"location":"configuration/settings-reference/#serien-ordner-blu-ray","title":"Serien-Ordner (Blu-ray)","text":"

Standard: leer

Das ist der Zielordner f\u00fcr fertige Blu-ray-Serienepisoden.

Greift in: - Ausgabe von Blu-ray-Serien

Praxis: - Typisch ist eine Trennung von Serien und Filmen auf Verzeichnisebene.

"},{"location":"configuration/settings-reference/#film-ausgabeordner-blu-ray","title":"Film Ausgabeordner (Blu-ray)","text":"

Standard: leer

Hierhin schreibt Ripster fertige Blu-ray-Filme.

Greift in: - finale Film-Ausgabe f\u00fcr Blu-ray

Praxis: - Wenn leer, greift Ripster auf den allgemeinen Film-Output zur\u00fcck.

"},{"location":"configuration/settings-reference/#film-ausgabeordner-dvd","title":"Film Ausgabeordner (DVD)","text":"

Standard: leer

Hierhin schreibt Ripster fertige DVD-Filme.

Greift in: - finale Film-Ausgabe f\u00fcr DVD

Praxis: - Praktisch, wenn DVD- und Blu-ray-Filme getrennt archiviert werden sollen.

"},{"location":"configuration/settings-reference/#serien-ordner-dvd","title":"Serien-Ordner (DVD)","text":"

Standard: leer

Das ist der Zielordner f\u00fcr fertige DVD-Serienepisoden.

Greift in: - Ausgabe von DVD-Serien

Praxis: - Kann bewusst getrennt vom Blu-ray-Serienordner gef\u00fchrt werden.

"},{"location":"configuration/settings-reference/#cd-output-ordner","title":"CD Output-Ordner","text":"

Standard: leer

Hier landen die final encodierten Audio-CD-Dateien. Wenn das Feld leer ist, nutzt Ripster denselben Bereich wie f\u00fcr die CD-RAW-Daten oder den eingebauten Standard.

Greift in: - finale Audio-CD-Ausgabe

Praxis: - Trenne RAW und Ausgabe, wenn du Rohdaten nur kurzfristig behalten willst.

"},{"location":"configuration/settings-reference/#audiobook-output-ordner","title":"Audiobook Output-Ordner","text":"

Standard: leer

Hier landen die fertigen Audiobook-Dateien.

Greift in: - m4b - kapitelweises mp3 - kapitelweises flac

Praxis: - Lege diesen Ordner dort an, wo dein H\u00f6rbuch-Archiv liegen soll.

"},{"location":"configuration/settings-reference/#download-zip-ordner","title":"Download ZIP-Ordner","text":"

Standard: leer

Ripster erstellt hier vorbereitete ZIP-Downloads aus RAW oder Output und legt auch die zugeh\u00f6rigen Metadateien dort ab.

Greift in: - Download-Aktionen aus der Historie

Praxis: - Gut geeignet f\u00fcr einen Bereich mit genug tempor\u00e4rem Platz f\u00fcr Archive.

"},{"location":"configuration/settings-reference/#externe-speicher","title":"Externe Speicher","text":"

Standard: leer

Hier hinterlegst du zus\u00e4tzliche Speicherorte, die Ripster in der Oberfl\u00e4che unter den freien Speichern anzeigen soll. Diese Liste ist f\u00fcr die \u00dcberwachung gedacht, nicht als Schreibziel.

Greift in: - Speicheranzeige im Monitoring

Praxis: - N\u00fctzlich f\u00fcr USB-Platten, NAS-Mounts oder andere Zielmedien, deren freien Platz du im Blick behalten willst.

"},{"location":"configuration/settings-reference/#log-ordner","title":"Log Ordner","text":"

Standard: installationsabh\u00e4ngig

Das ist der Basisordner f\u00fcr die Log-Dateien von Ripster. Wenn der Pfad ung\u00fcltig ist, f\u00e4llt Ripster auf einen internen Fallback zur\u00fcck.

Greift in: - Backend-Logs - Job-Logs

Praxis: - Lege Logs auf persistenten Speicher, wenn du Fehlerverl\u00e4ufe langfristig aufbewahren willst.

"},{"location":"configuration/settings-reference/#cd-output-template","title":"CD Output Template","text":"

Standard: {artist} - {album} ({year})/{trackNr} {artist} - {title}

Dieses Template steuert Ordnerstruktur und Dateinamen der finalen Audio-CD-Ausgabe. Der letzte Abschnitt wird Dateiname, alles davor Unterordner.

Greift in: - Audio-CD-Ordnerstruktur - Track-Dateinamen

Praxis: - Beispiel: Mit dem Standard entsteht typischerweise Interpret - Album (2024)/01 Interpret - Titel.flac.

"},{"location":"configuration/settings-reference/#output-template-blu-ray","title":"Output Template (Blu-ray)","text":"

Standard: ${title} (${year})/${title} (${year})

Dieses Template bestimmt Ordner und Dateiname f\u00fcr fertige Blu-ray-Filme.

Greift in: - finale Blu-ray-Filmausgabe

Praxis: - Das Standardtemplate erzeugt einen Filmordner und darin eine gleichnamige Datei.

"},{"location":"configuration/settings-reference/#output-template-blu-ray-serie-episode","title":"Output Template (Blu-ray Serie, Episode)","text":"

Standard: {seriesTitle}/Staffel {seasonNr}/S{seasonNr}E{episodeNr} - {episodeTitle}

Dieses Template bestimmt den Pfad f\u00fcr einzelne Blu-ray-Serienfolgen.

Greift in: - Serien-Workflow mit Einzel-Episoden

Praxis: - Beispiel: Serie/Staffel 02/S02E05 - Episodentitel.mkv.

"},{"location":"configuration/settings-reference/#output-template-blu-ray-serie-multi-episode","title":"Output Template (Blu-ray Serie, Multi-Episode)","text":"

Standard: {seriesTitle}/Staffel {seasonNr}/S{0:seasonNr}E{episodeRange} - {episodeTitle} (Teil {parts})

Dieses Template greift, wenn mehrere Folgen in einer Datei zusammengefasst bleiben.

Greift in: - Serien-Workflow mit Doppelfolgen oder Play-All-F\u00e4llen

Praxis: - So bleibt direkt im Dateinamen sichtbar, dass mehrere Episoden in einer Datei liegen.

"},{"location":"configuration/settings-reference/#output-template-dvd","title":"Output Template (DVD)","text":"

Standard: ${title} (${year})/${title} (${year})

Dieses Template bestimmt Ordner und Dateiname f\u00fcr fertige DVD-Filme.

Greift in: - finale DVD-Filmausgabe

Praxis: - Das Verhalten entspricht dem Blu-ray-Filmtemplate, nur f\u00fcr das DVD-Profil.

"},{"location":"configuration/settings-reference/#output-template-dvd-serie-episode","title":"Output Template (DVD Serie, Episode)","text":"

Standard: {seriesTitle}/Season {seasonNr}/{seriesTitle} - S{seasonNo}E{episodeNo} - {episodeTitle}

Dieses Template steuert den Pfad f\u00fcr einzelne DVD-Serienfolgen.

Greift in: - DVD-Serien mit einzelner Episodenausgabe

Praxis: - Nutze es, um dein bevorzugtes Serien-Schema exakt abzubilden.

"},{"location":"configuration/settings-reference/#output-template-dvd-serie-multi-episode","title":"Output Template (DVD Serie, Multi-Episode)","text":"

Standard: {seriesTitle}/Season {seasonNr}/{seriesTitle} - S{seasonNo}E{episodeRange}

Dieses Template greift f\u00fcr zusammengefasste DVD-Folgen in einer Datei.

Greift in: - Multi-Episode-Ausgabe im DVD-Serienworkflow

Praxis: - Besonders relevant bei TV-DVDs mit Play-All-Titeln oder Doppelfolgen.

"},{"location":"configuration/settings-reference/#output-template-audiobook","title":"Output Template (Audiobook)","text":"

Standard: {author}/{author} - {title} ({year})

Dieses Template bestimmt den Dateipfad f\u00fcr die Ein-Datei-Ausgabe von Audiobooks, also vor allem f\u00fcr m4b.

Greift in: - Audiobook-Ausgabe als Einzeltitel

Praxis: - Beispiel: Autor/Autor - Titel (2023).m4b.

"},{"location":"configuration/settings-reference/#audiobook-raw-template","title":"Audiobook RAW Template","text":"

Standard: {author} - {title} ({year})

Dieses Template steuert den Namen des relativen RAW-Unterordners, in den die Audiobook-Quelldaten gelegt werden.

Greift in: - Audiobook-Upload und RAW-Ablage

Praxis: - Es hilft dabei, AAX-Rohdaten sauber nach Titel und Jahr zu organisieren.

"},{"location":"configuration/settings-reference/#converter-raw-ordner","title":"Converter Raw-Ordner","text":"

Standard: leer

Das ist der Eingangsordner des Converters. Uploads, neue Unterordner und externe Dateiimporte landen hier.

Greift in: - gesamte Converter-Dateiverwaltung

Praxis: - Dieser Ordner sollte gut erreichbar und gro\u00df genug f\u00fcr Rohdateien sein.

"},{"location":"configuration/settings-reference/#converter-ausgabe-video","title":"Converter Ausgabe (Video)","text":"

Standard: leer

Hierhin schreibt Ripster final konvertierte Video- oder ISO-Ergebnisse aus dem Converter.

Greift in: - Converter-Videojobs

Praxis: - Lege hier den Zielbereich f\u00fcr fertige Video-Transcodes fest.

"},{"location":"configuration/settings-reference/#converter-ausgabe-audio","title":"Converter Ausgabe (Audio)","text":"

Standard: leer

Hierhin schreibt Ripster die finalen Audio-Ergebnisse aus dem Converter.

Greift in: - Converter-Audiojobs

Praxis: - Sinnvoll getrennt vom Video-Ausgabeordner.

"},{"location":"configuration/settings-reference/#output-template-video","title":"Output-Template (Video)","text":"

Standard: {title}

Dieses Template bestimmt den Dateinamen von Converter-Videojobs. Unterordner sind ebenfalls m\u00f6glich.

Greift in: - Converter-Videoausgabe

Praxis: - Beispiel: {title}/{title} erzeugt einen Unterordner pro Titel.

"},{"location":"configuration/settings-reference/#output-template-audio","title":"Output-Template (Audio)","text":"

Standard: {artist} - {title}

Dieses Template bestimmt Dateiname und bei Bedarf Ordnerstruktur von Converter-Audiojobs.

Greift in: - einzelne Audio-Dateien - gemeinsame Audio-Jobs - Ordnerjobs

Praxis: - Bei gemeinsamen Audio-Jobs kann der vordere Teil des Templates als Ordner dienen, der hintere Teil als Track-Schema.

"},{"location":"configuration/settings-reference/#raw-ordner-blu-ray-serie","title":"RAW-Ordner (Blu-ray Serie)","text":"

Standard: leer

Hier kannst du Blu-ray-Serien-RAW bewusst getrennt vom allgemeinen Blu-ray-RAW ablegen.

Greift in: - Serien-RAW-Erzeugung bei Blu-ray

Praxis: - Sinnvoll, wenn Serien deutlich andere Speicher- oder Aufbewahrungsregeln haben als Filme.

"},{"location":"configuration/settings-reference/#eigentumer-raw-ordner-blu-ray-serie","title":"Eigent\u00fcmer RAW-Ordner (Blu-ray Serie)","text":"

Standard: leer

Legt den Besitzer f\u00fcr Blu-ray-Serien-RAW fest. Ripster versucht neue Dateien und Ordner nach dem Schreiben entsprechend zu \u00fcbernehmen.

Greift in: - Dateirechte auf Serien-RAW

Praxis: - Typisch f\u00fcr NAS-Freigaben oder Docker-Setups mit getrennten Nutzern.

"},{"location":"configuration/settings-reference/#eigentumer-raw-ordner-blu-ray","title":"Eigent\u00fcmer Raw-Ordner (Blu-ray)","text":"

Standard: leer

Legt den Besitzer f\u00fcr allgemeine Blu-ray-RAW-Daten fest.

Greift in: - Dateirechte auf Blu-ray-RAW

Praxis: - Relevant, wenn der Ripster-Dienst nicht als Zielnutzer schreiben soll.

"},{"location":"configuration/settings-reference/#raw-ordner-dvd-serie","title":"RAW-Ordner (DVD Serie)","text":"

Standard: leer

Hier kannst du DVD-Serien-RAW getrennt vom allgemeinen DVD-RAW ablegen.

Greift in: - Serien-RAW-Erzeugung bei DVD

Praxis: - Sinnvoll, wenn Serienmaterial getrennt verwaltet werden soll.

"},{"location":"configuration/settings-reference/#eigentumer-raw-ordner-dvd-serie","title":"Eigent\u00fcmer RAW-Ordner (DVD Serie)","text":"

Standard: leer

Legt den Besitzer f\u00fcr DVD-Serien-RAW fest.

Greift in: - Dateirechte auf DVD-Serien-RAW

Praxis: - Besonders wichtig in Mehrbenutzer- oder NAS-Umgebungen.

"},{"location":"configuration/settings-reference/#eigentumer-raw-ordner-dvd","title":"Eigent\u00fcmer Raw-Ordner (DVD)","text":"

Standard: leer

Legt den Besitzer f\u00fcr allgemeine DVD-RAW-Daten fest.

Greift in: - Dateirechte auf DVD-RAW

Praxis: - Nutze das Feld, wenn finale Rechte nicht beim Service-User liegen sollen.

"},{"location":"configuration/settings-reference/#eigentumer-cd-raw-ordner","title":"Eigent\u00fcmer CD RAW-Ordner","text":"

Standard: leer

Legt den Besitzer f\u00fcr Rohdaten aus Audio-CD-Rips fest.

Greift in: - Rechte auf CD-Zwischendaten

Praxis: - Hilfreich, wenn andere Tools oder Nutzer auf die Rohdaten zugreifen sollen.

"},{"location":"configuration/settings-reference/#eigentumer-audiobook-raw-ordner","title":"Eigent\u00fcmer Audiobook RAW-Ordner","text":"

Standard: leer

Legt den Besitzer f\u00fcr Audiobook-Rohdaten fest.

Greift in: - Rechte auf AAX- und Vorbereitungsdaten

Praxis: - Relevant, wenn Audiobook-RAW nicht beim Dienstbenutzer verbleiben soll.

"},{"location":"configuration/settings-reference/#eigentumer-converter-raw-ordner","title":"Eigent\u00fcmer Converter RAW-Ordner","text":"

Standard: leer

Legt den Besitzer f\u00fcr Dateien im Converter-Eingangsbereich fest.

Greift in: - Rechte auf Uploads und importierte Converter-Dateien

Praxis: - Praktisch, wenn Dateien nach dem Upload auch au\u00dferhalb von Ripster bearbeitet werden.

"},{"location":"configuration/settings-reference/#eigentumer-serien-ordner-blu-ray","title":"Eigent\u00fcmer Serien-Ordner (Blu-ray)","text":"

Standard: leer

Legt den Besitzer f\u00fcr fertige Blu-ray-Serienausgaben fest.

Greift in: - finale Rechte auf Blu-ray-Serien

Praxis: - Sinnvoll f\u00fcr Media-Center-Freigaben.

"},{"location":"configuration/settings-reference/#eigentumer-film-ordner-blu-ray","title":"Eigent\u00fcmer Film-Ordner (Blu-ray)","text":"

Standard: leer

Legt den Besitzer f\u00fcr fertige Blu-ray-Filmdateien fest.

Greift in: - finale Rechte auf Blu-ray-Filme

Praxis: - Nutze das Feld, wenn Filme auf einem NAS oder von anderen Diensten gelesen werden.

"},{"location":"configuration/settings-reference/#eigentumer-film-ordner-dvd","title":"Eigent\u00fcmer Film-Ordner (DVD)","text":"

Standard: leer

Legt den Besitzer f\u00fcr fertige DVD-Filmdateien fest.

Greift in: - finale Rechte auf DVD-Filme

Praxis: - Gleiches Prinzip wie beim Blu-ray-Filmordner, nur f\u00fcr DVD.

"},{"location":"configuration/settings-reference/#eigentumer-serien-ordner-dvd","title":"Eigent\u00fcmer Serien-Ordner (DVD)","text":"

Standard: leer

Legt den Besitzer f\u00fcr fertige DVD-Serienausgaben fest.

Greift in: - finale Rechte auf DVD-Serien

Praxis: - Hilfreich f\u00fcr gemeinsame Medienarchive.

"},{"location":"configuration/settings-reference/#eigentumer-cd-output-ordner","title":"Eigent\u00fcmer CD Output-Ordner","text":"

Standard: leer

Legt den Besitzer der finalen Audio-CD-Ausgabe fest.

Greift in: - Rechte auf FLAC-, MP3- oder andere CD-Endformate

Praxis: - Wichtig, wenn Musik sp\u00e4ter durch andere Anwendungen verwaltet wird.

"},{"location":"configuration/settings-reference/#eigentumer-audiobook-output-ordner","title":"Eigent\u00fcmer Audiobook Output-Ordner","text":"

Standard: leer

Legt den Besitzer der finalen Audiobook-Dateien fest.

Greift in: - Rechte auf m4b, mp3 und flac

Praxis: - Sinnvoll f\u00fcr Bibliotheken, die von separaten Diensten gelesen werden.

"},{"location":"configuration/settings-reference/#eigentumer-converter-video-output-ordner","title":"Eigent\u00fcmer Converter Video Output-Ordner","text":"

Standard: leer

Legt den Besitzer der finalen Converter-Videoausgabe fest.

Greift in: - Rechte auf konvertierte Video-Dateien

Praxis: - N\u00fctzlich bei geteilten Medienordnern.

"},{"location":"configuration/settings-reference/#eigentumer-converter-audio-output-ordner","title":"Eigent\u00fcmer Converter Audio Output-Ordner","text":"

Standard: leer

Legt den Besitzer der finalen Converter-Audioausgabe fest.

Greift in: - Rechte auf konvertierte Audio-Dateien

Praxis: - Hilfreich, wenn Audio-Dateien sp\u00e4ter von anderen Diensten verschoben oder indiziert werden.

"},{"location":"configuration/settings-reference/#eigentumer-download-zip-ordner","title":"Eigent\u00fcmer Download ZIP-Ordner","text":"

Standard: leer

Legt den Besitzer der erzeugten Download-Archive und Begleitdateien fest.

Greift in: - Rechte auf ZIP-Downloads aus der Historie

Praxis: - Besonders relevant, wenn Downloads \u00fcber Freigaben oder einen anderen Webserver bereitgestellt werden.

"},{"location":"configuration/settings-reference/#kapitel-template-audiobook","title":"Kapitel Template (Audiobook)","text":"

Standard: {author}/{author} - {title} ({year})/{chapterNr} {chapterTitle}

Dieses Template steuert die Zielstruktur f\u00fcr kapitelweise Audiobook-Ausgaben wie mp3 oder flac.

Greift in: - Kapiteldateien im Audiobook-Workflow

Praxis: - Beispiel: Autor/Autor - Titel (2023)/01 Kapitelname.mp3.

"},{"location":"configuration/settings-reference/#tools","title":"Tools","text":""},{"location":"configuration/settings-reference/#grundregeln-fur-diese-kategorie","title":"Grundregeln f\u00fcr diese Kategorie","text":""},{"location":"configuration/settings-reference/#makemkv-kommando","title":"MakeMKV Kommando","text":"

Standard: makemkvcon

Hier gibst du den Befehl oder den vollst\u00e4ndigen Pfad zur MakeMKV-CLI an.

Greift in: - Disc-Analyse - Rip von Blu-ray und DVD

Praxis: - Trage einen absoluten Pfad ein, wenn das Tool nicht im PATH des Dienstes liegt.

"},{"location":"configuration/settings-reference/#makemkv-key","title":"MakeMKV Key","text":"

Standard: leer

Hier hinterlegst du den Registrierungsschl\u00fcssel f\u00fcr MakeMKV. Ripster synchronisiert ihn beim Speichern in die MakeMKV-Konfiguration und kann au\u00dferdem den aktuellen Betakey \u00fcbernehmen.

Greift in: - MakeMKV-Nutzung ohne Trial-Einschr\u00e4nkungen

Praxis: - Sinnvoll, wenn die CLI dauerhaft und ohne manuelle Host-Pflege nutzbar bleiben soll.

"},{"location":"configuration/settings-reference/#mediainfo-kommando","title":"Mediainfo Kommando","text":"

Standard: mediainfo

Hier gibst du den Befehl oder Pfad zu mediainfo an.

Greift in: - Mediainfo-Pr\u00fcfung - Review-Aufbau - Analyse vorhandener Dateien

Praxis: - Wichtig f\u00fcr alle Workflows, die Track- und Streaminformationen zuverl\u00e4ssig aufbauen sollen.

"},{"location":"configuration/settings-reference/#minimale-titellange-minuten","title":"Minimale Titell\u00e4nge (Minuten)","text":"

Standard: 60

Diese Einstellung wirkt doppelt: Ripster h\u00e4ngt den Wert bei der MakeMKV-Analyse als Mindestl\u00e4nge an, sofern du nicht schon selbst eine explizite Mindestl\u00e4nge in den Extra-Args gesetzt hast. Zus\u00e4tzlich markiert Ripster Titel unterhalb dieser Schwelle sp\u00e4ter im Review als nicht encodierw\u00fcrdig.

Greift in: - Titel- und Playlist-Vorfilterung - Disc-Analyse - Review-Aufbau

Praxis: - Ein hoher Wert blendet Bonusmaterial und Trailer aus. - Ein zu hoher Wert kann aber auch k\u00fcrzere Haupttitel oder Episoden verdr\u00e4ngen.

"},{"location":"configuration/settings-reference/#tmdb-runtime-abzug-fur-playlistfilter","title":"TMDb Runtime-Abzug f\u00fcr Playlistfilter (%)","text":"

Standard: 0

Ripster vergleicht bei problematischen Blu-rays die Disc-Playlists mit der Laufzeit aus TMDb. Dieser Wert wird prozentual von der TMDb-Laufzeit abgezogen und bildet damit eine lockerere Untergrenze f\u00fcr akzeptable Playlist-Kandidaten. Zus\u00e4tzlich bleibt immer eine Mindesttoleranz von zwei Minuten nach unten erhalten.

Greift in: - Playlistflow vor der Review - Kandidatenauswahl bei Hauptfilm-Playlists

Praxis: - Beispiel: Steht ein Film in TMDb mit 120 Minuten und du tr\u00e4gst 5 ein, arbeitet Ripster f\u00fcr die Kandidatensuche mit rund 114 Minuten als Untergrenze, solange die feste Zweiminuten-Toleranz nicht ohnehin h\u00f6her w\u00e4re. - Das hilft bei Discs, deren korrekte Hauptfassung etwas k\u00fcrzer gemeldet wird als in TMDb.

"},{"location":"configuration/settings-reference/#handbrake-kommando","title":"HandBrake Kommando","text":"

Standard: HandBrakeCLI

Hier gibst du den Befehl oder Pfad zu HandBrakeCLI an.

Greift in: - alle Video-Encodes - Re-Encode aus RAW - Converter-Videojobs

Praxis: - Bei mehreren HandBrake-Installationen kannst du hier gezielt eine bestimmte Binary verwenden.

"},{"location":"configuration/settings-reference/#encode-neustart-unvollstandige-ausgabe-loschen","title":"Encode-Neustart: unvollst\u00e4ndige Ausgabe l\u00f6schen","text":"

Standard: An

Wenn du einen Encode aus der Historie neu startest und der vorherige Lauf nicht erfolgreich war, entfernt Ripster den unvollst\u00e4ndigen Output vor dem Neustart automatisch. Erfolgreiche Ausgaben bleiben davon unber\u00fchrt.

Greift in: - Encode neu starten

Praxis: - Aktiviert verhindert diese Option, dass alte Teil-Dateien mit dem neuen Lauf kollidieren.

"},{"location":"configuration/settings-reference/#parallele-jobs","title":"Parallele Jobs","text":"

Standard: 1

Das ist das allgemeine Startlimit f\u00fcr gleichzeitig laufende Jobs in der Pipeline. Alles dar\u00fcber wird in die Warteschlange gestellt.

Greift in: - Ripper - Converter - Audiobooks - Queue-Pumpe im Hintergrund

Praxis: - Ein h\u00f6herer Wert erh\u00f6ht den Durchsatz, belastet aber CPU, I/O und ggf. mehrere Laufwerke st\u00e4rker.

"},{"location":"configuration/settings-reference/#script-test-timeout-ms","title":"Script-Test Timeout (ms)","text":"

Standard: 0

Dieser Wert gilt nur f\u00fcr den Testlauf von Skripten in Settings. 0 bedeutet: kein Timeout.

Greift in: - Scripte-Tab - Tests einzelner Skripte oder Kettenbausteine

Praxis: - Setze hier einen festen Wert, wenn du h\u00e4ngende Testskripte automatisch abbrechen willst.

"},{"location":"configuration/settings-reference/#max-parallele-audio-cd-jobs","title":"Max. parallele Audio CD Jobs","text":"

Standard: 2

Diese Einstellung begrenzt speziell, wie viele Audio-CD-Jobs gleichzeitig laufen d\u00fcrfen. Sie wirkt zus\u00e4tzlich zum allgemeinen Joblimit.

Greift in: - Audio-CD-Queue - Start mehrerer CDs hintereinander

Praxis: - So kannst du mehrere CDs parallel zulassen, ohne den Videobereich freizugeben.

"},{"location":"configuration/settings-reference/#max-encodes-gesamt-medienunabhangig","title":"Max. Encodes gesamt (medienunabh\u00e4ngig)","text":"

Standard: 3

Das ist der harte Deckel f\u00fcr alle gleichzeitig laufenden Encodes zusammen, unabh\u00e4ngig davon, ob sie von Film, Serie, Converter, CD oder Audiobook stammen.

Greift in: - alle Encode-Starts - Gesamtlast der Maschine

Praxis: - Diese Grenze sticht die Einzellimits aus, wenn zu viele Medienarten gleichzeitig starten wollen.

"},{"location":"configuration/settings-reference/#audio-cds-queue-reihenfolge-uberspringen","title":"Audio CDs: Queue-Reihenfolge \u00fcberspringen","text":"

Standard: Aus

Wenn aktiviert, d\u00fcrfen Audio-CD-Jobs vor normalen Film- oder Videojobs starten, auch wenn diese fr\u00fcher in der Queue stehen. Die Parallelit\u00e4ts- und Gesamtlimits gelten trotzdem weiter.

Greift in: - Reihenfolge der Queue - Audio-CD-Durchsatz in gemischten Warteschlangen

Praxis: - Sinnvoll, wenn CDs schnell abgearbeitet werden sollen und nicht hinter langen Videoencodes h\u00e4ngen bleiben sollen.

"},{"location":"configuration/settings-reference/#cdparanoia-kommando","title":"cdparanoia Kommando","text":"

Standard: cdparanoia

Hier gibst du den Befehl oder Pfad zu cdparanoia an.

Greift in: - Audio-CD-Rip

Praxis: - Wichtig, wenn cdparanoia nicht im Standardpfad des Systems liegt.

"},{"location":"configuration/settings-reference/#ffmpeg-kommando","title":"FFmpeg Kommando","text":"

Standard: ffmpeg

Hier gibst du den Befehl oder Pfad zu ffmpeg an.

Greift in: - Audiobook-Encodes - Audio-Nachbearbeitung

Praxis: - Ohne korrektes ffmpeg schlagen Audiobook-Ausgaben fehl.

"},{"location":"configuration/settings-reference/#ffprobe-kommando","title":"FFprobe Kommando","text":"

Standard: ffprobe

Hier gibst du den Befehl oder Pfad zu ffprobe an.

Greift in: - Analyse von Audiobooks - Kapitel- und Metadatenaufbau

Praxis: - Ohne ffprobe kann Ripster Kapitel und Dateidetails nicht zuverl\u00e4ssig auslesen.

"},{"location":"configuration/settings-reference/#mediainfo-extra-args-blu-ray","title":"Mediainfo Extra Args (Blu-ray)","text":"

Standard: leer

Diese zus\u00e4tzlichen Argumente h\u00e4ngt Ripster bei Blu-ray-Mediainfo-Aufrufen an den Befehl an.

Greift in: - Mediainfo-Pr\u00fcfung f\u00fcr Blu-ray - Review-Aufbau aus bestehenden Dateien

Praxis: - Nur f\u00fcr gezielte Spezialf\u00e4lle anpassen, wenn du das CLI-Verhalten bewusst \u00fcberschreiben willst.

"},{"location":"configuration/settings-reference/#makemkv-rip-modus-blu-ray","title":"MakeMKV Rip Modus (Blu-ray)","text":"

Standard: backup

Dieses normalerweise ausgeblendete Systemfeld bestimmt, ob Blu-rays als vollst\u00e4ndige Disc-Struktur oder direkt als MKV gerippt werden.

Greift in: - technische RAW-Erzeugung bei Blu-ray

Praxis: - F\u00fcr normale Nutzung bleibt dieser Wert unver\u00e4ndert.

"},{"location":"configuration/settings-reference/#makemkv-analyze-extra-args-blu-ray","title":"MakeMKV Analyze Extra Args (Blu-ray)","text":"

Standard: leer

Diese zus\u00e4tzlichen Argumente werden an den Blu-ray-Analyseaufruf von MakeMKV angeh\u00e4ngt.

Greift in: - Disc-Analyse - Titel- und Playlist-Erkennung

Praxis: - Beachte, dass eine selbst gesetzte Mindestl\u00e4nge in diesen Args die allgemeine Einstellung zur minimalen Titell\u00e4nge \u00fcbersteuert.

"},{"location":"configuration/settings-reference/#makemkv-rip-extra-args-blu-ray","title":"MakeMKV Rip Extra Args (Blu-ray)","text":"

Standard: leer

Diese zus\u00e4tzlichen Argumente werden an den eigentlichen Blu-ray-Rip angeh\u00e4ngt.

Greift in: - RAW-Erzeugung bei Blu-ray

Praxis: - Nur anpassen, wenn du das MakeMKV-Verhalten sehr gezielt erweitern oder \u00fcberschreiben willst.

"},{"location":"configuration/settings-reference/#handbrake-preset-blu-ray","title":"HandBrake Preset (Blu-ray)","text":"

Standard: H.264 MKV 1080p30

Dieses Feld setzt den technischen HandBrake-Standard f\u00fcr Blu-ray-Jobs, sofern im konkreten Job nichts anderes gew\u00e4hlt wird.

Greift in: - Review-Vorgaben - Encode-Start bei Blu-ray

Praxis: - Das Preset ist deine Grundlinie; im Review oder \u00fcber User-Presets kann sp\u00e4ter bewusst davon abgewichen werden.

"},{"location":"configuration/settings-reference/#handbrake-extra-args-blu-ray","title":"HandBrake Extra Args (Blu-ray)","text":"

Standard: sprach- und codecbezogene Standardargumente

Hier definierst du zus\u00e4tzliche HandBrake-CLI-Argumente f\u00fcr Blu-ray-Jobs. Sie steuern zum Beispiel Audio-Sprachauswahl, Untertitelvorgaben, Encoder-Profil und Qualit\u00e4tsparameter.

Greift in: - finalen HandBrake-Aufruf bei Blu-ray - Vorauswahl von Audio und Untertiteln

Praxis: - Diese Einstellung ist sehr m\u00e4chtig: Ein expliziter Audio- oder Untertitel-Selektor hier kann die separaten Review-Sprachfelder faktisch \u00fcberstimmen.

"},{"location":"configuration/settings-reference/#review-audio-sprachen-blu-ray-film","title":"Review Audio-Sprachen (Blu-ray Film)","text":"

Standard: leer

Hier definierst du, welche Audiosprachen in der Review eines Blu-ray-Films automatisch vorausgew\u00e4hlt werden sollen. Ripster normalisiert \u00fcbliche Schreibweisen wie de, deu, en oder eng.

Greift in: - Bereit zum Encodieren bei Blu-ray-Filmen

Praxis: - Beispiel: de, en. - Bleibt das Feld leer, entscheidet Ripster st\u00e4rker aus Preset und vorhandenen Tracks heraus.

"},{"location":"configuration/settings-reference/#review-ut-sprachen-blu-ray-film","title":"Review UT-Sprachen (Blu-ray Film)","text":"

Standard: leer

Hier definierst du die Untertitelsprachen, die in der Review eines Blu-ray-Films vorselektiert werden.

Greift in: - Untertitelvorauswahl im Film-Review

Praxis: - Gut f\u00fcr feste Standards wie nur Deutsch und Englisch.

"},{"location":"configuration/settings-reference/#review-audio-sprachen-blu-ray-serie","title":"Review Audio-Sprachen (Blu-ray Serie)","text":"

Standard: leer

Dieses Feld funktioniert wie das Film-Pendant, greift aber nur bei Blu-ray-Serien.

Greift in: - Audio-Vorauswahl im Serien-Review

Praxis: - Praktisch, wenn du f\u00fcr Serien andere Sprachregeln als f\u00fcr Filme nutzt.

"},{"location":"configuration/settings-reference/#review-ut-sprachen-blu-ray-serie","title":"Review UT-Sprachen (Blu-ray Serie)","text":"

Standard: leer

Dieses Feld funktioniert wie das Film-Pendant, greift aber nur bei Blu-ray-Serien.

Greift in: - Untertitel-Vorauswahl im Serien-Review

Praxis: - So lassen sich Serien-Defaults getrennt von Film-Defaults pflegen.

"},{"location":"configuration/settings-reference/#ausgabeformat-blu-ray","title":"Ausgabeformat (Blu-ray)","text":"

Standard: mkv

Hier legst du die Dateiendung der finalen Blu-ray-Ausgabe fest.

Greift in: - finalen Dateinamen - Containerformat der Ausgabe

Praxis: - W\u00e4hle das Format, das zu deinem Player- oder Archiv-Setup passt.

"},{"location":"configuration/settings-reference/#mediainfo-extra-args-dvd","title":"Mediainfo Extra Args (DVD)","text":"

Standard: leer

Diese zus\u00e4tzlichen Argumente h\u00e4ngen an den Mediainfo-Aufrufen f\u00fcr DVD-Jobs.

Greift in: - Mediainfo-Pr\u00fcfung f\u00fcr DVD

Praxis: - Nur f\u00fcr gezielte technische Sonderf\u00e4lle anpassen.

"},{"location":"configuration/settings-reference/#makemkv-rip-modus-dvd","title":"MakeMKV Rip Modus (DVD)","text":"

Standard: mkv

Dieses normalerweise ausgeblendete Systemfeld legt fest, ob DVDs direkt als MKV oder als Disc-Struktur gerippt werden.

Greift in: - technische RAW-Erzeugung bei DVD

Praxis: - Im Normalfall unver\u00e4ndert lassen.

"},{"location":"configuration/settings-reference/#makemkv-analyze-extra-args-dvd","title":"MakeMKV Analyze Extra Args (DVD)","text":"

Standard: leer

Diese zus\u00e4tzlichen Argumente werden an den DVD-Analyseaufruf von MakeMKV angeh\u00e4ngt.

Greift in: - DVD-Titelerkennung - sp\u00e4tere Review-Vorbereitung

Praxis: - Wie bei Blu-ray gilt: eigene Mindestl\u00e4ngen-Args k\u00f6nnen die allgemeine Mindestl\u00e4nge \u00fcbersteuern.

"},{"location":"configuration/settings-reference/#makemkv-rip-extra-args-dvd","title":"MakeMKV Rip Extra Args (DVD)","text":"

Standard: leer

Diese zus\u00e4tzlichen Argumente werden beim eigentlichen DVD-Rip an MakeMKV angeh\u00e4ngt.

Greift in: - RAW-Erzeugung bei DVD

Praxis: - Nur bewusst \u00e4ndern, wenn du das CLI-Verhalten genau kennst.

"},{"location":"configuration/settings-reference/#handbrake-preset-dvd","title":"HandBrake Preset (DVD)","text":"

Standard: H.264 MKV 480p30

Dieses Feld setzt den technischen HandBrake-Standard f\u00fcr DVD-Jobs.

Greift in: - Review-Vorgaben - Encode-Start bei DVD

Praxis: - Eine gute Basis f\u00fcr DVD kann sich deutlich von Blu-ray unterscheiden, deshalb gibt es ein eigenes Feld.

"},{"location":"configuration/settings-reference/#handbrake-extra-args-dvd","title":"HandBrake Extra Args (DVD)","text":"

Standard: sprach- und codecbezogene Standardargumente

Hier definierst du die zus\u00e4tzlichen HandBrake-CLI-Argumente f\u00fcr DVD-Jobs.

Greift in: - finalen HandBrake-Aufruf bei DVD - Audio- und Untertitelvorauswahl

Praxis: - Wie bei Blu-ray k\u00f6nnen explizite Selektionsargumente in diesen Args separate Review-Sprachfelder aushebeln.

"},{"location":"configuration/settings-reference/#review-audio-sprachen-dvd-film","title":"Review Audio-Sprachen (DVD Film)","text":"

Standard: leer

Definiert die Audio-Vorauswahl f\u00fcr DVD-Filme in der Review.

Greift in: - Film-Review bei DVD

Praxis: - Beispiel: de, en.

"},{"location":"configuration/settings-reference/#review-ut-sprachen-dvd-film","title":"Review UT-Sprachen (DVD Film)","text":"

Standard: leer

Definiert die Untertitel-Vorauswahl f\u00fcr DVD-Filme in der Review.

Greift in: - Untertitel-Review bei DVD-Filmen

Praxis: - Gut f\u00fcr feste Disc-Standards in deiner Sammlung.

"},{"location":"configuration/settings-reference/#review-audio-sprachen-dvd-serie","title":"Review Audio-Sprachen (DVD Serie)","text":"

Standard: leer

Definiert die Audio-Vorauswahl f\u00fcr DVD-Serien in der Review.

Greift in: - Serien-Review bei DVD

Praxis: - Trenne Serien-Defaults bewusst von Film-Defaults, wenn n\u00f6tig.

"},{"location":"configuration/settings-reference/#review-ut-sprachen-dvd-serie","title":"Review UT-Sprachen (DVD Serie)","text":"

Standard: leer

Definiert die Untertitel-Vorauswahl f\u00fcr DVD-Serien in der Review.

Greift in: - Untertitel-Review bei DVD-Serien

Praxis: - Besonders n\u00fctzlich bei Serien mit vielen redundanten UT-Spuren.

"},{"location":"configuration/settings-reference/#ausgabeformat-dvd","title":"Ausgabeformat (DVD)","text":"

Standard: mkv

Hier legst du die Dateiendung der finalen DVD-Ausgabe fest.

Greift in: - finalen Dateinamen - Containerformat der DVD-Ausgabe

Praxis: - Dieses Feld ist vom Blu-ray-Format getrennt, damit beide Profile unabh\u00e4ngig voneinander arbeiten k\u00f6nnen.

"},{"location":"configuration/settings-reference/#mkvmerge-kommando","title":"mkvmerge Kommando","text":"

Standard: mkvmerge

Hier gibst du den Befehl oder Pfad zu mkvmerge an.

Greift in: - Multipart-Film-Zusammenf\u00fchrungen

Praxis: - Relevant, wenn du mehrteilige Filme oder Disc-Splits sp\u00e4ter in eine zusammenh\u00e4ngende Ausgabe \u00fcberf\u00fchren willst.

"},{"location":"configuration/settings-reference/#ausgeblendete-felder","title":"Ausgeblendete Felder","text":"

Einige technische Systemfelder sind im Schema vorhanden, werden aber im normalen Formular nicht aktiv angeboten oder nur intern benutzt. In der Doku sind sie oben trotzdem erkl\u00e4rt, damit auch Altdaten, API-F\u00e4lle und Spezialsetups nachvollziehbar bleiben.

"},{"location":"deployment/","title":"Anhang: Deployment","text":"

Technische Betriebsdokumentation f\u00fcr Entwicklung und Produktion.

"},{"location":"deployment/development/","title":"Entwicklungsumgebung","text":""},{"location":"deployment/development/#voraussetzungen","title":"Voraussetzungen","text":""},{"location":"deployment/development/#schnellstart","title":"Schnellstart","text":"
./start.sh\n

Startet:

Stoppen: Ctrl+C.

"},{"location":"deployment/development/#manuell","title":"Manuell","text":""},{"location":"deployment/development/#backend","title":"Backend","text":"
cd backend\nnpm install\nnpm run dev\n
"},{"location":"deployment/development/#frontend","title":"Frontend","text":"
cd frontend\nnpm install\nnpm run dev\n
"},{"location":"deployment/development/#vite-proxy-dev","title":"Vite-Proxy (Dev)","text":"

frontend/vite.config.js proxied standardm\u00e4\u00dfig:

"},{"location":"deployment/development/#remote-dev-optional","title":"Remote-Dev (optional)","text":"

Beispiel frontend/.env.local:

VITE_API_BASE=http://192.168.1.100:3001/api\nVITE_WS_URL=ws://192.168.1.100:3001/ws\nVITE_PUBLIC_ORIGIN=http://192.168.1.100:5173\nVITE_ALLOWED_HOSTS=192.168.1.100,ripster.local\nVITE_HMR_PROTOCOL=ws\nVITE_HMR_HOST=192.168.1.100\nVITE_HMR_CLIENT_PORT=5173\n
"},{"location":"deployment/development/#nutzliche-kommandos","title":"N\u00fctzliche Kommandos","text":"
# Root dev (backend + frontend)\nnpm run dev\n\n# einzeln\nnpm run dev:backend\nnpm run dev:frontend\n\n# Frontend Build\nnpm run build:frontend\n
"},{"location":"deployment/production/","title":"Produktions-Deployment","text":""},{"location":"deployment/production/#automatische-installation-empfohlen","title":"Automatische Installation (empfohlen)","text":"

Das mitgelieferte install.sh richtet Ripster vollautomatisch ein \u2013 inklusive Node.js, MakeMKV, HandBrake, nginx und systemd-Dienst.

Unterst\u00fctzte Systeme laut Script: Debian, Ubuntu, Linux Mint, Pop!_OS Voraussetzung: root-Rechte, Internetzugang

"},{"location":"deployment/production/#schnellstart-via-curl","title":"Schnellstart via curl","text":"
curl -fsSL https://raw.githubusercontent.com/Mboehmlaender/ripster/main/install.sh | sudo bash\n

Oder mit wget:

wget -qO- https://raw.githubusercontent.com/Mboehmlaender/ripster/main/install.sh | sudo bash\n

Optionen nur via Datei

Beim Pipen von curl/wget k\u00f6nnen keine Argumente \u00fcbergeben werden. F\u00fcr benutzerdefinierte Optionen zuerst herunterladen und dann mit sudo bash install.sh [Optionen] ausf\u00fchren.

"},{"location":"deployment/production/#optionen","title":"Optionen","text":"Option Standard Beschreibung --branch <branch> dev Git-Branch f\u00fcr die Installation --dir <pfad> /opt/ripster Installationsverzeichnis --user <benutzer> ripster Systembenutzer f\u00fcr den Dienst --port <port> 3001 Backend-Port --host <hostname> Auto (Maschinen-IP) Hostname/IP f\u00fcr die Weboberfl\u00e4che --no-makemkv \u2013 MakeMKV-Installation \u00fcberspringen --no-handbrake \u2013 HandBrake-Installation \u00fcberspringen --no-nginx \u2013 nginx-Einrichtung \u00fcberspringen --reinstall \u2013 Bestehende Installation aktualisieren (Daten bleiben erhalten) -h, --help \u2013 Hilfe anzeigen"},{"location":"deployment/production/#beispiele","title":"Beispiele","text":"
# Standard-Installation\nsudo bash install.sh\n\n# Anderen Branch und Port verwenden\nsudo bash install.sh --branch dev --port 8080\n\n# Ohne MakeMKV (bereits installiert)\nsudo bash install.sh --no-makemkv\n\n# Bestehende Installation aktualisieren\nsudo bash install.sh --reinstall\n\n# Ohne nginx (eigener Reverse-Proxy)\nsudo bash install.sh --no-nginx --host mein-server.local\n
"},{"location":"deployment/production/#was-das-skript-erledigt","title":"Was das Skript erledigt","text":"
  1. Systempr\u00fcfung \u2013 OS-Erkennung und Root-Check
  2. Systempakete \u2013 curl, wget, git, mediainfo, udev u. a.
  3. Node.js 20 \u2013 via NodeSource, falls noch nicht installiert
  4. MakeMKV \u2013 aktuelle Version wird aus dem offiziellen Forum ermittelt und aus dem Quellcode kompiliert (kann mit --no-makemkv \u00fcbersprungen werden)
  5. HandBrake \u2013 interaktive Auswahl:
    • Option 1: Standard (apt install handbrake-cli)
    • Option 2: Geb\u00fcndelte GPU-Version mit NVDEC aus bin/HandBrakeCLI
  6. Systembenutzer ripster \u2013 ohne Login-Shell und ohne Home-Verzeichnis; Gruppen werden (falls vorhanden) erg\u00e4nzt: cdrom, optical, disk, video, render
  7. Repository \u2013 klont Branch nach --dir (bei --reinstall: sichert backend/data, aktualisiert Repo, stellt Daten wieder her)
  8. Verzeichnisse \u2013 stellt u. a. sicher: backend/data, backend/logs, backend/data/output/raw, backend/data/output/movies, backend/data/logs
  9. npm-Abh\u00e4ngigkeiten \u2013 Root, Backend (nur production), Frontend
  10. Frontend-Build \u2013 npm run build mit relativen API-URLs (nginx-kompatibel)
  11. Backend .env \u2013 wird automatisch generiert (bei --reinstall bleibt bestehende .env erhalten)
  12. Berechtigungen \u2013 zun\u00e4chst ripster:ripster auf Installationsverzeichnis; bei sudo-Aufruf werden Output-/Log-Ordner auf <aufrufender user>:ripster mit 775 gesetzt; .env wird auf 600 gesetzt
  13. MakeMKV User-Ordner \u2013 erstellt bei sudo-Aufruf ~/.MakeMKV f\u00fcr den aufrufenden Benutzer
  14. systemd-Dienst \u2013 ripster-backend.service erstellt, aktiviert und gestartet
  15. nginx \u2013 konfiguriert als Reverse-Proxy f\u00fcr Frontend, /api/ und /ws (kann mit --no-nginx \u00fcbersprungen werden)
"},{"location":"deployment/production/#nach-der-installation","title":"Nach der Installation","text":"
# Status pr\u00fcfen\nsudo systemctl status ripster-backend\n\n# Logs verfolgen\nsudo journalctl -u ripster-backend -f\n\n# Neustart\nsudo systemctl restart ripster-backend\n\n# Aktualisieren\nsudo bash /opt/ripster/install.sh --reinstall\n

Zugriff: http://<Maschinen-IP> (oder der mit --host angegebene Hostname)

"},{"location":"deployment/production/#handbrake-modus-gpunvdec","title":"HandBrake-Modus (GPU/NVDEC)","text":"

Bei nicht-interaktiver Ausf\u00fchrung (Pipe von curl) wird automatisch die Standard-Version gew\u00e4hlt. F\u00fcr die GPU-Version zuerst herunterladen:

curl -fsSL https://raw.githubusercontent.com/Mboehmlaender/ripster/main/install.sh -o install.sh\nsudo bash install.sh\n# \u2192 Interaktive Auswahl: Option 2 f\u00fcr NVDEC\n

Das geb\u00fcndelte Binary liegt unter bin/HandBrakeCLI und wird nach /usr/local/bin/HandBrakeCLI kopiert.

"},{"location":"deployment/production/#manuelle-installation","title":"Manuelle Installation","text":"

Die folgenden Abschnitte beschreiben die einzelnen Schritte f\u00fcr manuelle oder angepasste Setups.

"},{"location":"deployment/production/#empfohlene-architektur","title":"Empfohlene Architektur","text":"
Client\n  -> nginx (Reverse Proxy + statisches Frontend)\n    -> Backend API/WebSocket (Node.js, Port 3001)\n

Wichtig: Das Backend serviert im aktuellen Stand keine frontend/dist-Dateien automatisch.

"},{"location":"deployment/production/#1-frontend-builden","title":"1) Frontend builden","text":"
cd frontend\nnpm install\nnpm run build\n

Artefakte liegen in frontend/dist/.

"},{"location":"deployment/production/#2-backend-als-systemd-service","title":"2) Backend als systemd-Service","text":"

Beispiel /etc/systemd/system/ripster-backend.service:

[Unit]\nDescription=Ripster Backend\nAfter=network.target\n\n[Service]\nType=simple\nUser=ripster\nWorkingDirectory=/opt/ripster/backend\nExecStart=/usr/bin/env node src/index.js\nRestart=on-failure\nRestartSec=5\nEnvironment=NODE_ENV=production\nEnvironment=PORT=3001\nEnvironment=LOG_LEVEL=info\n\n[Install]\nWantedBy=multi-user.target\n

Aktivieren:

sudo systemctl daemon-reload\nsudo systemctl enable --now ripster-backend\nsudo systemctl status ripster-backend\n
"},{"location":"deployment/production/#3-nginx-konfigurieren","title":"3) nginx konfigurieren","text":"

Beispiel /etc/nginx/sites-available/ripster:

server {\n    listen 80;\n    server_name ripster.local;\n    client_max_body_size 8G;\n\n    root /opt/ripster/frontend/dist;\n    index index.html;\n\n    location / {\n        try_files $uri $uri/ /index.html;\n    }\n\n    location /api/ {\n        proxy_pass http://127.0.0.1:3001;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n    }\n\n    location /ws {\n        proxy_pass http://127.0.0.1:3001;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n        proxy_set_header Host $host;\n    }\n}\n

Aktivieren:

sudo ln -s /etc/nginx/sites-available/ripster /etc/nginx/sites-enabled/\nsudo nginx -t\nsudo systemctl reload nginx\n

Hinweis: Fuer groessere Uploads wie .aax-Audiobooks muss client_max_body_size ausreichend hoch gesetzt sein. Im mitgelieferten Beispiel sind 8G hinterlegt.

"},{"location":"deployment/production/#datenbank-backup","title":"Datenbank-Backup","text":"
sqlite3 /opt/ripster/backend/data/ripster.db \\\n  \".backup '/var/backups/ripster-$(date +%Y%m%d).db'\"\n
"},{"location":"deployment/production/#sicherheit","title":"Sicherheit","text":""},{"location":"getting-started/","title":"Benutzerhandbuch \u00dcberblick","text":"

Dieses Kapitel ist f\u00fcr den Betrieb von Ripster im Alltag geschrieben.

"},{"location":"getting-started/#zielgruppe","title":"Zielgruppe","text":""},{"location":"getting-started/#kapitelstruktur","title":"Kapitelstruktur","text":"Kapitel Zweck Voraussetzungen Produktions- vs. Dev-Voraussetzungen klar trennen Installation Ripster aufsetzen und starten Ersteinrichtung Pfade, Tools und Metadaten korrekt setzen Erster Lauf Ein kompletter Job von Disc bis Datei GUI-Seiten Alle Ansichten und Aktionen im Detail Workflows Typische Abl\u00e4ufe und Entscheidungen aus User-Sicht"},{"location":"getting-started/#wenn-du-neu-startest","title":"Wenn du neu startest","text":"
  1. Voraussetzungen
  2. Installation
  3. Ersteinrichtung
  4. Erster Lauf
"},{"location":"getting-started/#wenn-ripster-bereits-lauft","title":"Wenn Ripster bereits l\u00e4uft","text":"
  1. GUI-Seiten
  2. Workflows
  3. Bei Detailfragen: Technischer Anhang
"},{"location":"getting-started/configuration/","title":"Ersteinrichtung","text":"

Diese Seite ist die Betriebs-Checkliste vor dem ersten produktiven Lauf.

"},{"location":"getting-started/configuration/#ziel-der-ersteinrichtung","title":"Ziel der Ersteinrichtung","text":"

Vor dem ersten Job sollten f\u00fcnf Bereiche sauber gesetzt sein:

  1. Pfade und Templates
  2. Laufwerk und Disc-Erkennung
  3. Metadatenzugang \u00fcber TMDb
  4. Encode-Standards und Queue-Regeln
  5. optionale Automatisierung und Benachrichtigungen
"},{"location":"getting-started/configuration/#empfohlene-reihenfolge","title":"Empfohlene Reihenfolge","text":""},{"location":"getting-started/configuration/#1-basis-in-settings-konfiguration","title":"1. Basis in Settings -> Konfiguration","text":"

Pr\u00fcfe zuerst diese Kernfelder:

Danach speichern.

"},{"location":"getting-started/configuration/#2-pfade-und-templates-bewusst-festlegen","title":"2. Pfade und Templates bewusst festlegen","text":"

Wichtig f\u00fcr den Alltag:

Wenn du auf NAS, USB oder mit anderen Benutzern/Gruppen schreiben willst, pr\u00fcfe auch die jeweils zugeh\u00f6rigen Eigent\u00fcmer ...-Felder.

"},{"location":"getting-started/configuration/#3-laufwerk-und-automatische-erkennung-prufen","title":"3. Laufwerk und automatische Erkennung pr\u00fcfen","text":"

Relevant:

Empfehlung:

"},{"location":"getting-started/configuration/#4-tmdb-und-metadatenverhalten-festlegen","title":"4. TMDb und Metadatenverhalten festlegen","text":"

Relevant:

Diese Einstellungen wirken direkt in Metadatensuche, Serienzuordnung, Nachpflege von Covern und im finalen Output.

"},{"location":"getting-started/configuration/#5-encode-und-review-standards-festlegen","title":"5. Encode- und Review-Standards festlegen","text":"

F\u00fcr Video-Workflows besonders wichtig:

Praxis:

"},{"location":"getting-started/configuration/#6-queue-verhalten-definieren","title":"6. Queue-Verhalten definieren","text":"

Stelle diese vier Felder bewusst ein:

Damit steuerst du, wie aggressiv Ripster mehrere Jobs gleichzeitig startet.

"},{"location":"getting-started/configuration/#7-optional-user-presets-und-standard-zuordnungen","title":"7. Optional: User-Presets und Standard-Zuordnungen","text":"

Unter Settings -> Encode-Presets kannst du:

Diese Defaults wirken sp\u00e4ter in der Review automatisch vorbef\u00fcllend.

"},{"location":"getting-started/configuration/#8-optional-benachrichtigungen","title":"8. Optional: Benachrichtigungen","text":"

Pr\u00fcfe:

Danach in Settings den Button PushOver Test ausf\u00fchren.

"},{"location":"getting-started/configuration/#9-optional-automatisierung","title":"9. Optional: Automatisierung","text":"

Erst wenn die Grundkonfiguration stabil ist:

  1. Skripte anlegen und testen
  2. Skriptketten aufbauen
  3. Cronjobs aktivieren
"},{"location":"getting-started/configuration/#funktionsprufung","title":"Funktionspr\u00fcfung","text":"

Ein sinnvoller Kurztest:

  1. Disc in Ripper erkennen lassen
  2. Analyse starten
  3. TMDb-Metadaten \u00fcbernehmen
  4. ggf. Playlist-/RAW-Entscheidung durchlaufen
  5. bis Bereit zum Encodieren kommen
  6. Encode starten
  7. Ergebnis in Historie pr\u00fcfen
"},{"location":"getting-started/configuration/#typische-konfigurationsfehler","title":"Typische Konfigurationsfehler","text":"Symptom H\u00e4ufige Ursache Disc wird nicht erkannt Laufwerksmodus oder Auto-Erkennung passt nicht Playlist-Auswahl wirkt unplausibel Minimale Titell\u00e4nge oder TMDb Runtime-Abzug ... ist zu streng/zu locker falsche Spuren sind in der Review vorausgew\u00e4hlt Review-Sprachfilter oder HandBrake-Args greifen unerwartet Ausgabe landet am falschen Ort Profilpfade oder Templates greifen \u00fcber Fallback Queue verh\u00e4lt sich unerwartet Parallele Jobs, CD-Limit und Gesamtlimit widersprechen sich"},{"location":"getting-started/configuration/#weiter","title":"Weiter","text":""},{"location":"getting-started/installation/","title":"Installation","text":"

Die empfohlene Installation startet immer \u00fcber setup.sh. setup.sh l\u00e4dt das passende install.sh aus dem gew\u00fcnschten Branch und \u00fcbergibt alle weiteren Parameter unver\u00e4ndert an den eigentlichen Installer.

Wichtig:

"},{"location":"getting-started/installation/#voraussetzungen","title":"Voraussetzungen","text":"

Der Installer erkennt aktuell:

"},{"location":"getting-started/installation/#standardinstallation","title":"Standardinstallation","text":"
wget -qO setup.sh https://raw.githubusercontent.com/Mboehmlaender/ripster/main/setup.sh\nbash setup.sh\n

Ohne --branch fragt setup.sh interaktiv nach dem gew\u00fcnschten Branch.

Die typischen Branches sind:

"},{"location":"getting-started/installation/#installation-mit-branch-oder-optionen","title":"Installation mit Branch oder Optionen","text":"

Beispiele:

bash setup.sh --branch main\nbash setup.sh --branch dev\nbash setup.sh --branch dev --dir /opt/ripster --user ripster --port 3001 --host 192.168.1.10\n

setup.sh wertet selbst nur --branch aus. Alles andere \u00fcbernimmt install.sh.

"},{"location":"getting-started/installation/#wichtige-optionen-von-installsh","title":"Wichtige Optionen von install.sh","text":"Option Default Zweck --branch <branch> dev installiert genau diesen Git-Branch --dir <pfad> /opt/ripster Installationsverzeichnis --user <benutzer> ripster Systembenutzer f\u00fcr den Dienst --port <port> 3001 Backend-Port --host <hostname|ip> automatisch ermittelte Host-IP Hostname/IP f\u00fcr Webzugriff und CORS --no-makemkv aus MakeMKV nicht installieren --no-handbrake aus HandBrake nicht installieren --no-nginx aus nginx-Setup \u00fcberspringen --no-system-deps aus Systemabh\u00e4ngigkeiten nicht nachinstallieren --reinstall aus bestehende Installation aktualisieren"},{"location":"getting-started/installation/#was-der-installer-einrichtet","title":"Was der Installer einrichtet","text":"

Typischer Ablauf:

  1. Betriebssystem, Root-Rechte und Host pr\u00fcfen
  2. Systemabh\u00e4ngigkeiten installieren
  3. Node.js 20 sicherstellen
  4. optional MakeMKV installieren
  5. optional HandBrakeCLI installieren
  6. optional nginx konfigurieren
  7. Repository nach --dir klonen oder aktualisieren
  8. Backend-/Frontend-Abh\u00e4ngigkeiten installieren
  9. Frontend bauen
  10. backend/.env und Laufzeitverzeichnisse vorbereiten
  11. ripster-backend.service anlegen und starten
"},{"location":"getting-started/installation/#dienst-prufen","title":"Dienst pr\u00fcfen","text":"
sudo systemctl status ripster-backend\n

Typische Aufrufe im Betrieb:

sudo journalctl -u ripster-backend -f\nsudo systemctl restart ripster-backend\n
"},{"location":"getting-started/installation/#update-einer-bestehenden-installation","title":"Update einer bestehenden Installation","text":"

Standard:

sudo bash /opt/ripster/install.sh --reinstall\n

Wenn die Installation mit abweichenden Kernparametern eingerichtet wurde, dieselben Parameter wieder mitgeben:

sudo bash /opt/ripster/install.sh --reinstall --dir /opt/ripster --user ripster --port 3001 --host 192.168.1.10\n

Alternativ kannst du auch erneut \u00fcber setup.sh gehen:

sudo bash /opt/ripster/setup.sh --reinstall\n

--reinstall aktualisiert die Installation, beh\u00e4lt aber die persistenten Daten der bestehenden Instanz.

"},{"location":"getting-started/installation/#danach-weiter","title":"Danach weiter","text":"
  1. Ersteinrichtung
  2. Erster Lauf
"},{"location":"getting-started/prerequisites/","title":"Voraussetzungen","text":"

Die Voraussetzungen h\u00e4ngen davon ab, ob du Ripster produktiv installieren oder lokal entwickeln willst.

"},{"location":"getting-started/prerequisites/#produktionsbetrieb-mit-setupsh","title":"Produktionsbetrieb mit setup.sh","text":"

F\u00fcr den normalen Betrieb brauchst du nur die Basisvoraussetzungen. Die eigentlichen Tools werden vom Installer eingerichtet, sofern du sie nicht bewusst mit --no-* \u00fcberspringst.

"},{"location":"getting-started/prerequisites/#pflicht","title":"Pflicht","text":"

Der Installer unterst\u00fctzt aktuell:

Standard-Einstieg:

wget -qO setup.sh https://raw.githubusercontent.com/Mboehmlaender/ripster/main/setup.sh\nbash setup.sh\n
"},{"location":"getting-started/prerequisites/#laufwerk-kurz-prufen","title":"Laufwerk kurz pr\u00fcfen","text":"
ls /dev/sr*\nlsblk | grep rom\n
"},{"location":"getting-started/prerequisites/#optional-vorab","title":"Optional vorab","text":"

Beides kann auch erst nach der Installation in Settings gesetzt werden.

"},{"location":"getting-started/prerequisites/#entwicklungsmodus","title":"Entwicklungsmodus","text":"

Wenn du lokal entwickelst (./start.sh, npm run dev), gelten zus\u00e4tzliche Voraussetzungen:

Details: Entwicklungsumgebung

"},{"location":"getting-started/prerequisites/#abschluss-checkliste","title":"Abschluss-Checkliste","text":""},{"location":"getting-started/quickstart/","title":"Erster Lauf","text":"

Dieser Ablauf f\u00fchrt einen typischen Disc-Job von Erkennung bis fertiger Datei durch.

"},{"location":"getting-started/quickstart/#1-disc-erkennen","title":"1. Disc erkennen","text":"
  1. Ripper \u00f6ffnen
  2. Disc einlegen
  3. auf Medium erkannt warten

Pr\u00fcfen:

Relevante Settings:

"},{"location":"getting-started/quickstart/#2-analyse-starten","title":"2. Analyse starten","text":"

Aktion:

Erwartung:

Relevantes Setting:

"},{"location":"getting-started/quickstart/#3-metadaten-in-tmdb-bestatigen","title":"3. Metadaten in TMDb best\u00e4tigen","text":"

Im Dialog:

  1. Treffer suchen oder filtern
  2. Film oder Serie ausw\u00e4hlen
  3. bei Serien zus\u00e4tzlich Disc-Nummer setzen
  4. Auswahl \u00fcbernehmen

M\u00f6gliche Abzweigungen:

Relevante Settings:

"},{"location":"getting-started/quickstart/#4-raw-und-playlist-entscheidungen","title":"4. RAW- und Playlist-Entscheidungen","text":"

Je nach Disc-Situation geht es jetzt unterschiedlich weiter.

"},{"location":"getting-started/quickstart/#normalfall","title":"Normalfall","text":"

Startbereit -> Rippen -> Mediainfo-Pr\u00fcfung

"},{"location":"getting-started/quickstart/#vorhandenes-raw","title":"Vorhandenes RAW","text":"

Kein neuer Rip, sondern erst eine Entscheidung:

"},{"location":"getting-started/quickstart/#playlist-oder-titelauswahl-erforderlich","title":"Playlist- oder Titelauswahl erforderlich","text":"

Bei bestimmten Blu-ray-/DVD-F\u00e4llen erscheint Warte auf Auswahl.

Dann best\u00e4tigst du:

Relevante Settings:

"},{"location":"getting-started/quickstart/#5-encode-review-abschlieen","title":"5. Encode-Review abschlie\u00dfen","text":"

Bei Bereit zum Encodieren pr\u00fcfst du:

Dann:

Relevante Settings:

"},{"location":"getting-started/quickstart/#6-encoding-uberwachen","title":"6. Encoding \u00fcberwachen","text":"

W\u00e4hrend Encodieren:

Relevante Settings:

"},{"location":"getting-started/quickstart/#7-ergebnis-verifizieren","title":"7. Ergebnis verifizieren","text":"

Nach Fertig:

  1. Historie \u00f6ffnen
  2. Jobdetail pr\u00fcfen
  3. Output-Pfad und Log kontrollieren

Kontrollpunkte:

Relevante Settings:

"},{"location":"getting-started/quickstart/#8-typische-folgeaktionen","title":"8. Typische Folgeaktionen","text":""},{"location":"gui/","title":"GUI-Seiten","text":"

Dieses Kapitel ist das Bedienhandbuch f\u00fcr die Oberfl\u00e4chen im Alltag.

"},{"location":"gui/#seitenuberblick","title":"Seiten\u00fcberblick","text":"Seite Rolle im Betrieb Typischer Einsatz Ripper Live-Steuerung der Disc-Pipeline Disc erkennen, Analyse starten, Entscheidungen treffen, Queue steuern Hardware Detailansicht f\u00fcr Live-Monitoring CPU/RAM/GPU und Verlauf pr\u00fcfen Audiobooks AAX-Spezialflow Upload, Kapitelpr\u00fcfung und Encode von Audiobooks Settings Konfiguration und Automatisierung Pfade, Tools, Queue, Presets, Skripte, Cron Historie Nachbearbeitung und Kontrolle Logs, Re-Encode, TMDb-Neuzuordnung, L\u00f6schvorschau Converter dateibasierte Konvertierung Video/Audio/ISO ohne Disc-Rip verarbeiten Downloads ZIP-Exports RAW/Output aus der Historie bereitstellen Database (Expert) Recovery-Sicht orphan RAW finden, pr\u00fcfen und importieren TMDb Migration Sonderseite f\u00fcr Altbest\u00e4nde alte Jobs gesammelt auf TMDb umstellen"},{"location":"gui/#empfohlener-tagesablauf","title":"Empfohlener Tagesablauf","text":"
  1. Ripper, Converter oder Audiobooks: neue Arbeit starten
  2. Historie: Ergebnisse kontrollieren und ggf. nachbearbeiten
  3. Downloads: Artefakte f\u00fcr externe \u00dcbergabe vorbereiten
  4. Settings: Regeln, Presets oder Limits nur kontrolliert anpassen
  5. Hardware: bei Lastspitzen oder Batch-L\u00e4ufen den Verlauf pr\u00fcfen
"},{"location":"gui/#navigation","title":"Navigation","text":"

Direkt in der Top-Navigation:

Zusatzansichten:

"},{"location":"gui/audiobooks/","title":"Audiobooks","text":"

Die Seite Audiobooks ist der spezialisierte Workflow f\u00fcr Audible-*.aax-Dateien.

"},{"location":"gui/audiobooks/#seitenstruktur","title":"Seitenstruktur","text":"

Die Oberfl\u00e4che besteht aus zwei Hauptbereichen:

  1. Audiobooks Upload
  2. Audiobook Jobs
"},{"location":"gui/audiobooks/#1-audiobooks-upload","title":"1. Audiobooks Upload","text":"

Der Upload akzeptiert ausschlie\u00dflich .aax.

"},{"location":"gui/audiobooks/#bedienung","title":"Bedienung","text":"

W\u00e4hrend des Uploads zeigt die UI:

"},{"location":"gui/audiobooks/#ablauf-nach-erfolgreichem-upload","title":"Ablauf nach erfolgreichem Upload","text":""},{"location":"gui/audiobooks/#2-audiobook-jobs","title":"2. Audiobook Jobs","text":"

Die Seite zeigt aktive Jobs. Abgeschlossene Jobs findest du in der Historie.

Ein Job kann eingeklappt oder ausgeklappt werden und zeigt:

"},{"location":"gui/audiobooks/#konfigurierbare-job-parameter","title":"Konfigurierbare Job-Parameter","text":"

Im ausgeklappten Job kannst du setzen:

"},{"location":"gui/audiobooks/#formatverhalten","title":"Formatverhalten","text":"

Wenn du mp3 oder flac w\u00e4hlst, zeigt die UI zus\u00e4tzlich eine Kapitel-Status-Tabelle.

"},{"location":"gui/audiobooks/#activation-bytes","title":"Activation Bytes","text":"

Wenn Ripster f\u00fcr eine Datei keine Activation Bytes verwenden kann, wird im Workflow eine manuelle Eingabe n\u00f6tig.

Wichtig:

"},{"location":"gui/audiobooks/#relevante-settings","title":"Relevante Settings","text":""},{"location":"gui/audiobooks/#so-wirken-die-settings-im-alltag","title":"So wirken die Settings im Alltag","text":""},{"location":"gui/audiobooks/#queue-und-laufzeit","title":"Queue und Laufzeit","text":"

Audiobook-Jobs nutzen dieselbe globale Pipeline wie die anderen Bereiche.

Relevante Settings:

"},{"location":"gui/audiobooks/#typische-fehlerbilder","title":"Typische Fehlerbilder","text":""},{"location":"gui/converter/","title":"Converter","text":"

Die Seite Converter verarbeitet vorhandene Dateien ohne Laufwerks-Rip. Sie ist f\u00fcr Video-, Audio- und ISO-Dateien gedacht, die bereits auf dem System liegen oder hochgeladen werden.

"},{"location":"gui/converter/#betriebsmodell","title":"Betriebsmodell","text":"

Der Converter arbeitet auf dem in Settings festgelegten Converter Raw-Ordner.

Dort landen:

Wichtig:

"},{"location":"gui/converter/#datei-explorer","title":"Datei-Explorer","text":"

Der Explorer zeigt den kompletten Baum unter Converter Raw-Ordner.

Aktionen:

Aktion Wirkung Upload schreibt neue Dateien in den Converter-RAW-Baum Ordner erstellen legt Unterordner an Umbenennen benennt Datei oder Ordner um Verschieben verschiebt Eintr\u00e4ge innerhalb des Raw-Baums L\u00f6schen entfernt Datei oder Ordner dauerhaft Scannen synchronisiert Dateisystem und Converter-Datenbank"},{"location":"gui/converter/#upload-und-scan-regeln","title":"Upload- und Scan-Regeln","text":"

Relevante Settings:

"},{"location":"gui/converter/#joberstellung-aus-explorer-auswahl","title":"Joberstellung aus Explorer-Auswahl","text":"

Es gibt zwei Audio-Strategien:

  1. Ein Job pro Datei
  2. Gemeinsamer Job (Audio)

Verhalten:

Shared-Audio-Job:

"},{"location":"gui/converter/#job-konfiguration","title":"Job-Konfiguration","text":"

Vor dem Start je Job einstellbar:

Spezifika:

"},{"location":"gui/converter/#ausgabe-pfade","title":"Ausgabe-Pfade","text":""},{"location":"gui/converter/#video-iso","title":"Video / ISO","text":""},{"location":"gui/converter/#audio","title":"Audio","text":"

Relevante Settings:

"},{"location":"gui/converter/#queue-und-start","title":"Queue und Start","text":"

Converter-Jobs laufen \u00fcber dieselbe globale Pipeline-Queue wie Ripper und Audiobooks.

Das bedeutet:

Relevante Settings:

"},{"location":"gui/converter/#typische-einsatzfalle","title":"Typische Einsatzf\u00e4lle","text":""},{"location":"gui/converter/#abgrenzung-zu-audiobooks","title":"Abgrenzung zu Audiobooks","text":""},{"location":"gui/database/","title":"Database (Expert)","text":"

/database ist die Recovery- und Expertensicht f\u00fcr F\u00e4lle, in denen Dateisystem und Historie nicht mehr sauber zusammenpassen.

"},{"location":"gui/database/#zugriff","title":"Zugriff","text":""},{"location":"gui/database/#bereich-gefundene-raw-eintrage","title":"Bereich Gefundene RAW-Eintr\u00e4ge","text":"

Dieser Bereich listet RAW-Verzeichnisse ohne zugeordneten Historie-Job.

Aktionen:

"},{"location":"gui/database/#was-bei-job-anlegen-passiert","title":"Was bei Job anlegen passiert","text":"

Typischer Einsatz:

"},{"location":"gui/database/#sicherheits-und-betriebsregeln","title":"Sicherheits- und Betriebsregeln","text":""},{"location":"gui/downloads/","title":"Downloads","text":"

Auf Downloads werden ZIP-Archive f\u00fcr Historie-Artefakte erstellt und bereitgestellt.

"},{"location":"gui/downloads/#was-heruntergeladen-werden-kann","title":"Was heruntergeladen werden kann","text":"

Ein Download-Eintrag referenziert immer einen Historie-Job und genau ein Ziel:

Erzeugt wird ein ZIP-Archiv im Download-Verzeichnis des Backends.

"},{"location":"gui/downloads/#statusmodell","title":"Statusmodell","text":"Status Bedeutung queued Eintrag erstellt, wartet auf Verarbeitung processing ZIP wird gerade gebaut ready Archiv fertig, Download-Link aktiv failed Erzeugung oder Zugriff fehlgeschlagen"},{"location":"gui/downloads/#eintrag-anlegen","title":"Eintrag anlegen","text":"

Startpunkt ist die Historie:

  1. Job \u00f6ffnen.
  2. Download einreihen.
  3. Ziel (RAW oder Output) w\u00e4hlen.
  4. Status in Downloads verfolgen.
"},{"location":"gui/downloads/#wichtige-laufzeitdetails","title":"Wichtige Laufzeitdetails","text":""},{"location":"gui/downloads/#download-auslosen","title":"Download ausl\u00f6sen","text":"

Bei Status ready:

"},{"location":"gui/downloads/#eintrage-entfernen","title":"Eintr\u00e4ge entfernen","text":"

L\u00f6schen entfernt:

Nicht erlaubt:

"},{"location":"gui/downloads/#echtzeitaktualisierung","title":"Echtzeitaktualisierung","text":"

Die Seite reagiert auf DOWNLOADS_UPDATED per WebSocket. Dadurch sind Statuswechsel ohne Reload sichtbar.

"},{"location":"gui/hardware/","title":"Hardware","text":"

Die Seite Hardware ist die ausf\u00fchrliche Detailansicht f\u00fcr das Live-Monitoring aus dem Ripper.

"},{"location":"gui/hardware/#was-die-seite-zeigt","title":"Was die Seite zeigt","text":""},{"location":"gui/hardware/#live-bereich","title":"Live-Bereich","text":"

Oben zeigt die Seite:

Wenn Monitoring deaktiviert ist, f\u00fchrt die Seite direkt zu Settings.

"},{"location":"gui/hardware/#historie","title":"Historie","text":"

Die Historie l\u00e4dt Messpunkte aus dem Backend und zeigt:

Das ist besonders n\u00fctzlich bei:

"},{"location":"gui/hardware/#relevante-settings","title":"Relevante Settings","text":"

Au\u00dferdem sinnvoll:

"},{"location":"gui/history/","title":"Historie","text":"

Historie ist die Kontroll- und Nachbearbeitungsoberfl\u00e4che f\u00fcr alle bereits angelegten Jobs.

"},{"location":"gui/history/#hauptansicht","title":"Hauptansicht","text":"

Filter und Arbeitsmittel:

Jeder Eintrag zeigt auf einen Blick:

"},{"location":"gui/history/#detaildialog","title":"Detaildialog","text":"

Der Detaildialog b\u00fcndelt:

Bei Seriencontainern und Multipart-Jobs wird container- und child-orientiert dargestellt.

"},{"location":"gui/history/#nachbearbeitungsaktionen","title":"Nachbearbeitungsaktionen","text":"Aktion Typischer Einsatz Technische Wirkung TMDb neu zuweisen falsches Match, anderer Film, andere Staffel Metadaten werden neu geschrieben; Poster, Jahr und ggf. Ordnername werden best effort aktualisiert Review neu starten neue Track-/Titelbewertung n\u00f6tig Review wird aus vorhandenem RAW neu aufgebaut RAW neu encodieren neuer Encode mit vorhandenem RAW startet Encode ohne neuen Disc-Rip Encode neu starten gleiche best\u00e4tigte Auswahl erneut fahren letzter best\u00e4tigter Plan wird geladen Retry Rippen Rip oder Analyse erneut ansto\u00dfen neuer Rip-Lauf inklusive RAW-Phase

Relevante Settings:

"},{"location":"gui/history/#loschaktionen-und-vorschau","title":"L\u00f6schaktionen und Vorschau","text":"

Vor dem endg\u00fcltigen L\u00f6schen zeigt Ripster eine Vorschau mit:

Wichtige Punkte:

"},{"location":"gui/history/#serien-und-multipart-sicht","title":"Serien- und Multipart-Sicht","text":""},{"location":"gui/history/#serien","title":"Serien","text":""},{"location":"gui/history/#multipart","title":"Multipart","text":""},{"location":"gui/history/#logs-sinnvoll-nutzen","title":"Logs sinnvoll nutzen","text":"

Empfehlung:

  1. erst den Tail pr\u00fcfen
  2. dann die Stelle im Log eingrenzen
  3. anschlie\u00dfend die passende Wiederanlauf-Aktion w\u00e4hlen
"},{"location":"gui/ripper/","title":"Ripper","text":"

Die Seite Ripper ist die Live-Steuerung der Disc-Pipeline. Hier laufen Disc-Erkennung, Queue, manuelle Entscheidungen, Review und aktive Jobs zusammen.

"},{"location":"gui/ripper/#seitenaufbau","title":"Seitenaufbau","text":"

Die wichtigsten Bereiche:

  1. Hardware
  2. Job Queue
  3. Skript- / Cron-Status
  4. Job \u00dcbersicht
  5. Disk-Information
"},{"location":"gui/ripper/#1-hardware","title":"1. Hardware","text":"

Die Hardware-Karte zeigt live:

Aktionen:

Relevante Settings:

"},{"location":"gui/ripper/#2-job-queue","title":"2. Job Queue","text":"

Es gibt zwei operative Zonen:

M\u00f6gliche Queue-Eintr\u00e4ge:

Wichtige Regeln:

Relevante Settings:

"},{"location":"gui/ripper/#3-skript-cron-status","title":"3. Skript- / Cron-Status","text":"

Zeigt Runtime-Aktivit\u00e4ten:

Aktionen:

"},{"location":"gui/ripper/#4-job-ubersicht","title":"4. Job \u00dcbersicht","text":"

Die Jobliste ist der zentrale Arbeitsbereich. Ein Klick \u00f6ffnet den jeweiligen Pipeline-Status.

"},{"location":"gui/ripper/#zustandsabhangige-hauptaktionen","title":"Zustandsabh\u00e4ngige Hauptaktionen","text":"Zustand Typische Aktion Ergebnis Medium erkannt Analyse starten MakeMKV-Analyse beginnt Metadatenauswahl Metadaten \u00f6ffnen TMDb-Dialog f\u00fcr Film/Serie Warte auf Auswahl Entscheidung best\u00e4tigen Flow geht an die passende Stelle weiter Startbereit Job starten Rip oder RAW-basierte Pr\u00fcfung startet Bereit zum Encodieren Encoding starten HandBrake startet mit best\u00e4tigter Auswahl laufend Abbrechen Job wird gestoppt Fehler / Abgebrochen Retry Rippen neuer Rip-Anlauf"},{"location":"gui/ripper/#was-warte-auf-auswahl-heute-bedeuten-kann","title":"Was Warte auf Auswahl heute bedeuten kann","text":"

Der Status ist nicht nur f\u00fcr eine einzige Entscheidung da. Im aktuellen Stand gibt es drei typische F\u00e4lle:

"},{"location":"gui/ripper/#vorhandenes-raw","title":"Vorhandenes RAW","text":"

Ripster hat zu den Metadaten bereits ein passendes RAW gefunden. Dann entscheidest du:

"},{"location":"gui/ripper/#playlist-auswahl","title":"Playlist-Auswahl","text":"

Bei mehrdeutigen Blu-rays oder bestimmten DVD-F\u00e4llen musst du eine Playlist best\u00e4tigen. Die Liste zeigt unter anderem:

Relevante Settings:

"},{"location":"gui/ripper/#titelauswahl-playall-grenzfall","title":"Titelauswahl / PlayAll-Grenzfall","text":"

Wenn Ripster mehrere HandBrake-Titel als plausibel erkannt hat, musst du einen oder mehrere Titel best\u00e4tigen. Bei Serien kann das der Grenzfall PlayAll oder Doppelfolge? sein.

"},{"location":"gui/ripper/#5-review-bereich-bereit-zum-encodieren","title":"5. Review-Bereich (Bereit zum Encodieren)","text":"

Hier triffst du die eigentliche Encode-Entscheidung.

Du legst fest:

Wichtig:

"},{"location":"gui/ripper/#welche-settings-hier-direkt-sichtbar-werden","title":"Welche Settings hier direkt sichtbar werden","text":""},{"location":"gui/ripper/#raw-ordnerphasen","title":"RAW-Ordnerphasen","text":"

Der Ripper arbeitet mit drei RAW-Zust\u00e4nden:

Das ist wichtig f\u00fcr:

"},{"location":"gui/ripper/#disk-information","title":"Disk-Information","text":"

Zeigt aktuelle Laufwerksdaten:

Aktionen:

Hinweis:

"},{"location":"gui/ripper/#wichtige-dialoge","title":"Wichtige Dialoge","text":""},{"location":"gui/ripper/#metadaten-auswahlen","title":"Metadaten ausw\u00e4hlen","text":"

Im Dialog best\u00e4tigst du Film- oder Serienmetadaten aus TMDb.

Sonderf\u00e4lle:

"},{"location":"gui/ripper/#vorhandenes-raw-erkannt","title":"Vorhandenes RAW erkannt","text":"

Wenn zu den Metadaten bereits RAW existiert, fordert Ripster eine explizite Entscheidung:

"},{"location":"gui/ripper/#queue-eintrag-einfugen","title":"Queue-Eintrag einf\u00fcgen","text":"

Du kannst gezielt ab Position einf\u00fcgen:

"},{"location":"gui/ripper/#audible-activation-bytes-eintragen","title":"Audible Activation Bytes eintragen","text":"

Wenn f\u00fcr eine AAX-Datei keine Activation Bytes verf\u00fcgbar sind, \u00f6ffnet Ripster einen Dialog zur manuellen Eingabe.

"},{"location":"gui/ripper/#siehe-auch","title":"Siehe auch","text":""},{"location":"gui/settings/","title":"Settings","text":"

Die Seite Settings ist das Kontrollzentrum f\u00fcr Laufzeitverhalten, Standardwerte und Automatisierung. Alles, was sp\u00e4tere Jobs automatisch tun oder vorschlagen, wird hier vorbereitet.

"},{"location":"gui/settings/#tab-uberblick","title":"Tab-\u00dcberblick","text":"Tab Zweck Konfiguration alle fachlichen Einstellungen aus der GUI Scripte einzelne Bash-Skripte anlegen, testen und sortieren Skriptketten mehrstufige Abl\u00e4ufe aus Skript- und Warte-Schritten bauen Encode-Presets eigene Video-Presets und Standard-Zuordnungen pflegen Cronjobs zeitgesteuerte Ausf\u00fchrung von Skripten oder Ketten"},{"location":"gui/settings/#tab-konfiguration","title":"Tab Konfiguration","text":""},{"location":"gui/settings/#bedienlogik","title":"Bedienlogik","text":"
  1. Felder \u00e4ndern
  2. \u00c4nderungen speichern klicken
  3. erst dann gelten die neuen Werte f\u00fcr k\u00fcnftige Starts, Reviews oder Scheduler

Ausnahmen:

"},{"location":"gui/settings/#toolbar-aktionen","title":"Toolbar-Aktionen","text":""},{"location":"gui/settings/#was-die-kategorien-im-alltag-steuern","title":"Was die Kategorien im Alltag steuern","text":""},{"location":"gui/settings/#benachrichtigungen","title":"Benachrichtigungen","text":"

Hier steuerst du zwei Dinge:

Wichtig:

"},{"location":"gui/settings/#laufwerk","title":"Laufwerk","text":"

Diese Kategorie beeinflusst, wie Ripster optische Laufwerke findet und \u00fcberwacht.

Typische Fragen:

Das ist vor allem wichtig bei:

"},{"location":"gui/settings/#logging","title":"Logging","text":"

Diese Felder \u00e4ndern nicht die Job-Logs auf Platte, sondern die Ausgabe im Server-Terminal.

Damit steuerst du zum Beispiel:

"},{"location":"gui/settings/#metadaten","title":"Metadaten","text":"

Hier legst du fest, wie Ripster mit TMDb, Covern und NFO-Dateien umgeht.

Besonders wichtig:

"},{"location":"gui/settings/#monitoring","title":"Monitoring","text":"

Steuert das Hardware-Monitoring f\u00fcr:

Diese Werte erscheinen:

"},{"location":"gui/settings/#pfade","title":"Pfade","text":"

Hier legst du fest, wohin Ripster schreibt und wie Dateien benannt werden.

Die Felder steuern:

Praxisbeispiele:

"},{"location":"gui/settings/#converter","title":"Converter","text":"

Diese Kategorie wirkt nur auf die Seite Converter.

Sie steuert:

"},{"location":"gui/settings/#tools","title":"Tools","text":"

Diese Kategorie entscheidet \u00fcber das technische Verhalten der eigentlichen Pipeline.

Dazu geh\u00f6ren:

F\u00fcr die Nutzer-Workflows besonders relevant:

"},{"location":"gui/settings/#kategorie-pfade-besondere-interaktion","title":"Kategorie Pfade: Besondere Interaktion","text":"

Die Pfad-Kategorie hat eine eigene Darstellung:

"},{"location":"gui/settings/#spezial-editoren","title":"Spezial-Editoren","text":""},{"location":"gui/settings/#wichtig-fur-reviews-und-workflows","title":"Wichtig f\u00fcr Reviews und Workflows","text":"

Die Seite Settings bestimmt direkt, was Nutzer sp\u00e4ter im Workflow sehen:

F\u00fcr die detaillierte Feld-f\u00fcr-Feld-Erkl\u00e4rung jeder einzelnen Einstellung nutze die Seite Einstellungsreferenz. Dort ist jedes sichtbare Feld aus der GUI mit Wirkung, Workflow-Bezug und typischem Einsatz beschrieben.

"},{"location":"gui/settings/#tab-scripte","title":"Tab Scripte","text":"

Funktionen:

Das Testergebnis zeigt:

"},{"location":"gui/settings/#tab-skriptketten","title":"Tab Skriptketten","text":"

Skriptketten bestehen aus Schritten:

Funktionen:

Wichtig:

"},{"location":"gui/settings/#tab-encode-presets","title":"Tab Encode-Presets","text":"

Hier werden Video-Standards f\u00fcr Disc- und Converter-Workflows verwaltet.

"},{"location":"gui/settings/#standard-zuordnungen","title":"Standard-Zuordnungen","text":"

Es gibt vier feste Slots:

Wenn f\u00fcr einen Workflow hier ein Default gesetzt ist, erscheint dieses User-Preset sp\u00e4ter in der Review bereits vorausgew\u00e4hlt.

"},{"location":"gui/settings/#preset-inhalt","title":"Preset-Inhalt","text":"

Ein User-Preset besteht aus:

"},{"location":"gui/settings/#tab-cronjobs","title":"Tab Cronjobs","text":"

Funktionen:

Die Runtime-Aktivit\u00e4ten der laufenden Cronjobs werden zus\u00e4tzlich live angezeigt.

"},{"location":"gui/settings/#expertenbereich-activation-bytes-cache","title":"Expertenbereich: Activation Bytes Cache","text":"

Dieser Block wird nur im Expertenmodus angezeigt.

Er zeigt lokal bekannte AAX-Activation-Bytes mit:

Das hilft bei Audiobook-Workflows, wenn dieselbe Datei oder derselbe Hash sp\u00e4ter erneut auftaucht.

"},{"location":"gui/settings/#validierung-von-template-feldern","title":"Validierung von Template-Feldern","text":"

Template-Felder akzeptieren nur:

Damit verhindert Ripster fehlerhafte Dateinamen schon beim Speichern.

"},{"location":"gui/settings/#siehe-auch","title":"Siehe auch","text":""},{"location":"gui/tmdb-migration/","title":"TMDb Migration","text":"

Die Seite TMDb Migration ist eine Sonderansicht f\u00fcr \u00e4ltere Bestandsjobs, die noch nicht als auf TMDb migriert markiert sind.

"},{"location":"gui/tmdb-migration/#zugriff","title":"Zugriff","text":""},{"location":"gui/tmdb-migration/#wofur-die-seite-gedacht-ist","title":"Wof\u00fcr die Seite gedacht ist","text":"

Typische Einsatzf\u00e4lle:

"},{"location":"gui/tmdb-migration/#funktionsweise","title":"Funktionsweise","text":"

Die Seite l\u00e4dt offene Migrationskandidaten und zeigt:

Aktionen:

"},{"location":"gui/tmdb-migration/#ablauf-einer-sequenz","title":"Ablauf einer Sequenz","text":"
  1. Jobliste laden
  2. Start
  3. der bekannte TMDb-Metadaten-Dialog \u00f6ffnet sich f\u00fcr den ersten Job
  4. nach erfolgreicher \u00dcbernahme plant Ripster den n\u00e4chsten Job mit Cooldown

Wichtig:

"},{"location":"gui/tmdb-migration/#relevante-settings","title":"Relevante Settings","text":"

Ohne diese Einstellungen ist die Migration nicht sinnvoll nutzbar.

"},{"location":"pipeline/","title":"Anhang: Pipeline intern","text":"

Dieser Abschnitt beschreibt die technische Pipeline-Logik hinter den UI-Workflows.

"},{"location":"pipeline/#zuruck-zum-handbuch","title":"Zur\u00fcck zum Handbuch","text":""},{"location":"pipeline/encoding/","title":"Encode-Planung & Track-Auswahl","text":"

Vor dem eigentlichen Encoding erstellt Ripster einen Encode-Plan und zeigt ihn im Review an.

"},{"location":"pipeline/encoding/#ablauf","title":"Ablauf","text":"
Quelle bestimmen (Disc/RAW)\n  -> HandBrake-Scan (--scan --json)\n  -> Plan erstellen (Titel, Audio, Untertitel)\n  -> Status: Bereit zum Encodieren\n  -> Benutzer bestaetigt Auswahl\n  -> finaler HandBrake-Aufruf\n
"},{"location":"pipeline/encoding/#review-inhalt-status-bereit-zum-encodieren","title":"Review-Inhalt (Status: Bereit zum Encodieren)","text":""},{"location":"pipeline/encoding/#bestaetigung-confirm-encode","title":"Bestaetigung (confirm-encode)","text":"

Typischer Payload:

{\n  \"selectedEncodeTitleId\": 1,\n  \"selectedTrackSelection\": {\n    \"1\": {\n      \"audioTrackIds\": [1, 2],\n      \"subtitleTrackIds\": [3]\n    }\n  },\n  \"selectedPreEncodeScriptIds\": [1],\n  \"selectedPostEncodeScriptIds\": [2],\n  \"selectedPreEncodeChainIds\": [3],\n  \"selectedPostEncodeChainIds\": [4],\n  \"selectedUserPresetId\": 5\n}\n

Die best\u00e4tigte Auswahl wird im Job gespeichert und f\u00fcr Neustarts wiederverwendet.

"},{"location":"pipeline/encoding/#handbrake-aufruf","title":"HandBrake-Aufruf","text":"

Grundstruktur:

HandBrakeCLI \\\n  -i <input> \\\n  -o <output> \\\n  -t <titleId> \\\n  -Z \"<preset>\" \\\n  <extra-args> \\\n  -a <audioTrackIds|none> \\\n  -s <subtitleTrackIds|none>\n

Untertitel-Flags werden bei Bedarf erg\u00e4nzt:

"},{"location":"pipeline/encoding/#pre-post-encode-ausfuhrungen","title":"Pre-/Post-Encode-Ausf\u00fchrungen","text":"

Fehlerverhalten:

"},{"location":"pipeline/encoding/#dateinamenordner","title":"Dateinamen/Ordner","text":"

Der finale Outputpfad wird aus den Templates in den Settings aufgebaut.

Platzhalter:

Ung\u00fcltige Dateizeichen werden bereinigt.

"},{"location":"pipeline/playlist-analysis/","title":"Playlist-Analyse","text":"

Ripster analysiert bei Blu-ray-\u00e4hnlichen Quellen Playlists und fordert bei Mehrdeutigkeit eine manuelle Auswahl an.

"},{"location":"pipeline/playlist-analysis/#ziel","title":"Ziel","text":"

Erkennen, welche Playlist sehr wahrscheinlich der Hauptfilm ist, statt versehentlich eine Fake-/Dummy-Playlist zu verwenden.

"},{"location":"pipeline/playlist-analysis/#eingabedaten","title":"Eingabedaten","text":"

Die Analyse basiert auf MakeMKV-Infos (u. a. Playlist-/Segment-Struktur, Laufzeiten, Titelzuordnung).

"},{"location":"pipeline/playlist-analysis/#auswertung-vereinfacht","title":"Auswertung (vereinfacht)","text":"

F\u00fcr Kandidaten werden u. a. ber\u00fccksichtigt:

Daraus entstehen intern Kandidatenlisten, Bewertungen und eine Empfehlung.

"},{"location":"pipeline/playlist-analysis/#wann-muss-der-benutzer-entscheiden","title":"Wann muss der Benutzer entscheiden?","text":"

Wenn nach Filterung mehr als ein relevanter Kandidat \u00fcbrig bleibt, wechselt der Job in der GUI auf:

Dann muss eine Playlist best\u00e4tigt werden, bevor der Workflow weiterl\u00e4uft.

"},{"location":"pipeline/playlist-analysis/#konfigurationseinfluss","title":"Konfigurationseinfluss","text":"Feld in Settings Wirkung Minimale Titell\u00e4nge (Minuten) Mindestlaufzeit f\u00fcr Kandidaten aus MakeMKV/Playlist-Analyse TMDb Runtime-Abzug f\u00fcr Playlistfilter (%) lockert bei Bedarf die untere Laufzeitgrenze relativ zur TMDb-Laufzeit, damit leicht k\u00fcrzere Hauptfassungen Kandidaten bleiben

Default ist aktuell 60 Minuten.

"},{"location":"pipeline/playlist-analysis/#ui-verhalten","title":"UI-Verhalten","text":"

Bei manueller Entscheidung zeigt der Ripper Kandidaten mit:

Nach Best\u00e4tigung:

"},{"location":"pipeline/post-encode-scripts/","title":"Encode-Skripte (Pre & Post)","text":"

Ripster kann Skripte und Skript-Ketten vor und nach dem Encode ausf\u00fchren.

"},{"location":"pipeline/post-encode-scripts/#ablauf","title":"Ablauf","text":"
Bereit zum Encodieren\n  -> Pre-Encode Skripte/Ketten\n  -> HandBrake Encoding\n  -> Post-Encode Skripte/Ketten\n  -> Fertig oder Fehler\n
"},{"location":"pipeline/post-encode-scripts/#auswahl-im-review","title":"Auswahl im Review","text":"

Im Review-Panel kannst du getrennt w\u00e4hlen:

"},{"location":"pipeline/post-encode-scripts/#fehlerverhalten","title":"Fehlerverhalten","text":""},{"location":"pipeline/post-encode-scripts/#verfugbare-umgebungsvariablen","title":"Verf\u00fcgbare Umgebungsvariablen","text":"

Beim Script-Run werden gesetzt:

"},{"location":"pipeline/post-encode-scripts/#skript-ketten","title":"Skript-Ketten","text":"

Ketten unterst\u00fctzen zwei Step-Typen:

Bei Fehler in einem Script-Step wird die Kette abgebrochen.

"},{"location":"pipeline/post-encode-scripts/#testlaufe","title":"Testl\u00e4ufe","text":"

Ergebnisse enthalten Erfolg/Exit-Code, Laufzeit und stdout/stderr.

"},{"location":"pipeline/workflow/","title":"Workflow & Zust\u00e4nde","text":"

Ripster steuert den Ablauf als Zustandsmaschine.

"},{"location":"pipeline/workflow/#zustandsdiagramm-vereinfacht","title":"Zustandsdiagramm (vereinfacht)","text":"
flowchart LR\n    A[Bereit] --> B[Medium erkannt]\n    B --> C[Analyse]\n    C --> D[Metadatenauswahl]\n    D --> E[Startbereit]\n    E --> F[Rippen]\n    E --> G[Mediainfo-Pruefung]\n    G --> H[Warte auf Auswahl]\n    H --> G\n    G --> I[Bereit zum Encodieren]\n    I --> J[Encodieren]\n    J --> K[Fertig]\n    J --> L[Fehler]\n    F --> L\n    F --> M[Abgebrochen]
"},{"location":"pipeline/workflow/#statusliste-gui-anzeige","title":"Statusliste (GUI-Anzeige)","text":"Status in der GUI Bedeutung Bereit Wartet auf Disc Medium erkannt Disc wurde erkannt Analyse MakeMKV-Analyse l\u00e4uft Metadatenauswahl Metadaten m\u00fcssen best\u00e4tigt werden Warte auf Auswahl Playlist-Auswahl ist erforderlich Warte auf Auswahl auch f\u00fcr RAW-Entscheidung bei vorhandenen Quelldaten genutzt Startbereit kurzer \u00dcbergang vor Start Rippen MakeMKV-Rip l\u00e4uft Mediainfo-Pruefung Titel/Spuren werden ausgewertet Bereit zum Encodieren Review ist bereit Encodieren HandBrake l\u00e4uft CD-Metadatenauswahl CD-Metadaten m\u00fcssen best\u00e4tigt werden CD-Startbereit CD-Job wartet auf Start CD-Analyse CD-Track-/Strukturaufbereitung CD-Rippen Audio-CD-Rip l\u00e4uft CD-Encodieren CD-Encode l\u00e4uft Fertig erfolgreich abgeschlossen Abgebrochen manuell oder technisch abgebrochen Fehler fehlgeschlagen"},{"location":"pipeline/workflow/#typische-pfade","title":"Typische Pfade","text":""},{"location":"pipeline/workflow/#standardfall-kein-vorhandenes-raw","title":"Standardfall (kein vorhandenes RAW)","text":"
  1. Medium erkannt
  2. Analyse + Metadaten
  3. Rippen
  4. Mediainfo-Pruefung
  5. Bereit zum Encodieren
  6. Encodieren
  7. Fertig
"},{"location":"pipeline/workflow/#vorhandenes-raw","title":"Vorhandenes RAW","text":"

Startbereit springt direkt zu Mediainfo-Pruefung (kein neuer Rip).

"},{"location":"pipeline/workflow/#mehrdeutige-blu-ray-playlist","title":"Mehrdeutige Blu-ray-Playlist","text":"

Mediainfo-Pruefung -> Warte auf Auswahl bis Playlist best\u00e4tigt wurde.

"},{"location":"pipeline/workflow/#vorhandenes-raw-mit-nutzerentscheidung","title":"Vorhandenes RAW mit Nutzerentscheidung","text":"

Metadatenauswahl -> Warte auf Auswahl bis Entscheidung f\u00fcr Weiterverarbeitung (continue) oder Neustart getroffen wurde.

"},{"location":"pipeline/workflow/#cd-flow","title":"CD-Flow","text":"

CD-Metadatenauswahl -> CD-Startbereit -> CD-Rippen -> CD-Encodieren -> Fertig

"},{"location":"pipeline/workflow/#queue-verhalten","title":"Queue-Verhalten","text":"

Wenn der Wert Parallele Jobs erreicht ist:

"},{"location":"pipeline/workflow/#abbruch-wiederaufnahme-neustart","title":"Abbruch, Wiederaufnahme, Neustart","text":""},{"location":"tools/","title":"Anhang: Externe Tools","text":"

Ripster orchestriert externe CLI-Tools. Dieser Abschnitt erkl\u00e4rt deren Rolle im Gesamtsystem.

"},{"location":"tools/handbrake/","title":"HandBrake","text":"

Ripster verwendet HandBrakeCLI f\u00fcr Scan und Encode.

"},{"location":"tools/handbrake/#verwendete-aufrufe","title":"Verwendete Aufrufe","text":""},{"location":"tools/handbrake/#scan-review-aufbau","title":"Scan (Review-Aufbau)","text":"
HandBrakeCLI --scan --json -i <input> -t 0\n
"},{"location":"tools/handbrake/#encode-vereinfacht","title":"Encode (vereinfacht)","text":"
HandBrakeCLI \\\n  -i <input> \\\n  -o <output> \\\n  -t <titleId> \\\n  -Z \"<preset>\" \\\n  <extra-args> \\\n  -a <audioTrackIds|none> \\\n  -s <subtitleTrackIds|none>\n

Optional erg\u00e4nzt Ripster:

"},{"location":"tools/handbrake/#presets-auslesen","title":"Presets auslesen","text":"

Ripster liest Presets mit:

HandBrakeCLI -z\n
"},{"location":"tools/handbrake/#relevante-felder-in-settings","title":"Relevante Felder in Settings","text":"Feldname in der GUI Bedeutung HandBrake Kommando CLI-Binary HandBrake Preset (Blu-ray/DVD) profilspezifisches Preset HandBrake Extra Args (Blu-ray/DVD) profilspezifische Zusatzargumente Ausgabeformat (Blu-ray/DVD) Dateiendung der finalen Datei Encode-Neustart: unvollst\u00e4ndige Ausgabe l\u00f6schen unvollst\u00e4ndige Ausgabe bei Neustart l\u00f6schen"},{"location":"tools/handbrake/#fortschritts-parsing","title":"Fortschritts-Parsing","text":"

Ripster parst HandBrake-Stderr (Prozent/ETA/Detail) und sendet WebSocket-Progress (PIPELINE_PROGRESS).

"},{"location":"tools/handbrake/#troubleshooting","title":"Troubleshooting","text":"

Das Produktions-Installer-Script install.sh bietet eine Option zur Installation eines geb\u00fcndelten HandBrakeCLI-Binaries mit NVDEC-Unterst\u00fctzung (NVIDIA GPU-Dekodierung). Diese Option erscheint interaktiv w\u00e4hrend der Installation.

"},{"location":"tools/makemkv/","title":"MakeMKV","text":"

Ripster nutzt makemkvcon f\u00fcr Disc-Analyse und Rip.

"},{"location":"tools/makemkv/#verwendete-aufrufe","title":"Verwendete Aufrufe","text":""},{"location":"tools/makemkv/#analyse","title":"Analyse","text":"
makemkvcon -r info <source>\n

<source> ist typischerweise:

"},{"location":"tools/makemkv/#rip-mkv-modus","title":"Rip (MKV-Modus)","text":"
makemkvcon mkv <source> <title-or-all> <rawDir> [--minlength=...] [...extraArgs]\n
"},{"location":"tools/makemkv/#rip-backup-modus","title":"Rip (Backup-Modus)","text":"
makemkvcon backup <source> <rawDir> --decrypt\n
"},{"location":"tools/makemkv/#registrierungsschlussel-optional","title":"Registrierungsschl\u00fcssel (optional)","text":"

Wenn in Settings ein MakeMKV Key gesetzt ist, synchronisiert Ripster ihn nach:

~/.MakeMKV/settings.conf\n

Format:

app_Key = \"product-key\"\n

Zus\u00e4tzlich zeigt die UI unterhalb des Feldes den aktuellen Betakey an, der per Button in das Eingabefeld \u00fcbernommen werden kann.

"},{"location":"tools/makemkv/#relevante-felder-in-settings","title":"Relevante Felder in Settings","text":"Feldname in der GUI Bedeutung MakeMKV Kommando CLI-Binary MakeMKV Source Index Source-Index im Auto-Modus Minimale Titellaenge (Minuten) Mindestlaufzeitfilter MakeMKV Rip Modus (Blu-ray/DVD) mkv oder backup MakeMKV Analyze Extra Args (Blu-ray/DVD) Zusatzargumente f\u00fcr Analyse MakeMKV Rip Extra Args (Blu-ray/DVD) Zusatzargumente f\u00fcr Rip"},{"location":"tools/makemkv/#hinweise","title":"Hinweise","text":""},{"location":"tools/mediainfo/","title":"MediaInfo","text":"

Ripster nutzt mediainfo zur JSON-Analyse von Medien-Dateien.

"},{"location":"tools/mediainfo/#aufruf","title":"Aufruf","text":"
mediainfo --Output=JSON <input>\n

Der Input ist typischerweise eine RAW-Datei oder ein vom Workflow gew\u00e4hlter Inputpfad.

"},{"location":"tools/mediainfo/#verwendung-in-ripster","title":"Verwendung in Ripster","text":""},{"location":"tools/mediainfo/#relevante-settings","title":"Relevante Settings","text":"Key Bedeutung mediainfo_command CLI-Binary mediainfo_extra_args_bluray / _dvd profilspezifische Zusatzargumente"},{"location":"tools/mediainfo/#troubleshooting","title":"Troubleshooting","text":""},{"location":"workflows/","title":"Workflows aus Nutzersicht","text":"

Diese Seite beschreibt die produktiven Abl\u00e4ufe aus Sicht der Benutzer: welche Entscheidung wann anf\u00e4llt, welche Jobs oder Container entstehen und welche Settings den Ablauf sichtbar beeinflussen.

"},{"location":"workflows/#gemeinsame-grundlagen","title":"Gemeinsame Grundlagen","text":""},{"location":"workflows/#typische-statuskette","title":"Typische Statuskette","text":"

Medium erkannt -> Analyse -> Metadatenauswahl -> Startbereit -> Rippen -> Mediainfo-Pr\u00fcfung -> Bereit zum Encodieren -> Encodieren -> Fertig

Wichtige Abweichungen:

"},{"location":"workflows/#welche-settings-fast-uberall-hineinspielen","title":"Welche Settings fast \u00fcberall hineinspielen","text":"

Die wichtigsten globalen Einflussfaktoren:

F\u00fcr Disc-Video zus\u00e4tzlich:

"},{"location":"workflows/#workflow-a-film-von-disc-blu-ray-dvd","title":"Workflow A: Film von Disc (Blu-ray / DVD)","text":""},{"location":"workflows/#1-disc-analysieren-und-tmdb-metadaten-wahlen","title":"1. Disc analysieren und TMDb-Metadaten w\u00e4hlen","text":"
  1. Im Ripper Analyse starten
  2. im Metadaten-Dialog Film ausw\u00e4hlen
  3. Auswahl \u00fcbernehmen

Wirkung:

Relevante Settings:

"},{"location":"workflows/#2-duplikatfall-entscheiden","title":"2. Duplikatfall entscheiden","text":"

Wenn ein Film mit gleichem Fingerprint bereits existiert:

  1. \u00dcbernahme erzwingen: neuer unabh\u00e4ngiger Film-Job
  2. Multipart movie: neuer Job wird mit bestehendem Film zu einem Multipart-Container verkn\u00fcpft

Bei Multipart gilt:

"},{"location":"workflows/#3-raw-verzeichnis-und-raw-entscheidung","title":"3. RAW-Verzeichnis und RAW-Entscheidung","text":"

Wenn noch kein passendes RAW vorhanden ist:

Wenn bereits ein passendes RAW gefunden wird:

Relevante Settings:

"},{"location":"workflows/#4-playlist-oder-titelauswahl","title":"4. Playlist- oder Titelauswahl","text":"

Bei bestimmten Discs ist nach der Metadatenphase eine manuelle Auswahl n\u00f6tig:

Das ist der aktuelle playlistflow.

Relevante Settings:

Praxis:

"},{"location":"workflows/#5-review-und-encode","title":"5. Review und Encode","text":"

Im Zustand Bereit zum Encodieren entscheidest du:

Relevante Settings:

"},{"location":"workflows/#6-finale-ausgabe","title":"6. Finale Ausgabe","text":"

Finale Ausgabe:

Optional:

Relevante Settings:

"},{"location":"workflows/#workflow-b-serie-von-disc-blu-ray-dvd","title":"Workflow B: Serie von Disc (Blu-ray / DVD)","text":""},{"location":"workflows/#1-serienmodus-festlegen","title":"1. Serienmodus festlegen","text":"
  1. Disc analysieren
  2. im Metadaten-Dialog Serienmetadaten w\u00e4hlen
  3. Disc-Nummer setzen

Wirkung:

"},{"location":"workflows/#2-serien-raw-und-staffelkontext","title":"2. Serien-RAW und Staffelkontext","text":"

F\u00fcr Serien bevorzugt Ripster eigene Serien-RAW-Verzeichnisse:

Falls leer:

"},{"location":"workflows/#3-episodenprufung-und-multi-episode-falle","title":"3. Episodenpr\u00fcfung und Multi-Episode-F\u00e4lle","text":"

In der Review werden Episoden oder Mehrfachfolgen aufgel\u00f6st.

Ausgabevarianten:

Relevante Settings:

"},{"location":"workflows/#4-playlistflow-auch-bei-serien","title":"4. Playlistflow auch bei Serien","text":"

Auch Serien k\u00f6nnen vor der Review in eine Playlist- oder Titelauswahl laufen.

Zus\u00e4tzlich wirken:

"},{"location":"workflows/#workflow-c-multipart-film","title":"Workflow C: Multipart-Film","text":""},{"location":"workflows/#wann-der-flow-gedacht-ist","title":"Wann der Flow gedacht ist","text":""},{"location":"workflows/#ablauf","title":"Ablauf","text":"
  1. Film-Metadaten w\u00e4hlen
  2. Duplikatdialog Multipart movie
  3. Disc-Nummern f\u00fcr bestehenden und neuen Job festlegen

Wirkung:

Relevante Settings:

"},{"location":"workflows/#workflow-d-audio-cd","title":"Workflow D: Audio-CD","text":""},{"location":"workflows/#1-toc-lesen-und-metadaten-wahlen","title":"1. TOC lesen und Metadaten w\u00e4hlen","text":"
  1. Audio-CD analysieren
  2. Tracks pr\u00fcfen
  3. Metadaten aus MusicBrainz \u00fcbernehmen oder manuell anpassen
"},{"location":"workflows/#2-trackauswahl-und-format","title":"2. Trackauswahl und Format","text":"

Vor dem Start legst du fest:

"},{"location":"workflows/#3-rip-und-encode","title":"3. Rip und Encode","text":"

Die CD l\u00e4uft anschlie\u00dfend als Track-f\u00fcr-Track-Flow:

CD-Metadatenauswahl -> CD-Startbereit -> CD-Rippen -> CD-Encodieren -> Fertig

Relevante Settings:

"},{"location":"workflows/#workflow-e-converter","title":"Workflow E: Converter","text":""},{"location":"workflows/#1-dateien-bereitstellen","title":"1. Dateien bereitstellen","text":"

Dateien gelangen in den Converter \u00fcber:

"},{"location":"workflows/#2-jobs-aus-auswahl-erzeugen","title":"2. Jobs aus Auswahl erzeugen","text":""},{"location":"workflows/#3-job-konfigurieren-und-starten","title":"3. Job konfigurieren und starten","text":"

Je nach Medium:

Relevante Settings:

"},{"location":"workflows/#workflow-f-audiobooks","title":"Workflow F: Audiobooks","text":""},{"location":"workflows/#1-aax-hochladen","title":"1. AAX hochladen","text":"
  1. Datei hochladen
  2. Metadaten und Kapitel aufbauen lassen
  3. bei Bedarf Activation Bytes kl\u00e4ren
"},{"location":"workflows/#2-ausgabeformat-wahlen","title":"2. Ausgabeformat w\u00e4hlen","text":""},{"location":"workflows/#3-kapitel-und-skripte-prufen","title":"3. Kapitel und Skripte pr\u00fcfen","text":"

Vor dem Start anpassbar:

Relevante Settings:

"},{"location":"workflows/#workflow-g-nachbearbeitung-in-der-historie","title":"Workflow G: Nachbearbeitung in der Historie","text":"

Typische Folgeaktionen:

Besonders wichtig:

"},{"location":"workflows/#workflow-h-downloads-und-recovery","title":"Workflow H: Downloads und Recovery","text":""},{"location":"workflows/#downloads","title":"Downloads","text":"

Aus Historie k\u00f6nnen ZIPs f\u00fcr:

erstellt werden.

Relevante Settings:

"},{"location":"workflows/#database-expert","title":"Database (Expert)","text":"

Die Recovery-Seite hilft bei orphan RAW:

So lassen sich vorhandene RAW-Verzeichnisse wieder in einen normalen Workflow zur\u00fcckf\u00fchren.

"},{"location":"workflows/#tmdb-migration","title":"TMDb Migration","text":"

F\u00fcr \u00e4ltere Bestandsjobs gibt es die Sonderseite /tmdb-migration, um mehrere Jobs nacheinander auf den heutigen TMDb-Stand zu bringen.

"}]} \ No newline at end of file diff --git a/site/workflows/index.html b/site/workflows/index.html index 6d8cbff..c46db85 100644 --- a/site/workflows/index.html +++ b/site/workflows/index.html @@ -1 +1 @@ - Workflows aus Nutzersicht - Ripster
Zum Inhalt

Workflows aus Nutzersicht

Diese Seite beschreibt die produktiven Abläufe aus Sicht der Benutzer: welche Entscheidung wann anfällt, welche Jobs oder Container entstehen und welche Settings den Ablauf sichtbar beeinflussen.

Gemeinsame Grundlagen

Typische Statuskette

Medium erkannt -> Analyse -> Metadatenauswahl -> Startbereit -> Rippen -> Mediainfo-Prüfung -> Bereit zum Encodieren -> Encodieren -> Fertig

Wichtige Abweichungen:

  • bei vorhandenem RAW: Sprung direkt in RAW-Entscheidung oder Review
  • bei mehrdeutigen Blu-rays/DVDs: Warte auf Auswahl für Playlist- oder Titelauswahl
  • bei Fehler oder Abbruch: Fehler oder Abgebrochen mit Folgeaktionen
  • bei Audio-CDs und Audiobooks: eigener Spezialflow innerhalb derselben Gesamtpipeline

Welche Settings fast überall hineinspielen

Die wichtigsten globalen Einflussfaktoren:

  • Parallele Jobs
  • Max. parallele Audio CD Jobs
  • Max. Encodes gesamt (medienunabhängig)
  • Audio CDs: Queue-Reihenfolge überspringen
  • PushOver-Ereignisse
  • Pfade, Templates und Owner-Felder

Für Disc-Video zusätzlich:

  • Minimale Titellänge (Minuten)
  • TMDb Runtime-Abzug für Playlistfilter (%)
  • HandBrake Preset
  • HandBrake Extra Args
  • Review Audio-Sprachen (...)
  • Review UT-Sprachen (...)
  • Standard-Zuordnungen aus Settings -> Encode-Presets

Workflow A: Film von Disc (Blu-ray / DVD)

1. Disc analysieren und TMDb-Metadaten wählen

  1. Im Ripper Analyse starten
  2. im Metadaten-Dialog Film auswählen
  3. Auswahl übernehmen

Wirkung:

  • der Job wird als Film-Workflow geführt
  • Film-Metadaten, Poster und Fingerprint werden gesetzt

Relevante Settings:

  • TMDb Read Access Token
  • Film-Sprache
  • Fallback Sprache

2. Duplikatfall entscheiden

Wenn ein Film mit gleichem Fingerprint bereits existiert:

  1. Übernahme erzwingen: neuer unabhängiger Film-Job
  2. Multipart movie: neuer Job wird mit bestehendem Film zu einem Multipart-Container verknüpft

Bei Multipart gilt:

  • beide Discs brauchen unterschiedliche Disc-Nummern
  • gleiche Disc-Nummern blockieren den Vorgang

3. RAW-Verzeichnis und RAW-Entscheidung

Wenn noch kein passendes RAW vorhanden ist:

  • Ripster legt ein neues RAW-Verzeichnis an

Wenn bereits ein passendes RAW gefunden wird:

  • der Job geht in Warte auf Auswahl
  • du entscheidest, ob das vorhandene RAW weiterverwendet oder neu gerippt wird

Relevante Settings:

  • raw_dir_bluray, raw_dir_dvd
  • raw_dir_bluray_owner, raw_dir_dvd_owner

4. Playlist- oder Titelauswahl

Bei bestimmten Discs ist nach der Metadatenphase eine manuelle Auswahl nötig:

  • Playlist-Auswahl
  • HandBrake-Titelauswahl
  • bei Serien-Grenzfällen PlayAll- oder Doppelfolgen-Entscheidung

Das ist der aktuelle playlistflow.

Relevante Settings:

  • Minimale Titellänge (Minuten)
  • TMDb Runtime-Abzug für Playlistfilter (%)
  • Bei manueller Auswahl senden

Praxis:

  • zu hoher Mindestwert blendet legitime Alternativfassungen aus
  • ein kleiner Runtime-Abzug hilft bei Discs, deren Hauptfilm minimal unter der TMDb-Laufzeit liegt

5. Review und Encode

Im Zustand Bereit zum Encodieren entscheidest du:

  • welcher Titel encodiert wird
  • welche Audio-Spuren übernommen werden
  • welche Untertitel übernommen, erzwungen oder eingebrannt werden
  • welches Preset gilt
  • welche Pre-/Post-Encode-Skripte oder Ketten mitlaufen

Relevante Settings:

  • HandBrake Preset
  • HandBrake Extra Args
  • Review Audio-Sprachen (Blu-ray Film) oder Review Audio-Sprachen (DVD Film)
  • Review UT-Sprachen (Blu-ray Film) oder Review UT-Sprachen (DVD Film)
  • Ausgabeformat
  • Standard-Userpreset für Film unter Settings -> Encode-Presets

6. Finale Ausgabe

Finale Ausgabe:

  • Zielordner: movie_dir_bluray oder movie_dir_dvd
  • Dateiname und Ordner: output_template_bluray oder output_template_dvd

Optional:

  • .nfo direkt nach Encode

Relevante Settings:

  • movie_dir_bluray, movie_dir_dvd
  • movie_dir_bluray_owner, movie_dir_dvd_owner
  • output_template_bluray, output_template_dvd
  • generate_nfo_after_encode

Workflow B: Serie von Disc (Blu-ray / DVD)

1. Serienmodus festlegen

  1. Disc analysieren
  2. im Metadaten-Dialog Serienmetadaten wählen
  3. Disc-Nummer setzen

Wirkung:

  • Ripster arbeitet als Serien-Workflow
  • Seriencontainer wird gesucht oder angelegt
  • der Job wird als Child unter diesem Container geführt

2. Serien-RAW und Staffelkontext

Für Serien bevorzugt Ripster eigene Serien-RAW-Verzeichnisse:

  • raw_dir_bluray_series
  • raw_dir_dvd_series

Falls leer:

  • Fallback auf raw_dir_bluray bzw. raw_dir_dvd

3. Episodenprüfung und Multi-Episode-Fälle

In der Review werden Episoden oder Mehrfachfolgen aufgelöst.

Ausgabevarianten:

  • Einzel-Episode
  • Multi-Episode-Datei

Relevante Settings:

  • output_template_bluray_series_episode
  • output_template_bluray_series_multi_episode
  • output_template_dvd_series_episode
  • output_template_dvd_series_multi_episode
  • series_dir_bluray
  • series_dir_dvd

4. Playlistflow auch bei Serien

Auch Serien können vor der Review in eine Playlist- oder Titelauswahl laufen.

Zusätzlich wirken:

  • Review Audio-Sprachen (Blu-ray Serie) / Review Audio-Sprachen (DVD Serie)
  • Review UT-Sprachen (Blu-ray Serie) / Review UT-Sprachen (DVD Serie)
  • Serien-Default-Presets unter Settings -> Encode-Presets

Workflow C: Multipart-Film

Wann der Flow gedacht ist

  • gleicher Film auf mehreren Discs
  • die Discs sollen in Historie und Detailansichten zusammengehören

Ablauf

  1. Film-Metadaten wählen
  2. Duplikatdialog Multipart movie
  3. Disc-Nummern für bestehenden und neuen Job festlegen

Wirkung:

  • multipart_movie_container wird angelegt oder wiederverwendet
  • die Discs werden als Child-Jobs darunter geführt
  • zusätzlich wird ein Merge-Job vorbereitet

Relevante Settings:

  • mkvmerge_command
  • Film-Output-Templates
  • Queue-Limits, falls mehrere Discs parallel weiterverarbeitet werden

Workflow D: Audio-CD

1. TOC lesen und Metadaten wählen

  1. Audio-CD analysieren
  2. Tracks prüfen
  3. Metadaten aus MusicBrainz übernehmen oder manuell anpassen

2. Trackauswahl und Format

Vor dem Start legst du fest:

  • welche Tracks übernommen werden
  • welches Ausgabeformat gilt
  • welche Formatoptionen genutzt werden
  • welche Pre-/Post-Encode-Skripte oder Ketten mitlaufen

3. Rip und Encode

Die CD läuft anschließend als Track-für-Track-Flow:

CD-Metadatenauswahl -> CD-Startbereit -> CD-Rippen -> CD-Encodieren -> Fertig

Relevante Settings:

  • raw_dir_cd
  • movie_dir_cd
  • raw_dir_cd_owner
  • movie_dir_cd_owner
  • cd_output_template
  • cdparanoia_command
  • Max. parallele Audio CD Jobs
  • Audio CDs: Queue-Reihenfolge überspringen

Workflow E: Converter

1. Dateien bereitstellen

Dateien gelangen in den Converter über:

  • Upload
  • bestehende Ordner im converter_raw_dir
  • manuelle Dateiverwaltung im Explorer

2. Jobs aus Auswahl erzeugen

  • Video und ISO: immer ein Job pro Datei
  • Audio: ein Job pro Datei oder gemeinsamer Audio-Job

3. Job konfigurieren und starten

Je nach Medium:

  • Video/ISO: Review mit Track- und Preset-Auswahl
  • Audio: direkte Format- und Zielkonfiguration

Relevante Settings:

  • converter_scan_extensions
  • converter_polling_enabled
  • converter_polling_interval
  • converter_raw_dir
  • converter_movie_dir
  • converter_audio_dir
  • converter_output_template_video
  • converter_output_template_audio
  • globale Queue-Limits

Workflow F: Audiobooks

1. AAX hochladen

  1. Datei hochladen
  2. Metadaten und Kapitel aufbauen lassen
  3. bei Bedarf Activation Bytes klären

2. Ausgabeformat wählen

  • m4b: eine Datei
  • mp3: eine Datei pro Kapitel
  • flac: eine Datei pro Kapitel

3. Kapitel und Skripte prüfen

Vor dem Start anpassbar:

  • Kapitelnamen
  • Pre-Encode-Skripte und -Ketten
  • Post-Encode-Skripte und -Ketten

Relevante Settings:

  • raw_dir_audiobook
  • movie_dir_audiobook
  • audiobook_raw_template
  • output_template_audiobook
  • output_chapter_template_audiobook
  • ffprobe_command
  • ffmpeg_command
  • globale Queue-Limits

Workflow G: Nachbearbeitung in der Historie

Typische Folgeaktionen:

  • TMDb neu zuweisen
  • Review neu starten
  • RAW neu encodieren
  • Encode neu starten
  • Retry Rippen
  • Download als ZIP einreihen

Besonders wichtig:

  • Encode neu starten verwendet den letzten bestätigten Plan
  • handbrake_restart_delete_incomplete_output entscheidet, ob unvollständige Ausgaben vorher gelöscht werden

Workflow H: Downloads und Recovery

Downloads

Aus Historie können ZIPs für:

  • RAW
  • Output

erstellt werden.

Relevante Settings:

  • download_dir
  • download_dir_owner

Database (Expert)

Die Recovery-Seite hilft bei orphan RAW:

  • RAW prüfen
  • Job anlegen

So lassen sich vorhandene RAW-Verzeichnisse wieder in einen normalen Workflow zurückführen.

TMDb Migration

Für ältere Bestandsjobs gibt es die Sonderseite /tmdb-migration, um mehrere Jobs nacheinander auf den heutigen TMDb-Stand zu bringen.

\ No newline at end of file + Workflows aus Nutzersicht - Ripster
Zum Inhalt

Workflows aus Nutzersicht

Diese Seite beschreibt die produktiven Abläufe aus Sicht der Benutzer: welche Entscheidung wann anfällt, welche Jobs oder Container entstehen und welche Settings den Ablauf sichtbar beeinflussen.

Gemeinsame Grundlagen

Typische Statuskette

Medium erkannt -> Analyse -> Metadatenauswahl -> Startbereit -> Rippen -> Mediainfo-Prüfung -> Bereit zum Encodieren -> Encodieren -> Fertig

Wichtige Abweichungen:

  • bei vorhandenem RAW: Sprung direkt in RAW-Entscheidung oder Review
  • bei mehrdeutigen Blu-rays/DVDs: Warte auf Auswahl für Playlist- oder Titelauswahl
  • bei Fehler oder Abbruch: Fehler oder Abgebrochen mit Folgeaktionen
  • bei Audio-CDs und Audiobooks: eigener Spezialflow innerhalb derselben Gesamtpipeline

Welche Settings fast überall hineinspielen

Die wichtigsten globalen Einflussfaktoren:

  • Parallele Jobs
  • Max. parallele Audio CD Jobs
  • Max. Encodes gesamt (medienunabhängig)
  • Audio CDs: Queue-Reihenfolge überspringen
  • PushOver-Ereignisse
  • Pfade, Templates und Owner-Felder

Für Disc-Video zusätzlich:

  • Minimale Titellänge (Minuten)
  • TMDb Runtime-Abzug für Playlistfilter (%)
  • HandBrake Preset
  • HandBrake Extra Args
  • Review Audio-Sprachen (...)
  • Review UT-Sprachen (...)
  • Standard-Zuordnungen aus Settings -> Encode-Presets

Workflow A: Film von Disc (Blu-ray / DVD)

1. Disc analysieren und TMDb-Metadaten wählen

  1. Im Ripper Analyse starten
  2. im Metadaten-Dialog Film auswählen
  3. Auswahl übernehmen

Wirkung:

  • der Job wird als Film-Workflow geführt
  • Film-Metadaten, Poster und Fingerprint werden gesetzt

Relevante Settings:

  • TMDb Read Access Token
  • Film-Sprache
  • Fallback Sprache

2. Duplikatfall entscheiden

Wenn ein Film mit gleichem Fingerprint bereits existiert:

  1. Übernahme erzwingen: neuer unabhängiger Film-Job
  2. Multipart movie: neuer Job wird mit bestehendem Film zu einem Multipart-Container verknüpft

Bei Multipart gilt:

  • beide Discs brauchen unterschiedliche Disc-Nummern
  • gleiche Disc-Nummern blockieren den Vorgang

3. RAW-Verzeichnis und RAW-Entscheidung

Wenn noch kein passendes RAW vorhanden ist:

  • Ripster legt ein neues RAW-Verzeichnis an

Wenn bereits ein passendes RAW gefunden wird:

  • der Job geht in Warte auf Auswahl
  • du entscheidest, ob das vorhandene RAW weiterverwendet oder neu gerippt wird

Relevante Settings:

  • Raw Ausgabeordner (Blu-ray) und Raw Ausgabeordner (DVD)
  • Eigentümer Raw-Ordner (Blu-ray) und Eigentümer Raw-Ordner (DVD)

4. Playlist- oder Titelauswahl

Bei bestimmten Discs ist nach der Metadatenphase eine manuelle Auswahl nötig:

  • Playlist-Auswahl
  • HandBrake-Titelauswahl
  • bei Serien-Grenzfällen PlayAll- oder Doppelfolgen-Entscheidung

Das ist der aktuelle playlistflow.

Relevante Settings:

  • Minimale Titellänge (Minuten)
  • TMDb Runtime-Abzug für Playlistfilter (%)
  • Bei manueller Auswahl senden

Praxis:

  • zu hoher Mindestwert blendet legitime Alternativfassungen aus
  • ein kleiner Runtime-Abzug hilft bei Discs, deren Hauptfilm minimal unter der TMDb-Laufzeit liegt

5. Review und Encode

Im Zustand Bereit zum Encodieren entscheidest du:

  • welcher Titel encodiert wird
  • welche Audio-Spuren übernommen werden
  • welche Untertitel übernommen, erzwungen oder eingebrannt werden
  • welches Preset gilt
  • welche Pre-/Post-Encode-Skripte oder Ketten mitlaufen

Relevante Settings:

  • HandBrake Preset
  • HandBrake Extra Args
  • Review Audio-Sprachen (Blu-ray Film) oder Review Audio-Sprachen (DVD Film)
  • Review UT-Sprachen (Blu-ray Film) oder Review UT-Sprachen (DVD Film)
  • Ausgabeformat
  • Standard-Userpreset für Film unter Settings -> Encode-Presets

6. Finale Ausgabe

Finale Ausgabe:

  • Zielordner: Film Ausgabeordner (Blu-ray) oder Film Ausgabeordner (DVD)
  • Dateiname und Ordner: Output Template (Blu-ray) oder Output Template (DVD)

Optional:

  • .nfo direkt nach Encode

Relevante Settings:

  • Film Ausgabeordner (Blu-ray) und Film Ausgabeordner (DVD)
  • Eigentümer Film-Ordner (Blu-ray) und Eigentümer Film-Ordner (DVD)
  • Output Template (Blu-ray) und Output Template (DVD)
  • NFO nach Encode erzeugen

Workflow B: Serie von Disc (Blu-ray / DVD)

1. Serienmodus festlegen

  1. Disc analysieren
  2. im Metadaten-Dialog Serienmetadaten wählen
  3. Disc-Nummer setzen

Wirkung:

  • Ripster arbeitet als Serien-Workflow
  • Seriencontainer wird gesucht oder angelegt
  • der Job wird als Child unter diesem Container geführt

2. Serien-RAW und Staffelkontext

Für Serien bevorzugt Ripster eigene Serien-RAW-Verzeichnisse:

  • RAW-Ordner (Blu-ray Serie)
  • RAW-Ordner (DVD Serie)

Falls leer:

  • Fallback auf Raw Ausgabeordner (Blu-ray) bzw. Raw Ausgabeordner (DVD)

3. Episodenprüfung und Multi-Episode-Fälle

In der Review werden Episoden oder Mehrfachfolgen aufgelöst.

Ausgabevarianten:

  • Einzel-Episode
  • Multi-Episode-Datei

Relevante Settings:

  • Output Template (Blu-ray Serie, Episode)
  • Output Template (Blu-ray Serie, Multi-Episode)
  • Output Template (DVD Serie, Episode)
  • Output Template (DVD Serie, Multi-Episode)
  • Serien-Ordner (Blu-ray)
  • Serien-Ordner (DVD)

4. Playlistflow auch bei Serien

Auch Serien können vor der Review in eine Playlist- oder Titelauswahl laufen.

Zusätzlich wirken:

  • Review Audio-Sprachen (Blu-ray Serie) / Review Audio-Sprachen (DVD Serie)
  • Review UT-Sprachen (Blu-ray Serie) / Review UT-Sprachen (DVD Serie)
  • Serien-Default-Presets unter Settings -> Encode-Presets

Workflow C: Multipart-Film

Wann der Flow gedacht ist

  • gleicher Film auf mehreren Discs
  • die Discs sollen in Historie und Detailansichten zusammengehören

Ablauf

  1. Film-Metadaten wählen
  2. Duplikatdialog Multipart movie
  3. Disc-Nummern für bestehenden und neuen Job festlegen

Wirkung:

  • multipart_movie_container wird angelegt oder wiederverwendet
  • die Discs werden als Child-Jobs darunter geführt
  • zusätzlich wird ein Merge-Job vorbereitet

Relevante Settings:

  • mkvmerge_command
  • Film-Output-Templates
  • Queue-Limits, falls mehrere Discs parallel weiterverarbeitet werden

Workflow D: Audio-CD

1. TOC lesen und Metadaten wählen

  1. Audio-CD analysieren
  2. Tracks prüfen
  3. Metadaten aus MusicBrainz übernehmen oder manuell anpassen

2. Trackauswahl und Format

Vor dem Start legst du fest:

  • welche Tracks übernommen werden
  • welches Ausgabeformat gilt
  • welche Formatoptionen genutzt werden
  • welche Pre-/Post-Encode-Skripte oder Ketten mitlaufen

3. Rip und Encode

Die CD läuft anschließend als Track-für-Track-Flow:

CD-Metadatenauswahl -> CD-Startbereit -> CD-Rippen -> CD-Encodieren -> Fertig

Relevante Settings:

  • CD RAW-Ordner
  • CD Output-Ordner
  • Eigentümer CD RAW-Ordner
  • Eigentümer CD Output-Ordner
  • CD Output Template
  • cdparanoia Kommando
  • Max. parallele Audio CD Jobs
  • Audio CDs: Queue-Reihenfolge überspringen

Workflow E: Converter

1. Dateien bereitstellen

Dateien gelangen in den Converter über:

  • Upload
  • bestehende Ordner im Converter Raw-Ordner
  • manuelle Dateiverwaltung im Explorer

2. Jobs aus Auswahl erzeugen

  • Video und ISO: immer ein Job pro Datei
  • Audio: ein Job pro Datei oder gemeinsamer Audio-Job

3. Job konfigurieren und starten

Je nach Medium:

  • Video/ISO: Review mit Track- und Preset-Auswahl
  • Audio: direkte Format- und Zielkonfiguration

Relevante Settings:

  • Erlaubte Datei-Endungen
  • Auto-Scan (Polling)
  • Polling-Intervall (Sekunden)
  • Converter Raw-Ordner
  • Converter Ausgabe (Video)
  • Converter Ausgabe (Audio)
  • Output-Template (Video)
  • Output-Template (Audio)
  • globale Queue-Limits

Workflow F: Audiobooks

1. AAX hochladen

  1. Datei hochladen
  2. Metadaten und Kapitel aufbauen lassen
  3. bei Bedarf Activation Bytes klären

2. Ausgabeformat wählen

  • m4b: eine Datei
  • mp3: eine Datei pro Kapitel
  • flac: eine Datei pro Kapitel

3. Kapitel und Skripte prüfen

Vor dem Start anpassbar:

  • Kapitelnamen
  • Pre-Encode-Skripte und -Ketten
  • Post-Encode-Skripte und -Ketten

Relevante Settings:

  • Audiobook RAW-Ordner
  • Audiobook Output-Ordner
  • Audiobook RAW Template
  • Output Template (Audiobook)
  • Kapitel Template (Audiobook)
  • FFprobe Kommando
  • FFmpeg Kommando
  • globale Queue-Limits

Workflow G: Nachbearbeitung in der Historie

Typische Folgeaktionen:

  • TMDb neu zuweisen
  • Review neu starten
  • RAW neu encodieren
  • Encode neu starten
  • Retry Rippen
  • Download als ZIP einreihen

Besonders wichtig:

  • Encode neu starten verwendet den letzten bestätigten Plan
  • Encode-Neustart: unvollständige Ausgabe löschen entscheidet, ob unvollständige Ausgaben vorher gelöscht werden

Workflow H: Downloads und Recovery

Downloads

Aus Historie können ZIPs für:

  • RAW
  • Output

erstellt werden.

Relevante Settings:

  • Download ZIP-Ordner
  • Eigentümer Download ZIP-Ordner

Database (Expert)

Die Recovery-Seite hilft bei orphan RAW:

  • RAW prüfen
  • Job anlegen

So lassen sich vorhandene RAW-Verzeichnisse wieder in einen normalen Workflow zurückführen.

TMDb Migration

Für ältere Bestandsjobs gibt es die Sonderseite /tmdb-migration, um mehrere Jobs nacheinander auf den heutigen TMDb-Stand zu bringen.

\ No newline at end of file