docs
This commit is contained in:
@@ -66,7 +66,7 @@ In `App.jsx` werden u. a. verarbeitet:
|
||||
- `PIPELINE_STATE_CHANGED`
|
||||
- `PIPELINE_PROGRESS`
|
||||
- `PIPELINE_QUEUE_CHANGED`
|
||||
- `DISC_DETECTED` / `DISC_REMOVED`
|
||||
- Disk erkannt / Disk entfernt
|
||||
- `HARDWARE_MONITOR_UPDATE`
|
||||
|
||||
---
|
||||
|
||||
@@ -33,7 +33,7 @@ WebSocket läuft auf `/ws`.
|
||||
Wichtige Events:
|
||||
|
||||
- `PIPELINE_STATE_CHANGED`, `PIPELINE_PROGRESS`, `PIPELINE_QUEUE_CHANGED`
|
||||
- `DISC_DETECTED`, `DISC_REMOVED`
|
||||
- Disk erkannt, Disk entfernt
|
||||
- `HARDWARE_MONITOR_UPDATE`
|
||||
- `SETTINGS_UPDATED`, `SETTINGS_BULK_UPDATED`
|
||||
- `SETTINGS_SCRIPTS_UPDATED`, `SETTINGS_SCRIPT_CHAINS_UPDATED`, `USER_PRESETS_UPDATED`
|
||||
@@ -83,7 +83,7 @@ Zentrales Error-Handling liefert:
|
||||
}
|
||||
```
|
||||
|
||||
Fehlgeschlagene Jobs bleiben in der Historie (`ERROR` oder `CANCELLED`) und können erneut gestartet werden.
|
||||
Fehlgeschlagene Jobs bleiben in der Historie (`Fehler` oder `Abgebrochen`) und können erneut gestartet werden.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,23 +1,18 @@
|
||||
# Einstellungsreferenz
|
||||
|
||||
Alle Settings liegen in `settings_schema`/`settings_values` und werden über die UI verwaltet.
|
||||
Diese Seite listet die Felder so, wie sie in der GUI unter `Settings` angezeigt werden.
|
||||
|
||||
Hinweis: Interne Schlüsselnamen werden hier bewusst nicht verwendet. Falls du sie für Integrationen brauchst, nutze die API-Dokumentation.
|
||||
|
||||
---
|
||||
|
||||
## Profil-System
|
||||
|
||||
Ripster arbeitet mit Media-Profilen:
|
||||
Viele Felder sind pro Medientyp getrennt vorhanden:
|
||||
|
||||
- `bluray`
|
||||
- `dvd`
|
||||
- `other`
|
||||
|
||||
Viele Tool-/Pfad-Settings existieren als Profil-Varianten (`*_bluray`, `*_dvd`, `*_other`).
|
||||
|
||||
Wichtig:
|
||||
|
||||
- Für `raw_dir`, `movie_dir` und die zugehörigen `*_owner`-Keys gibt es **kein Cross-Profil-Fallback**.
|
||||
- Für viele Tool-Keys werden profilspezifische Varianten bevorzugt.
|
||||
- Blu-ray
|
||||
- DVD
|
||||
- Sonstiges
|
||||
|
||||
---
|
||||
|
||||
@@ -35,131 +30,113 @@ Nicht gesetzte Werte werden zu `unknown`.
|
||||
|
||||
## Kategorie: Pfade
|
||||
|
||||
| Key | Typ | Default |
|
||||
|-----|-----|---------|
|
||||
| `raw_dir` | path | `data/output/raw` |
|
||||
| `raw_dir_bluray` | path | `null` |
|
||||
| `raw_dir_dvd` | path | `null` |
|
||||
| `raw_dir_other` | path | `null` |
|
||||
| `raw_dir_bluray_owner` | string | `null` |
|
||||
| `raw_dir_dvd_owner` | string | `null` |
|
||||
| `raw_dir_other_owner` | string | `null` |
|
||||
| `movie_dir` | path | `data/output/movies` |
|
||||
| `movie_dir_bluray` | path | `null` |
|
||||
| `movie_dir_dvd` | path | `null` |
|
||||
| `movie_dir_other` | path | `null` |
|
||||
| `movie_dir_bluray_owner` | string | `null` |
|
||||
| `movie_dir_dvd_owner` | string | `null` |
|
||||
| `movie_dir_other_owner` | string | `null` |
|
||||
| `log_dir` | path | `data/logs` |
|
||||
| Feldname in der GUI | Typ | Default |
|
||||
|---|---|---|
|
||||
| `Raw Ausgabeordner` | path | `data/output/raw` |
|
||||
| `Raw Ausgabeordner (Blu-ray)` | path | `null` |
|
||||
| `Raw Ausgabeordner (DVD)` | path | `null` |
|
||||
| `Raw Ausgabeordner (Sonstiges)` | path | `null` |
|
||||
| `Eigentümer Raw-Ordner (Blu-ray)` | string | `null` |
|
||||
| `Eigentümer Raw-Ordner (DVD)` | string | `null` |
|
||||
| `Eigentümer Raw-Ordner (Sonstiges)` | string | `null` |
|
||||
| `Film Ausgabeordner` | path | `data/output/movies` |
|
||||
| `Film Ausgabeordner (Blu-ray)` | path | `null` |
|
||||
| `Film Ausgabeordner (DVD)` | path | `null` |
|
||||
| `Film Ausgabeordner (Sonstiges)` | path | `null` |
|
||||
| `Eigentümer Film-Ordner (Blu-ray)` | string | `null` |
|
||||
| `Eigentümer Film-Ordner (DVD)` | string | `null` |
|
||||
| `Eigentümer Film-Ordner (Sonstiges)` | string | `null` |
|
||||
| `Log Ordner` | path | `data/logs` |
|
||||
|
||||
---
|
||||
|
||||
## Kategorie: Laufwerk
|
||||
|
||||
| Key | Typ | Default | Hinweis |
|
||||
|-----|-----|---------|--------|
|
||||
| `drive_mode` | select | `auto` | `auto` oder `explicit` |
|
||||
| `drive_device` | path | `/dev/sr0` | bei `explicit` relevant |
|
||||
| `makemkv_source_index` | number | `0` | MakeMKV Source-Index |
|
||||
| `disc_poll_interval_ms` | number | `4000` | 1000..60000 |
|
||||
| Feldname in der GUI | Typ | Default | Hinweis |
|
||||
|---|---|---|---|
|
||||
| `Laufwerksmodus` | select | `auto` | `Auto Discovery` oder `Explizites Device` |
|
||||
| `Device Pfad` | path | `/dev/sr0` | relevant bei `Explizites Device` |
|
||||
| `MakeMKV Source Index` | number | `0` | Disc-Index im Auto-Modus |
|
||||
| `Polling Intervall (ms)` | number | `4000` | 1000..60000 |
|
||||
|
||||
---
|
||||
|
||||
## Kategorie: Monitoring
|
||||
|
||||
| Key | Typ | Default |
|
||||
|-----|-----|---------|
|
||||
| `hardware_monitoring_enabled` | boolean | `true` |
|
||||
| `hardware_monitoring_interval_ms` | number | `5000` |
|
||||
| Feldname in der GUI | Typ | Default |
|
||||
|---|---|---|
|
||||
| `Hardware Monitoring aktiviert` | boolean | `true` |
|
||||
| `Hardware Monitoring Intervall (ms)` | number | `5000` |
|
||||
|
||||
---
|
||||
|
||||
## Kategorie: Tools (global)
|
||||
|
||||
| Key | Typ | Default |
|
||||
|-----|-----|---------|
|
||||
| `makemkv_command` | string | `makemkvcon` |
|
||||
| `makemkv_registration_key` | string | `null` |
|
||||
| `mediainfo_command` | string | `mediainfo` |
|
||||
| `makemkv_min_length_minutes` | number | `60` |
|
||||
| `handbrake_command` | string | `HandBrakeCLI` |
|
||||
| `handbrake_restart_delete_incomplete_output` | boolean | `true` |
|
||||
| `pipeline_max_parallel_jobs` | number | `1` |
|
||||
| Feldname in der GUI | Typ | Default |
|
||||
|---|---|---|
|
||||
| `MakeMKV Kommando` | string | `makemkvcon` |
|
||||
| `MakeMKV Key` | string | `null` |
|
||||
| `Mediainfo Kommando` | string | `mediainfo` |
|
||||
| `Minimale Titellaenge (Minuten)` | number | `60` |
|
||||
| `HandBrake Kommando` | string | `HandBrakeCLI` |
|
||||
| `Encode-Neustart: unvollständige Ausgabe löschen` | boolean | `true` |
|
||||
| `Parallele Jobs` | number | `1` |
|
||||
|
||||
### Blu-ray-spezifisch
|
||||
|
||||
| Key | Typ | Default |
|
||||
|-----|-----|---------|
|
||||
| `mediainfo_extra_args_bluray` | string | `null` |
|
||||
| `makemkv_rip_mode_bluray` | select | `backup` |
|
||||
| `makemkv_analyze_extra_args_bluray` | string | `null` |
|
||||
| `makemkv_rip_extra_args_bluray` | string | `null` |
|
||||
| `handbrake_preset_bluray` | string | `H.264 MKV 1080p30` |
|
||||
| `handbrake_extra_args_bluray` | string | `null` |
|
||||
| `output_extension_bluray` | select | `mkv` |
|
||||
| `filename_template_bluray` | string | `${title} (${year})` |
|
||||
| `output_folder_template_bluray` | string | `null` |
|
||||
| Feldname in der GUI | Typ | Default |
|
||||
|---|---|---|
|
||||
| `Mediainfo Extra Args` (Blu-ray) | string | `null` |
|
||||
| `MakeMKV Rip Modus` (Blu-ray) | select | `backup` |
|
||||
| `MakeMKV Analyze Extra Args` (Blu-ray) | string | `null` |
|
||||
| `MakeMKV Rip Extra Args` (Blu-ray) | string | `null` |
|
||||
| `HandBrake Preset` (Blu-ray) | string | `H.264 MKV 1080p30` |
|
||||
| `HandBrake Extra Args` (Blu-ray) | string | `null` |
|
||||
| `Ausgabeformat` (Blu-ray) | select | `mkv` |
|
||||
| `Dateiname Template` (Blu-ray) | string | `${title} (${year})` |
|
||||
| `Ordnername Template` (Blu-ray) | string | `null` |
|
||||
|
||||
### DVD-spezifisch
|
||||
|
||||
| Key | Typ | Default |
|
||||
|-----|-----|---------|
|
||||
| `mediainfo_extra_args_dvd` | string | `null` |
|
||||
| `makemkv_rip_mode_dvd` | select | `mkv` |
|
||||
| `makemkv_analyze_extra_args_dvd` | string | `null` |
|
||||
| `makemkv_rip_extra_args_dvd` | string | `null` |
|
||||
| `handbrake_preset_dvd` | string | `H.264 MKV 480p30` |
|
||||
| `handbrake_extra_args_dvd` | string | `null` |
|
||||
| `output_extension_dvd` | select | `mkv` |
|
||||
| `filename_template_dvd` | string | `${title} (${year})` |
|
||||
| `output_folder_template_dvd` | string | `null` |
|
||||
| Feldname in der GUI | Typ | Default |
|
||||
|---|---|---|
|
||||
| `Mediainfo Extra Args` (DVD) | string | `null` |
|
||||
| `MakeMKV Rip Modus` (DVD) | select | `mkv` |
|
||||
| `MakeMKV Analyze Extra Args` (DVD) | string | `null` |
|
||||
| `MakeMKV Rip Extra Args` (DVD) | string | `null` |
|
||||
| `HandBrake Preset` (DVD) | string | `H.264 MKV 480p30` |
|
||||
| `HandBrake Extra Args` (DVD) | string | `null` |
|
||||
| `Ausgabeformat` (DVD) | select | `mkv` |
|
||||
| `Dateiname Template` (DVD) | string | `${title} (${year})` |
|
||||
| `Ordnername Template` (DVD) | string | `null` |
|
||||
|
||||
---
|
||||
|
||||
## Kategorie: Metadaten
|
||||
|
||||
| Key | Typ | Default |
|
||||
|-----|-----|---------|
|
||||
| `omdb_api_key` | string | `null` |
|
||||
| `omdb_default_type` | select | `movie` |
|
||||
| Feldname in der GUI | Typ | Default |
|
||||
|---|---|---|
|
||||
| `OMDb API Key` | string | `null` |
|
||||
| `OMDb Typ` | select | `movie` |
|
||||
|
||||
---
|
||||
|
||||
## Kategorie: Benachrichtigungen (PushOver)
|
||||
|
||||
| Key | Typ | Default |
|
||||
|-----|-----|---------|
|
||||
| `pushover_enabled` | boolean | `false` |
|
||||
| `pushover_token` | string | `null` |
|
||||
| `pushover_user` | string | `null` |
|
||||
| `pushover_device` | string | `null` |
|
||||
| `pushover_title_prefix` | string | `Ripster` |
|
||||
| `pushover_priority` | number | `0` |
|
||||
| `pushover_timeout_ms` | number | `7000` |
|
||||
| `pushover_notify_metadata_ready` | boolean | `true` |
|
||||
| `pushover_notify_rip_started` | boolean | `true` |
|
||||
| `pushover_notify_encoding_started` | boolean | `true` |
|
||||
| `pushover_notify_job_finished` | boolean | `true` |
|
||||
| `pushover_notify_job_error` | boolean | `true` |
|
||||
| `pushover_notify_job_cancelled` | boolean | `true` |
|
||||
| `pushover_notify_reencode_started` | boolean | `true` |
|
||||
| `pushover_notify_reencode_finished` | boolean | `true` |
|
||||
|
||||
---
|
||||
|
||||
## Entfernte Legacy-Keys
|
||||
|
||||
Diese Legacy-Keys werden bei Migration entfernt und sollten nicht mehr genutzt werden:
|
||||
|
||||
- `makemkv_backup_mode`
|
||||
- `mediainfo_extra_args`
|
||||
- `makemkv_rip_mode`
|
||||
- `makemkv_analyze_extra_args`
|
||||
- `makemkv_rip_extra_args`
|
||||
- `handbrake_preset`
|
||||
- `handbrake_extra_args`
|
||||
- `output_extension`
|
||||
- `filename_template`
|
||||
- `output_folder_template`
|
||||
- `pushover_notify_disc_detected`
|
||||
| Feldname in der GUI | Typ | Default |
|
||||
|---|---|---|
|
||||
| `PushOver aktiviert` | boolean | `false` |
|
||||
| `PushOver Token` | string | `null` |
|
||||
| `PushOver User` | string | `null` |
|
||||
| `PushOver Device (optional)` | string | `null` |
|
||||
| `PushOver Titel-Präfix` | string | `Ripster` |
|
||||
| `PushOver Priority` | number | `0` |
|
||||
| `PushOver Timeout (ms)` | number | `7000` |
|
||||
| `Bei Metadaten-Auswahl senden` | boolean | `true` |
|
||||
| `Bei Rip-Start senden` | boolean | `true` |
|
||||
| `Bei Encode-Start senden` | boolean | `true` |
|
||||
| `Bei Erfolg senden` | boolean | `true` |
|
||||
| `Bei Fehler senden` | boolean | `true` |
|
||||
| `Bei Abbruch senden` | boolean | `true` |
|
||||
| `Bei Re-Encode Start senden` | boolean | `true` |
|
||||
| `Bei Re-Encode Erfolg senden` | boolean | `true` |
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
## Automatische Installation (empfohlen)
|
||||
|
||||
Das mitgelieferte `install.sh` richtet Ripster vollautomatisch auf Debian/Ubuntu ein – inklusive Node.js, MakeMKV, HandBrake, nginx und systemd-Dienst.
|
||||
Das mitgelieferte `install.sh` richtet Ripster vollautomatisch ein – inklusive Node.js, MakeMKV, HandBrake, nginx und systemd-Dienst.
|
||||
|
||||
**Unterstützte Systeme:** Debian 11/12, Ubuntu 22.04/24.04
|
||||
**Unterstützte Systeme laut Script:** Debian, Ubuntu, Linux Mint, Pop!_OS
|
||||
**Voraussetzung:** root-Rechte, Internetzugang
|
||||
|
||||
### Schnellstart via curl
|
||||
@@ -28,7 +28,7 @@ wget -qO- https://raw.githubusercontent.com/Mboehmlaender/ripster/main/install.s
|
||||
|
||||
| Option | Standard | Beschreibung |
|
||||
|--------|----------|--------------|
|
||||
| `--branch <branch>` | `main` | Git-Branch für die Installation |
|
||||
| `--branch <branch>` | `dev` | Git-Branch für die Installation |
|
||||
| `--dir <pfad>` | `/opt/ripster` | Installationsverzeichnis |
|
||||
| `--user <benutzer>` | `ripster` | Systembenutzer für den Dienst |
|
||||
| `--port <port>` | `3001` | Backend-Port |
|
||||
@@ -67,14 +67,16 @@ sudo bash install.sh --no-nginx --host mein-server.local
|
||||
5. **HandBrake** – interaktive Auswahl:
|
||||
- **Option 1**: Standard (`apt install handbrake-cli`)
|
||||
- **Option 2**: Gebündelte GPU-Version mit NVDEC aus `bin/HandBrakeCLI`
|
||||
6. **Systembenutzer** `ripster` – ohne Login-Shell, Gruppen: `cdrom`, `optical`, `disk`, `video`, `render`
|
||||
7. **Repository** – klont Branch nach `--dir` (bei `--reinstall`: sichert DB, pullt, stellt DB wieder her)
|
||||
8. **npm-Abhängigkeiten** – Root, Backend (nur production), Frontend
|
||||
9. **Frontend-Build** – `npm run build` mit relativen API-URLs (nginx-kompatibel)
|
||||
10. **Backend `.env`** – wird automatisch generiert (bei `--reinstall` bleibt bestehende erhalten)
|
||||
11. **Berechtigungen** – `ripster:ripster` auf Installationsverzeichnis, `600` auf `.env`
|
||||
12. **systemd-Dienst** – `ripster-backend.service` erstellt, aktiviert und gestartet
|
||||
13. **nginx** – konfiguriert als Reverse-Proxy für Frontend, `/api/` und `/ws` (kann mit `--no-nginx` übersprungen werden)
|
||||
6. **Systembenutzer** `ripster` – ohne Login-Shell und ohne Home-Verzeichnis; Gruppen werden (falls vorhanden) ergänzt: `cdrom`, `optical`, `disk`, `video`, `render`
|
||||
7. **Repository** – klont Branch nach `--dir` (bei `--reinstall`: sichert `backend/data`, aktualisiert Repo, stellt Daten wieder her)
|
||||
8. **Verzeichnisse** – stellt u. a. sicher: `backend/data`, `backend/logs`, `backend/data/output/raw`, `backend/data/output/movies`, `backend/data/logs`
|
||||
9. **npm-Abhängigkeiten** – Root, Backend (nur production), Frontend
|
||||
10. **Frontend-Build** – `npm run build` mit relativen API-URLs (nginx-kompatibel)
|
||||
11. **Backend `.env`** – wird automatisch generiert (bei `--reinstall` bleibt bestehende `.env` erhalten)
|
||||
12. **Berechtigungen** – zunächst `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** – erstellt bei sudo-Aufruf `~/.MakeMKV` für den aufrufenden Benutzer
|
||||
14. **systemd-Dienst** – `ripster-backend.service` erstellt, aktiviert und gestartet
|
||||
15. **nginx** – konfiguriert als Reverse-Proxy für Frontend, `/api/` und `/ws` (kann mit `--no-nginx` übersprungen werden)
|
||||
|
||||
### Nach der Installation
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@ Setze zuerst diese Pflichtwerte:
|
||||
|
||||
| Bereich | Wichtige Felder |
|
||||
|---|---|
|
||||
| Pfade | `raw_dir`, `movie_dir`, `log_dir` |
|
||||
| Tools | `makemkv_command`, `handbrake_command`, `mediainfo_command` |
|
||||
| Metadaten | `omdb_api_key`, optional `omdb_default_type` |
|
||||
| Pfade | `Raw Ausgabeordner`, `Film Ausgabeordner`, `Log Ordner` |
|
||||
| Tools | `MakeMKV Kommando`, `HandBrake Kommando`, `Mediainfo Kommando` |
|
||||
| Metadaten | `OMDb API Key`, optional `OMDb Typ` |
|
||||
|
||||
Danach `Änderungen speichern`.
|
||||
|
||||
@@ -30,22 +30,22 @@ Wenn du Blu-ray und DVD unterschiedlich behandeln willst, pflege die profilbezog
|
||||
|
||||
Typische Beispiele:
|
||||
|
||||
- `handbrake_preset_bluray` und `handbrake_preset_dvd`
|
||||
- `raw_dir_bluray` und `raw_dir_dvd`
|
||||
- `filename_template_bluray` und `filename_template_dvd`
|
||||
- `HandBrake Preset` (Blu-ray und DVD)
|
||||
- `Raw Ausgabeordner` (Blu-ray und DVD)
|
||||
- `Dateiname Template` (Blu-ray und DVD)
|
||||
|
||||
### 3. Queue und Monitoring festlegen
|
||||
|
||||
- `pipeline_max_parallel_jobs` für parallele Jobs
|
||||
- `hardware_monitoring_enabled` und Intervall für Live-Metriken im Dashboard
|
||||
- `Parallele Jobs` für den gleichzeitigen Durchsatz
|
||||
- `Hardware Monitoring aktiviert` + `Hardware Monitoring Intervall (ms)` für Live-Metriken im Dashboard
|
||||
|
||||
### 4. Optional: Push-Benachrichtigungen
|
||||
|
||||
In den Benachrichtigungsfeldern setzen:
|
||||
|
||||
- `pushover_enabled`
|
||||
- `pushover_token`
|
||||
- `pushover_user`
|
||||
- `PushOver aktiviert`
|
||||
- `PushOver Token`
|
||||
- `PushOver User`
|
||||
|
||||
Dann über `PushOver Test` direkt prüfen.
|
||||
|
||||
@@ -55,7 +55,7 @@ Dann über `PushOver Test` direkt prüfen.
|
||||
2. Disc einlegen
|
||||
3. `Analyse starten`
|
||||
4. Metadaten übernehmen
|
||||
5. Bis `READY_TO_ENCODE` laufen lassen
|
||||
5. Bis `Bereit zum Encodieren` laufen lassen
|
||||
|
||||
Wenn diese Schritte funktionieren, ist die Grundkonfiguration korrekt.
|
||||
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
Die empfohlene Installation läuft über `install.sh` und richtet Ripster vollständig ein.
|
||||
|
||||
Du musst dafür **keine Tools manuell vorinstallieren**. `install.sh` installiert die benötigten Abhängigkeiten automatisch (außer du überspringst sie mit `--no-*`).
|
||||
Du musst dafür **keine Tools manuell vorinstallieren**. Das Skript installiert die benötigten Abhängigkeiten automatisch, sofern sie nicht explizit mit `--no-*` übersprungen werden.
|
||||
|
||||
## Zielbild nach der Installation
|
||||
## Unterstützte Systeme und Anforderungen
|
||||
|
||||
- Ripster-Backend als `systemd`-Dienst
|
||||
- Frontend über nginx erreichbar
|
||||
- UI auf `http://<Server-IP>`
|
||||
- unterstützt laut Script: `debian`, `ubuntu`, `linuxmint`, `pop`
|
||||
- Ausführung als `root` (oder via `sudo`)
|
||||
- Internetzugang während der Installation
|
||||
|
||||
## Schritt-für-Schritt
|
||||
|
||||
@@ -24,9 +24,9 @@ wget -qO install.sh https://raw.githubusercontent.com/Mboehmlaender/ripster/main
|
||||
sudo bash install.sh
|
||||
```
|
||||
|
||||
Während der Installation wirst du nach dem HandBrake-Modus gefragt:
|
||||
Während der Installation wählst du den HandBrake-Modus:
|
||||
|
||||
- `1` Standard (`apt`)
|
||||
- `1` Standard (Paketinstallation)
|
||||
- `2` GPU/NVDEC (gebündeltes Binary)
|
||||
|
||||
### 3. Dienststatus prüfen
|
||||
@@ -37,21 +37,44 @@ sudo systemctl status ripster-backend
|
||||
|
||||
### 4. Weboberfläche öffnen
|
||||
|
||||
- Mit nginx: `http://<Server-IP>`
|
||||
- Ohne nginx (`--no-nginx`): API auf `http://<Server-IP>:3001/api`
|
||||
- mit nginx (Standard): `http://<Server-IP>`
|
||||
- ohne nginx (`--no-nginx`): API auf `http://<Server-IP>:3001/api`
|
||||
|
||||
## Was `install.sh` konkret einrichtet
|
||||
|
||||
1. prüft Betriebssystem, Root-Rechte und ermittelt Host/IP
|
||||
2. aktualisiert Paketquellen und installiert Basispakete (`curl`, `wget`, `git`, `mediainfo`, `udev` ...)
|
||||
3. installiert Node.js 20 (falls nicht passend vorhanden)
|
||||
4. installiert optional MakeMKV (Build aus den offiziellen Quellen)
|
||||
5. installiert optional HandBrakeCLI (Standard oder GPU/NVDEC)
|
||||
6. installiert optional nginx
|
||||
7. legt den Systembenutzer `ripster` an (ohne Login-Shell, ohne Home) und ergänzt Gruppen (`cdrom`, `optical`, `disk`, `video`, `render`, falls vorhanden)
|
||||
8. klont das Repository nach `/opt/ripster` (oder aktualisiert bei `--reinstall`)
|
||||
9. legt Verzeichnisse an:
|
||||
- `/opt/ripster/backend/data`
|
||||
- `/opt/ripster/backend/logs`
|
||||
- `/opt/ripster/backend/data/output/raw`
|
||||
- `/opt/ripster/backend/data/output/movies`
|
||||
- `/opt/ripster/backend/data/logs`
|
||||
10. installiert npm-Abhängigkeiten (Root, Backend, Frontend) und baut das Frontend
|
||||
11. erzeugt `backend/.env` (bei `--reinstall` bleibt bestehende `.env` erhalten)
|
||||
12. setzt Rechte/Besitz und erstellt bei sudo-Installation zusätzlich `~/.MakeMKV` für den aufrufenden Benutzer
|
||||
13. erzeugt und startet `ripster-backend.service`
|
||||
14. konfiguriert und startet nginx (falls nicht übersprungen)
|
||||
|
||||
## Wichtige Optionen
|
||||
|
||||
| Option | Zweck |
|
||||
|---|---|
|
||||
| `--branch <branch>` | anderen Branch installieren |
|
||||
| `--dir <pfad>` | Installationsverzeichnis ändern |
|
||||
| `--port <port>` | Backend-Port setzen |
|
||||
| `--host <hostname>` | Hostname/IP für nginx/CORS |
|
||||
| `--no-makemkv` | MakeMKV nicht installieren |
|
||||
| `--no-handbrake` | HandBrake nicht installieren |
|
||||
| `--no-nginx` | nginx-Konfiguration überspringen |
|
||||
| `--reinstall` | Update einer bestehenden Installation |
|
||||
| Option | Default laut Script | Zweck |
|
||||
|---|---|---|
|
||||
| `--branch <branch>` | `dev` | Branch für die Installation |
|
||||
| `--dir <pfad>` | `/opt/ripster` | Installationsverzeichnis |
|
||||
| `--user <benutzer>` | `ripster` | Service-Benutzer |
|
||||
| `--port <port>` | `3001` | Backend-Port |
|
||||
| `--host <hostname>` | automatisch ermittelte Host-IP | Hostname/IP für Webzugriff/CORS |
|
||||
| `--no-makemkv` | aus | MakeMKV-Installation überspringen |
|
||||
| `--no-handbrake` | aus | HandBrake-Installation überspringen |
|
||||
| `--no-nginx` | aus | nginx-Setup überspringen |
|
||||
| `--reinstall` | aus | bestehende Installation aktualisieren |
|
||||
|
||||
Beispiele:
|
||||
|
||||
@@ -76,9 +99,9 @@ sudo bash /opt/ripster/install.sh --reinstall
|
||||
|
||||
## Häufige Stolperstellen
|
||||
|
||||
- `Permission denied` am Laufwerk: Laufwerksrechte/Gruppen prüfen
|
||||
- Tools nicht gefunden: `makemkvcon`, `HandBrakeCLI`, `mediainfo` im `PATH` prüfen
|
||||
- UI nicht erreichbar: nginx-Status und Port/Firewall prüfen
|
||||
- Laufwerk nicht zugreifbar: Laufwerksrechte/Gruppen prüfen
|
||||
- CLI-Tool fehlt wegen `--no-*`: Tool nachinstallieren oder Befehl in Settings korrigieren
|
||||
- UI nicht erreichbar: nginx-Status und Firewall prüfen
|
||||
|
||||
## Danach weiter
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ Für den normalen Betrieb sind nur wenige Punkte vorab nötig.
|
||||
|
||||
### Pflicht
|
||||
|
||||
- unterstütztes Linux-System (Debian/Ubuntu)
|
||||
- unterstütztes Linux-System (laut Script: Debian, Ubuntu, Linux Mint, Pop!_OS)
|
||||
- `root`-Rechte
|
||||
- Internetzugang während der Installation
|
||||
- optisches Laufwerk für Disc-Betrieb
|
||||
|
||||
@@ -6,7 +6,7 @@ Dieser Ablauf zeigt einen vollständigen Job aus Anwendersicht: von Disc-Erkennu
|
||||
|
||||
Erwartung:
|
||||
|
||||
- Status wechselt auf `DISC_DETECTED` bzw. `Medium erkannt`
|
||||
- Status wechselt auf `Medium erkannt`
|
||||
- im Bereich `Disk-Information` sind Laufwerksdaten sichtbar
|
||||
|
||||
Wenn nichts passiert: `Laufwerk neu lesen`.
|
||||
@@ -19,7 +19,7 @@ Aktion im Dashboard:
|
||||
|
||||
Erwartung:
|
||||
|
||||
- Status `ANALYZING`
|
||||
- Status `Analyse`
|
||||
- danach Metadaten-Dialog
|
||||
|
||||
## 3. Metadaten auswählen
|
||||
@@ -32,11 +32,11 @@ Im Dialog `Metadaten auswählen`:
|
||||
|
||||
## 4. Auf den nächsten Zustand reagieren
|
||||
|
||||
- Normalfall ohne vorhandenes RAW: `RIPPING` -> `MEDIAINFO_CHECK` -> `READY_TO_ENCODE`
|
||||
- bei vorhandenem RAW: direkt `MEDIAINFO_CHECK` -> `READY_TO_ENCODE`
|
||||
- bei unklarer Blu-ray-Playlist: `WAITING_FOR_USER_DECISION` (Playlist auswählen und übernehmen)
|
||||
- Normalfall ohne vorhandenes RAW: `Rippen` -> `Mediainfo-Pruefung` -> `Bereit zum Encodieren`
|
||||
- bei vorhandenem RAW: direkt `Mediainfo-Pruefung` -> `Bereit zum Encodieren`
|
||||
- bei unklarer Blu-ray-Playlist: `Warte auf Auswahl` (Playlist auswählen und übernehmen)
|
||||
|
||||
## 5. Review in `READY_TO_ENCODE`
|
||||
## 5. Review in `Bereit zum Encodieren`
|
||||
|
||||
Im aufgeklappten Job (`Pipeline-Status`):
|
||||
|
||||
@@ -49,7 +49,7 @@ Dann `Encoding starten`.
|
||||
|
||||
## 6. Encoding überwachen
|
||||
|
||||
Während `ENCODING`:
|
||||
Während `Encodieren`:
|
||||
|
||||
- Fortschritt + ETA im Dashboard
|
||||
- Live-Log im `Pipeline-Status`
|
||||
@@ -57,7 +57,7 @@ Während `ENCODING`:
|
||||
|
||||
## 7. Ergebnis prüfen
|
||||
|
||||
Bei `FINISHED`:
|
||||
Bei `Fertig`:
|
||||
|
||||
1. Seite `Historie` öffnen
|
||||
2. Job in Details öffnen
|
||||
|
||||
@@ -26,7 +26,7 @@ Zeigt live:
|
||||
Wichtig für den Betrieb:
|
||||
|
||||
- Hohe Speicherauslastung oder fast volle Zielpfade früh erkennen
|
||||
- über `Settings` aktivierbar/deaktivierbar (`hardware_monitoring_*`)
|
||||
- über `Settings` aktivierbar/deaktivierbar (`Hardware Monitoring aktiviert`)
|
||||
|
||||
## 2) Job Queue
|
||||
|
||||
@@ -46,7 +46,7 @@ Mögliche Aktionen:
|
||||
|
||||
Hinweis:
|
||||
|
||||
- `Parallel` zeigt das aktuell konfigurierte Parallel-Limit (`pipeline_max_parallel_jobs`).
|
||||
- `Parallel` zeigt den Wert aus `Settings` -> `Parallele Jobs`.
|
||||
|
||||
## 3) Skript- / Cron-Status
|
||||
|
||||
@@ -71,13 +71,13 @@ Im aufgeklappten Zustand erscheint die Karte `Pipeline-Status` mit allen zustand
|
||||
|
||||
| Zustand | Typische Aktion |
|
||||
|---|---|
|
||||
| `DISC_DETECTED` / `IDLE` | `Analyse starten` |
|
||||
| `METADATA_SELECTION` | `Metadaten öffnen` |
|
||||
| `WAITING_FOR_USER_DECISION` | Playlist wählen und `Playlist übernehmen` |
|
||||
| `READY_TO_START` | `Job starten` |
|
||||
| `READY_TO_ENCODE` | Tracks/Skripte prüfen, dann `Encoding starten` |
|
||||
| laufend (`ANALYZING`/`RIPPING`/`ENCODING`) | `Abbrechen` |
|
||||
| `ERROR` / `CANCELLED` | `Retry Rippen`, `Disk-Analyse neu starten` |
|
||||
| `Medium erkannt` / `Bereit` | `Analyse starten` |
|
||||
| `Metadatenauswahl` | `Metadaten öffnen` |
|
||||
| `Warte auf Auswahl` | Playlist wählen und `Playlist übernehmen` |
|
||||
| `Startbereit` | `Job starten` |
|
||||
| `Bereit zum Encodieren` | Tracks/Skripte prüfen, dann `Encoding starten` |
|
||||
| laufend (`Analyse`/`Rippen`/`Encodieren`) | `Abbrechen` |
|
||||
| `Fehler` / `Abgebrochen` | `Retry Rippen`, `Disk-Analyse neu starten` |
|
||||
|
||||
Zusätzlich je nach Job:
|
||||
|
||||
@@ -85,7 +85,7 @@ Zusätzlich je nach Job:
|
||||
- `Encode neu starten`
|
||||
- `Aus Queue löschen`
|
||||
|
||||
### Titel-/Spurprüfung (`READY_TO_ENCODE`)
|
||||
### Titel-/Spurprüfung (`Bereit zum Encodieren`)
|
||||
|
||||
Im selben Block siehst du:
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ Ein Preset bündelt:
|
||||
|
||||
Verwendung:
|
||||
|
||||
- Diese Presets erscheinen später im Dashboard im Review (`READY_TO_ENCODE`).
|
||||
- Diese Presets erscheinen später im Dashboard im Review (`Bereit zum Encodieren`).
|
||||
|
||||
## Tab `Cronjobs`
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Encode-Planung & Track-Auswahl
|
||||
|
||||
Ripster erzeugt vor dem Encode einen `encodePlan` und lässt ihn im Review-Panel bestätigen.
|
||||
Vor dem eigentlichen Encoding erstellt Ripster einen Encode-Plan und zeigt ihn im Review an.
|
||||
|
||||
---
|
||||
|
||||
@@ -10,27 +10,27 @@ Ripster erzeugt vor dem Encode einen `encodePlan` und lässt ihn im Review-Panel
|
||||
Quelle bestimmen (Disc/RAW)
|
||||
-> HandBrake-Scan (--scan --json)
|
||||
-> Plan erstellen (Titel, Audio, Untertitel)
|
||||
-> READY_TO_ENCODE
|
||||
-> Benutzer bestätigt Auswahl
|
||||
-> Status: Bereit zum Encodieren
|
||||
-> Benutzer bestaetigt Auswahl
|
||||
-> finaler HandBrake-Aufruf
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Review-Inhalt (`READY_TO_ENCODE`)
|
||||
## Review-Inhalt (Status: `Bereit zum Encodieren`)
|
||||
|
||||
- auswählbarer Encode-Titel
|
||||
- Audio-Track-Selektion
|
||||
- Untertitel-Track-Selektion inkl. Flags
|
||||
- Audio-Track-Auswahl
|
||||
- Untertitel-Track-Auswahl inkl. Flags
|
||||
- `burnIn`
|
||||
- `forced`
|
||||
- `defaultTrack`
|
||||
- optionale User-Presets (HandBrake-Preset + Extra-Args)
|
||||
- optionale User-Presets (HandBrake Preset + Extra Args)
|
||||
- optionale Pre-/Post-Skripte und Ketten
|
||||
|
||||
---
|
||||
|
||||
## Bestätigung (`confirm-encode`)
|
||||
## Bestaetigung (`confirm-encode`)
|
||||
|
||||
Typischer Payload:
|
||||
|
||||
@@ -51,7 +51,7 @@ Typischer Payload:
|
||||
}
|
||||
```
|
||||
|
||||
Ripster speichert die bestätigte Auswahl in `jobs.encode_plan_json` und markiert `encode_review_confirmed = 1`.
|
||||
Die bestätigte Auswahl wird im Job gespeichert und für Neustarts wiederverwendet.
|
||||
|
||||
---
|
||||
|
||||
@@ -83,16 +83,16 @@ Untertitel-Flags werden bei Bedarf ergänzt:
|
||||
- Pre-Encode läuft vor HandBrake
|
||||
- Post-Encode läuft nach HandBrake
|
||||
|
||||
Verhalten bei Fehlern:
|
||||
Fehlerverhalten:
|
||||
|
||||
- Pre-Encode-Fehler: Job wird als `ERROR` beendet (Encode startet nicht)
|
||||
- Post-Encode-Fehler: Job kann `FINISHED` bleiben, enthält aber Fehlerhinweis/Script-Summary
|
||||
- Pre-Encode-Fehler: Job endet mit Status `Fehler` (Encode startet nicht)
|
||||
- Post-Encode-Fehler: Job kann `Fertig` bleiben, enthält aber Fehlerhinweis/Script-Summary
|
||||
|
||||
---
|
||||
|
||||
## Dateinamen/Ordner
|
||||
|
||||
Der finale Outputpfad wird aus Settings-Templates aufgebaut.
|
||||
Der finale Outputpfad wird aus den Templates in den Settings aufgebaut.
|
||||
|
||||
Platzhalter:
|
||||
|
||||
@@ -100,4 +100,4 @@ Platzhalter:
|
||||
- `${year}`
|
||||
- `${imdbId}`
|
||||
|
||||
Ungültige Dateizeichen werden sanitisiert.
|
||||
Ungültige Dateizeichen werden bereinigt.
|
||||
|
||||
@@ -6,7 +6,7 @@ Ripster analysiert bei Blu-ray-ähnlichen Quellen Playlists und fordert bei Mehr
|
||||
|
||||
## Ziel
|
||||
|
||||
Erkennen, welche Playlist wahrscheinlich der Hauptfilm ist, statt versehentlich eine Fake-/Dummy-Playlist zu verwenden.
|
||||
Erkennen, welche Playlist sehr wahrscheinlich der Hauptfilm ist, statt versehentlich eine Fake-/Dummy-Playlist zu verwenden.
|
||||
|
||||
---
|
||||
|
||||
@@ -26,20 +26,15 @@ Für Kandidaten werden u. a. berücksichtigt:
|
||||
- Kohärenz linearer Segmentfolgen
|
||||
- Duplikatgruppen mit ähnlicher Laufzeit
|
||||
|
||||
Daraus entstehen:
|
||||
|
||||
- `candidates`
|
||||
- `evaluatedCandidates` (inkl. Score/Label)
|
||||
- `recommendation`
|
||||
- `manualDecisionRequired`
|
||||
Daraus entstehen intern Kandidatenlisten, Bewertungen und eine Empfehlung.
|
||||
|
||||
---
|
||||
|
||||
## Wann muss der Benutzer entscheiden?
|
||||
|
||||
Wenn nach Filterung mehr als ein relevanter Kandidat übrig bleibt, setzt Ripster `manualDecisionRequired = true` und wechselt auf:
|
||||
Wenn nach Filterung mehr als ein relevanter Kandidat übrig bleibt, wechselt der Job in der GUI auf:
|
||||
|
||||
- `WAITING_FOR_USER_DECISION`
|
||||
- `Warte auf Auswahl`
|
||||
|
||||
Dann muss eine Playlist bestätigt werden, bevor der Workflow weiterläuft.
|
||||
|
||||
@@ -47,9 +42,9 @@ Dann muss eine Playlist bestätigt werden, bevor der Workflow weiterläuft.
|
||||
|
||||
## Konfigurationseinfluss
|
||||
|
||||
| Key | Wirkung |
|
||||
|-----|---------|
|
||||
| `makemkv_min_length_minutes` | Mindestlaufzeit für Kandidaten |
|
||||
| Feld in `Settings` | Wirkung |
|
||||
|---|---|
|
||||
| `Minimale Titellaenge (Minuten)` | Mindestlaufzeit für Kandidaten |
|
||||
|
||||
Default ist aktuell `60` Minuten.
|
||||
|
||||
@@ -61,5 +56,5 @@ Bei manueller Entscheidung zeigt das Dashboard Kandidaten inkl. Score/Bewertung
|
||||
|
||||
Nach Bestätigung:
|
||||
|
||||
- mit vorhandenem RAW -> zurück zu `MEDIAINFO_CHECK`
|
||||
- ohne RAW -> Startpfad über `READY_TO_START`/`RIPPING`
|
||||
- mit vorhandenem RAW -> zurück zu `Mediainfo-Pruefung`
|
||||
- ohne RAW -> Startpfad über `Startbereit` / `Rippen`
|
||||
|
||||
@@ -7,11 +7,11 @@ Ripster kann Skripte und Skript-Ketten vor und nach dem Encode ausführen.
|
||||
## Ablauf
|
||||
|
||||
```text
|
||||
READY_TO_ENCODE
|
||||
Bereit zum Encodieren
|
||||
-> Pre-Encode Skripte/Ketten
|
||||
-> HandBrake Encoding
|
||||
-> Post-Encode Skripte/Ketten
|
||||
-> FINISHED oder ERROR
|
||||
-> Fertig oder Fehler
|
||||
```
|
||||
|
||||
---
|
||||
@@ -29,8 +29,8 @@ Im Review-Panel kannst du getrennt wählen:
|
||||
|
||||
## Fehlerverhalten
|
||||
|
||||
- Pre-Encode-Fehler stoppen die Kette und führen zu `ERROR`.
|
||||
- Post-Encode-Fehler stoppen die restlichen Post-Schritte; Job kann dennoch `FINISHED` sein (mit Fehlerzusatz im Status/Log).
|
||||
- Pre-Encode-Fehler stoppen die Kette und führen zu `Fehler`.
|
||||
- Post-Encode-Fehler stoppen die restlichen Post-Schritte; Job kann dennoch `Fertig` sein (mit Fehlerzusatz im Status/Log).
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Workflow & Zustände
|
||||
|
||||
Ripster steuert den Ablauf als State-Machine im `pipelineService`.
|
||||
Ripster steuert den Ablauf als Zustandsmaschine.
|
||||
|
||||
---
|
||||
|
||||
@@ -8,41 +8,41 @@ Ripster steuert den Ablauf als State-Machine im `pipelineService`.
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
IDLE --> DISC_DETECTED
|
||||
DISC_DETECTED --> ANALYZING
|
||||
ANALYZING --> METADATA_SELECTION
|
||||
METADATA_SELECTION --> READY_TO_START
|
||||
READY_TO_START --> RIPPING
|
||||
READY_TO_START --> MEDIAINFO_CHECK
|
||||
MEDIAINFO_CHECK --> WAITING_FOR_USER_DECISION
|
||||
WAITING_FOR_USER_DECISION --> MEDIAINFO_CHECK
|
||||
MEDIAINFO_CHECK --> READY_TO_ENCODE
|
||||
READY_TO_ENCODE --> ENCODING
|
||||
ENCODING --> FINISHED
|
||||
ENCODING --> ERROR
|
||||
RIPPING --> ERROR
|
||||
RIPPING --> CANCELLED
|
||||
A[Bereit] --> B[Medium erkannt]
|
||||
B --> C[Analyse]
|
||||
C --> D[Metadatenauswahl]
|
||||
D --> E[Startbereit]
|
||||
E --> F[Rippen]
|
||||
E --> G[Mediainfo-Pruefung]
|
||||
G --> H[Warte auf Auswahl]
|
||||
H --> G
|
||||
G --> I[Bereit zum Encodieren]
|
||||
I --> J[Encodieren]
|
||||
J --> K[Fertig]
|
||||
J --> L[Fehler]
|
||||
F --> L
|
||||
F --> M[Abgebrochen]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## State-Liste
|
||||
## Statusliste (GUI-Anzeige)
|
||||
|
||||
| State | Bedeutung |
|
||||
|------|-----------|
|
||||
| `IDLE` | Wartet auf Disc |
|
||||
| `DISC_DETECTED` | Disc erkannt |
|
||||
| `ANALYZING` | MakeMKV-Analyse läuft |
|
||||
| `METADATA_SELECTION` | Benutzer wählt Metadaten |
|
||||
| `WAITING_FOR_USER_DECISION` | Playlist-Auswahl nötig |
|
||||
| `READY_TO_START` | Übergangszustand vor Start |
|
||||
| `RIPPING` | MakeMKV-Rip läuft |
|
||||
| `MEDIAINFO_CHECK` | Quelle/Tracks werden ausgewertet |
|
||||
| `READY_TO_ENCODE` | Review ist bereit |
|
||||
| `ENCODING` | HandBrake läuft |
|
||||
| `FINISHED` | erfolgreich abgeschlossen |
|
||||
| `CANCELLED` | abgebrochen |
|
||||
| `ERROR` | fehlgeschlagen |
|
||||
| Status in der GUI | Bedeutung |
|
||||
|---|---|
|
||||
| `Bereit` | Wartet auf Disc |
|
||||
| `Medium erkannt` | Disc wurde erkannt |
|
||||
| `Analyse` | MakeMKV-Analyse läuft |
|
||||
| `Metadatenauswahl` | Metadaten müssen bestätigt werden |
|
||||
| `Warte auf Auswahl` | Playlist-Auswahl ist erforderlich |
|
||||
| `Startbereit` | kurzer Übergang vor Start |
|
||||
| `Rippen` | MakeMKV-Rip läuft |
|
||||
| `Mediainfo-Pruefung` | Titel/Spuren werden ausgewertet |
|
||||
| `Bereit zum Encodieren` | Review ist bereit |
|
||||
| `Encodieren` | HandBrake läuft |
|
||||
| `Fertig` | erfolgreich abgeschlossen |
|
||||
| `Abgebrochen` | manuell oder technisch abgebrochen |
|
||||
| `Fehler` | fehlgeschlagen |
|
||||
|
||||
---
|
||||
|
||||
@@ -50,38 +50,38 @@ flowchart LR
|
||||
|
||||
### Standardfall (kein vorhandenes RAW)
|
||||
|
||||
1. Disc erkannt
|
||||
1. Medium erkannt
|
||||
2. Analyse + Metadaten
|
||||
3. `RIPPING`
|
||||
4. `MEDIAINFO_CHECK`
|
||||
5. `READY_TO_ENCODE`
|
||||
6. `ENCODING`
|
||||
7. `FINISHED`
|
||||
3. Rippen
|
||||
4. Mediainfo-Pruefung
|
||||
5. Bereit zum Encodieren
|
||||
6. Encodieren
|
||||
7. Fertig
|
||||
|
||||
### Vorhandenes RAW
|
||||
|
||||
`READY_TO_START` springt direkt zu `MEDIAINFO_CHECK` (kein neuer Rip).
|
||||
`Startbereit` springt direkt zu `Mediainfo-Pruefung` (kein neuer Rip).
|
||||
|
||||
### Mehrdeutige Blu-ray-Playlist
|
||||
|
||||
`MEDIAINFO_CHECK` -> `WAITING_FOR_USER_DECISION` bis Benutzer Playlist bestätigt.
|
||||
`Mediainfo-Pruefung` -> `Warte auf Auswahl` bis Playlist bestätigt wurde.
|
||||
|
||||
---
|
||||
|
||||
## Queue-Verhalten
|
||||
|
||||
Wenn `pipeline_max_parallel_jobs` erreicht ist:
|
||||
Wenn der Wert `Parallele Jobs` erreicht ist:
|
||||
|
||||
- Job-Aktionen werden als Queue-Einträge abgelegt
|
||||
- Queue kann zusätzlich Nicht-Job-Einträge enthalten (`script`, `chain`, `wait`)
|
||||
- Reihenfolge ist per API/UI änderbar
|
||||
- neue Starts werden als Queue-Einträge abgelegt
|
||||
- die Queue kann zusätzlich Nicht-Job-Einträge enthalten (`Skript`, `Kette`, `Warten`)
|
||||
- Reihenfolge ist per UI/API änderbar
|
||||
|
||||
---
|
||||
|
||||
## Abbruch, Retry, Restart
|
||||
## Abbruch, Wiederaufnahme, Neustart
|
||||
|
||||
- `cancel`: laufenden Job abbrechen oder Queue-Eintrag entfernen
|
||||
- `retry`: Fehler-/Abbruch-Job neu starten
|
||||
- `reencode`: aus vorhandenem RAW neu encodieren
|
||||
- `restart-review`: Review aus RAW neu aufbauen
|
||||
- `restart-encode`: Encoding mit letzter bestätigter Auswahl neu starten
|
||||
- `Abbrechen`: laufenden Job stoppen oder Queue-Eintrag entfernen
|
||||
- `Retry Rippen`: Fehler-/Abbruch-Job erneut starten
|
||||
- `RAW neu encodieren`: aus vorhandenem RAW neu encodieren
|
||||
- `Review neu starten`: Review aus RAW neu aufbauen
|
||||
- `Encode neu starten`: Encoding mit letzter bestätigter Auswahl neu starten
|
||||
|
||||
@@ -43,15 +43,15 @@ HandBrakeCLI -z
|
||||
|
||||
---
|
||||
|
||||
## Relevante Settings
|
||||
## Relevante Felder in `Settings`
|
||||
|
||||
| Key | Bedeutung |
|
||||
| Feldname in der GUI | Bedeutung |
|
||||
|-----|-----------|
|
||||
| `handbrake_command` | CLI-Binary |
|
||||
| `handbrake_preset_bluray` / `handbrake_preset_dvd` | profilspezifisches Preset |
|
||||
| `handbrake_extra_args_bluray` / `handbrake_extra_args_dvd` | profilspezifische Zusatzargumente |
|
||||
| `output_extension_bluray` / `output_extension_dvd` | Ausgabeformat |
|
||||
| `handbrake_restart_delete_incomplete_output` | unvollständige Ausgabe bei Neustart löschen |
|
||||
| `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ändige Ausgabe löschen` | unvollständige Ausgabe bei Neustart löschen |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ makemkvcon backup <source> <rawDir> --decrypt
|
||||
|
||||
## Registrierungsschlüssel (optional)
|
||||
|
||||
Wenn `makemkv_registration_key` gesetzt ist, führt Ripster vor Analyse/Rip aus:
|
||||
Wenn in `Settings` ein `MakeMKV Key` gesetzt ist, führt Ripster vor Analyse/Rip aus:
|
||||
|
||||
```bash
|
||||
makemkvcon reg <key>
|
||||
@@ -42,16 +42,16 @@ makemkvcon reg <key>
|
||||
|
||||
---
|
||||
|
||||
## Relevante Settings
|
||||
## Relevante Felder in `Settings`
|
||||
|
||||
| Key | Bedeutung |
|
||||
| Feldname in der GUI | Bedeutung |
|
||||
|-----|-----------|
|
||||
| `makemkv_command` | CLI-Binary |
|
||||
| `makemkv_source_index` | Source-Index im Auto-Modus |
|
||||
| `makemkv_min_length_minutes` | Mindestlaufzeitfilter |
|
||||
| `makemkv_rip_mode_bluray` / `makemkv_rip_mode_dvd` | `mkv` oder `backup` |
|
||||
| `makemkv_analyze_extra_args_bluray` / `_dvd` | Zusatzargs Analyse |
|
||||
| `makemkv_rip_extra_args_bluray` / `_dvd` | Zusatzargs Rip |
|
||||
| `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ür Analyse |
|
||||
| `MakeMKV Rip Extra Args` (Blu-ray/DVD) | Zusatzargumente für Rip |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -6,21 +6,21 @@ Diese Seite beschreibt typische Abläufe mit den passenden UI-Aktionen.
|
||||
|
||||
1. `Dashboard`: Disc einlegen, `Analyse starten`
|
||||
2. Metadaten im Dialog übernehmen
|
||||
3. bei `READY_TO_ENCODE` Titel/Tracks prüfen
|
||||
3. bei `Bereit zum Encodieren` Titel/Tracks prüfen
|
||||
4. `Encoding starten`
|
||||
5. Ergebnis in `Historie` kontrollieren
|
||||
|
||||
## Workflow 2: Playlist-Entscheidung bei Blu-ray
|
||||
|
||||
1. Job landet in `WAITING_FOR_USER_DECISION`
|
||||
1. Job landet in `Warte auf Auswahl`
|
||||
2. im `Pipeline-Status` Playlist-Kandidaten vergleichen
|
||||
3. gewünschte Playlist auswählen
|
||||
4. `Playlist übernehmen`
|
||||
5. danach normal weiter bis `READY_TO_ENCODE`
|
||||
5. danach normal weiter bis `Bereit zum Encodieren`
|
||||
|
||||
## Workflow 3: Mehrere Jobs mit Queue
|
||||
|
||||
1. Parallel-Limit in `Settings` setzen (`pipeline_max_parallel_jobs`)
|
||||
1. Parallel-Limit in `Settings` über `Parallele Jobs` setzen
|
||||
2. neue Jobs starten; überschüssige Starts gehen in `Job Queue`
|
||||
3. Reihenfolge per Drag-and-Drop anpassen
|
||||
4. bei Bedarf Skript/Kette/Warten als Queue-Eintrag ergänzen
|
||||
@@ -49,7 +49,7 @@ In `Historie` -> Detaildialog:
|
||||
- im Dashboard optional erzeugte RAW/Movie-Datei bereinigen
|
||||
- anschließend je nach Ziel: `Retry Rippen` oder `Disk-Analyse neu starten`
|
||||
|
||||
### Fall B: Job steht in `READY_TO_ENCODE`, ist aber nicht aktive Session
|
||||
### Fall B: Job steht in `Bereit zum Encodieren`, ist aber nicht aktive Session
|
||||
|
||||
- in `Historie` oder `Database`: `Im Dashboard öffnen`
|
||||
- im Dashboard Review erneut prüfen und starten
|
||||
|
||||
Reference in New Issue
Block a user