1.0.0 docs
Deploy Docs to GitHub Pages / Build Documentation (push) Has been cancelled
Deploy Docs to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled

This commit is contained in:
2026-06-12 10:38:45 +02:00
parent b29ac935a9
commit 5e24c6b9cc
72 changed files with 1340 additions and 704 deletions
+101 -52
View File
@@ -4,99 +4,148 @@ Diese Seite ist die Betriebs-Checkliste vor dem ersten produktiven Lauf.
## Ziel der Ersteinrichtung
Vor dem ersten Job müssen drei Dinge stabil sein:
Vor dem ersten Job sollten fünf Bereiche sauber gesetzt sein:
1. Pfade stimmen (RAW, Output, Logs)
2. Tools sind aufrufbar (MakeMKV, HandBrake, MediaInfo)
3. Metadatenzugänge funktionieren (OMDb, optional TMDb/MusicBrainz)
1. Pfade und Templates
2. Laufwerk und Disc-Erkennung
3. Metadatenzugang über TMDb
4. Encode-Standards und Queue-Regeln
5. optionale Automatisierung und Benachrichtigungen
## Empfohlene Reihenfolge
### 1) Basis in `Settings -> Konfiguration`
### 1. Basis in `Settings -> Konfiguration`
Setze zuerst:
Prüfe zuerst diese Kernfelder:
- `Raw-Ordner` und `Film-/Serien-Ordner`
- RAW- und Zielordner für Blu-ray, DVD, CD, Audiobooks und Converter
- `Log Ordner`
- `TMDb Read Access Token`
- `MakeMKV Kommando`, `HandBrake Kommando`, `Mediainfo Kommando`
- `OMDb API Key`
- `FFmpeg Kommando`, `FFprobe Kommando`, `cdparanoia Kommando`, `mkvmerge Kommando`, falls du die jeweiligen Workflows nutzt
Dann speichern.
Danach speichern.
### 2) Profile pro Medium festziehen
### 2. Pfade und Templates bewusst festlegen
Ripster löst viele Werte profilspezifisch auf (`bluray`, `dvd`, `cd`, `audiobook`).
Wichtig für den Alltag:
Pflichtprüfung:
- Film-Workflows nutzen `raw_dir_*`, `movie_dir_*` und `output_template_*`
- Serien-Workflows nutzen zusätzlich `raw_dir_*_series`, `series_dir_*` und die Episode-/Multi-Episode-Templates
- Audiobooks nutzen `raw_dir_audiobook`, `movie_dir_audiobook`, `audiobook_raw_template`, `output_template_audiobook`, `output_chapter_template_audiobook`
- Converter nutzt `converter_raw_dir`, `converter_movie_dir`, `converter_audio_dir` und die beiden Converter-Templates
- Downloads nutzen `download_dir`
- RAW-Pfade je Profil
- Output-Pfade je Profil
- HandBrake-Preset je Profil
- Output-Templates je Profil
Wenn du auf NAS, USB oder andere Benutzer/Gruppen schreiben willst, prüfe auch die jeweiligen `*_owner`-Felder.
Für Serien zusätzlich:
### 3. Laufwerk und automatische Erkennung prüfen
- `RAW-Ordner (Blu-ray/DVD Serie)`
- `Serien-Ordner (Blu-ray/DVD)`
- Serien-Templates (Episode/Multi-Episode)
Relevant:
### 3) Queue-Verhalten definieren
- `Laufwerksmodus`
- `Explizite Laufwerke`, falls du nicht mit Auto-Discovery arbeiten willst
- `Automatische Disk-Erkennung`
- `Polling Intervall (ms)` im Expertenmodus
- `Laufwerk nach Rip auswerfen`
Stelle ein:
Empfehlung:
- `Max. parallele Film/Video Encodes`
- Einzelnes Standardlaufwerk: `auto`
- mehrere stabile Laufwerke oder ungewöhnliche Device-Mappings: `Explizite Laufwerke`
### 4. TMDb und Metadatenverhalten festlegen
Relevant:
- `TMDb Read Access Token`
- `Film-Sprache`
- `Fallback Sprache`
- `Coverart-Nachladen aktiv`
- `Coverart-Prüfintervall (Stunden)`
- `NFO nach Encode erzeugen`
Diese Einstellungen wirken direkt in Metadatensuche, Serienzuordnung, Nachpflege von Covern und im finalen Output.
### 5. Encode- und Review-Standards festlegen
Für Video-Workflows besonders wichtig:
- `Minimale Titellänge (Minuten)`
- `TMDb Runtime-Abzug für Playlistfilter (%)`
- `HandBrake Preset` und `HandBrake Extra Args` je Medium
- `Review Audio-Sprachen (...)`
- `Review UT-Sprachen (...)`
- `Ausgabeformat`
Praxis:
- `Minimale Titellänge` filtert Bonusmaterial früh weg
- `TMDb Runtime-Abzug ...` lockert bei problematischen Blu-rays die Laufzeitprüfung der Playlist-Kandidaten
- Review-Sprachen bestimmen, welche Audio-/Untertitelspuren in der Review schon vorausgewählt sind
### 6. Queue-Verhalten definieren
Stelle diese vier Felder bewusst ein:
- `Parallele Jobs`
- `Max. parallele Audio CD Jobs`
- `Max. Encodes gesamt`
- optional `Audio CDs: Queue-Reihenfolge überspringen`
- `Max. Encodes gesamt (medienunabhängig)`
- `Audio CDs: Queue-Reihenfolge überspringen`
Damit steuerst du Durchsatz, Priorität und Lastverteilung.
Damit steuerst du, wie aggressiv Ripster mehrere Jobs gleichzeitig startet.
### 4) Metadatenquellen absichern
### 7. Optional: User-Presets und Standard-Zuordnungen
Film:
Unter `Settings -> Encode-Presets` kannst du:
- OMDb-Key prüfen
- eigene HandBrake-User-Presets anlegen
- Standard-Zuordnungen für `Blu-ray Film`, `Blu-ray Serie`, `DVD Film`, `DVD Serie` setzen
Serien:
Diese Defaults wirken später in der Review automatisch vorbefüllend.
- TMDb Read Access Token setzen
- Sprache/Fallback-Sprachen festlegen
### 8. Optional: Benachrichtigungen
CD/Audiodaten:
Prüfe:
- `MusicBrainz aktiviert` nach Bedarf
- `PushOver aktiviert`
- Token/User/optional Device
- Event-Toggles wie `Bei manueller Auswahl senden`, `Bei Rip-Start senden`, `Bei Erfolg senden`
### 5) Optional: Benachrichtigungen
Danach in `Settings` den Button `PushOver Test` ausführen.
- PushOver-Zugangsdaten setzen
- `PushOver Test` ausführen
- Event-Toggles pro Phase prüfen
### 9. Optional: Automatisierung
### 6) Optional: Automatisierung
Erst wenn die Grundkonfiguration stabil ist:
1. Skripte testen
2. Skriptketten bauen/testen
3. Cronjobs erst danach aktivieren
1. Skripte anlegen und testen
2. Skriptketten aufbauen
3. Cronjobs aktivieren
## Funktionsprüfung (Kurztest)
## Funktionsprüfung
1. Disc in `Ripper` erkennen lassen.
2. `Analyse starten`.
3. Metadaten übernehmen.
4. Bis `Bereit zum Encodieren` laufen.
5. Encode starten und Abschluss in `Historie` prüfen.
Ein sinnvoller Kurztest:
1. Disc in `Ripper` erkennen lassen
2. `Analyse starten`
3. TMDb-Metadaten übernehmen
4. ggf. Playlist-/RAW-Entscheidung durchlaufen
5. bis `Bereit zum Encodieren` kommen
6. Encode starten
7. Ergebnis in `Historie` prüfen
## Typische Konfigurationsfehler
| Symptom | Häufige Ursache |
|---|---|
| Job bleibt früh auf Fehler | Toolkommando falsch oder nicht im PATH |
| RAW/Output landet am falschen Ort | Profilpfade nicht gesetzt, Fallback greift |
| Serienausgabe landet bei Filmen | Serienpfade/Serientemplates fehlen |
| Queue verhält sich unerwartet | Gesamtlimit und Lane-Limits widersprechen sich |
| Disc wird nicht erkannt | Laufwerksmodus oder Auto-Erkennung passt nicht |
| Playlist-Auswahl wirkt unplausibel | `Minimale Titellänge` oder `TMDb Runtime-Abzug ...` ist zu streng/zu locker |
| falsche Spuren sind in der Review vorausgewählt | Review-Sprachfilter oder HandBrake-Args greifen unerwartet |
| Ausgabe landet am falschen Ort | Profilpfade oder Templates greifen über Fallback |
| Queue verhält sich unerwartet | `Parallele Jobs`, CD-Limit und Gesamtlimit widersprechen sich |
## Weiter
- [Erster Lauf](quickstart.md)
- [GUI-Seiten](../gui/index.md)
- [Workflows aus Nutzersicht](../workflows/index.md)
- [Alle Einstellungen](../configuration/settings-reference.md)
+81 -71
View File
@@ -1,107 +1,117 @@
# Installation
Die empfohlene Installation läuft über `install.sh` und richtet Ripster vollständig ein.
Die empfohlene Installation startet immer über `setup.sh`. `setup.sh` lädt das passende `install.sh` aus dem gewünschten Branch und übergibt alle weiteren Parameter unverändert an den eigentlichen Installer.
Du musst dafür **keine Tools manuell vorinstallieren**. Das Skript installiert die benötigten Abhängigkeiten automatisch, sofern sie nicht explizit mit `--no-*` übersprungen werden.
Wichtig:
## Unterstützte Systeme und Anforderungen
- Standard-Einstieg: `setup.sh`
- kein `curl | bash`
- du musst die Tools nicht manuell vorinstallieren, sofern du sie nicht bewusst mit `--no-*` auslässt
- unterstützt laut Script: `debian`, `ubuntu`, `linuxmint`, `pop`
- Ausführung als `root` (oder via `sudo`)
## Voraussetzungen
- unterstütztes Linux-System
- Root-Rechte oder `sudo`
- Internetzugang während der Installation
## Schritt-für-Schritt
Der Installer erkennt aktuell:
### 1. Installationsskript herunterladen
- Debian
- Ubuntu
- Linux Mint
- Pop!_OS
## Standardinstallation
```bash
wget -qO install.sh https://raw.githubusercontent.com/Mboehmlaender/ripster/main/install.sh
wget -qO setup.sh https://raw.githubusercontent.com/Mboehmlaender/ripster/main/setup.sh
bash setup.sh
```
### 2. Installation ausführen
Ohne `--branch` fragt `setup.sh` interaktiv nach dem gewünschten Branch.
Die typischen Branches sind:
- `main`: stabiles Release
- `dev`: aktueller Entwicklungsstand
## Installation mit Branch oder Optionen
Beispiele:
```bash
sudo bash install.sh
bash setup.sh --branch main
bash setup.sh --branch dev
bash setup.sh --branch dev --dir /opt/ripster --user ripster --port 3001 --host 192.168.1.10
```
Während der Installation wählst du den HandBrake-Modus:
`setup.sh` wertet selbst nur `--branch` aus. Alles andere übernimmt `install.sh`.
- `1` Standard (Paketinstallation)
- `2` GPU/NVDEC (gebündeltes Binary)
## Wichtige Optionen von `install.sh`
### 3. Dienststatus prüfen
| Option | Default | Zweck |
|---|---|---|
| `--branch <branch>` | `dev` | installiert genau diesen Git-Branch |
| `--dir <pfad>` | `/opt/ripster` | Installationsverzeichnis |
| `--user <benutzer>` | `ripster` | Systembenutzer für den Dienst |
| `--port <port>` | `3001` | Backend-Port |
| `--host <hostname|ip>` | automatisch ermittelte Host-IP | Hostname/IP für Webzugriff und CORS |
| `--no-makemkv` | aus | MakeMKV nicht installieren |
| `--no-handbrake` | aus | HandBrake nicht installieren |
| `--no-nginx` | aus | nginx-Setup überspringen |
| `--no-system-deps` | aus | Systemabhängigkeiten nicht nachinstallieren |
| `--reinstall` | aus | bestehende Installation aktualisieren |
## Was der Installer einrichtet
Typischer Ablauf:
1. Betriebssystem, Root-Rechte und Host prüfen
2. Systemabhängigkeiten installieren
3. Node.js 20 sicherstellen
4. optional MakeMKV installieren
5. optional HandBrakeCLI installieren
6. optional nginx konfigurieren
7. Repository nach `--dir` klonen oder aktualisieren
8. Backend-/Frontend-Abhängigkeiten installieren
9. Frontend bauen
10. `backend/.env` und Laufzeitverzeichnisse vorbereiten
11. `ripster-backend.service` anlegen und starten
## Dienst prüfen
```bash
sudo systemctl status ripster-backend
```
### 4. Weboberfläche öffnen
- mit nginx (Standard): `http://<Server-IP>`
- ohne nginx (`--no-nginx`): API auf `http://<Server-IP>:3001/api`
## Was `install.sh` konkret einrichtet
1. prüft Betriebssystem, Root-Rechte und ermittelt Host/IP
2. aktualisiert Paketquellen und installiert Basispakete (`curl`, `wget`, `git`, `mediainfo`, `udev` ...)
3. installiert Node.js 20 (falls nicht passend vorhanden)
4. installiert optional MakeMKV (Build aus den offiziellen Quellen)
5. installiert optional HandBrakeCLI (Standard oder GPU/NVDEC)
6. installiert optional nginx
7. legt den Systembenutzer `ripster` an (ohne Login-Shell, ohne Home) und ergänzt Gruppen (`cdrom`, `optical`, `disk`, `video`, `render`, falls vorhanden)
8. klont das Repository nach `/opt/ripster` (oder aktualisiert bei `--reinstall`)
9. legt Verzeichnisse an:
- `/opt/ripster/backend/data`
- `/opt/ripster/backend/logs`
- `/opt/ripster/backend/data/output/raw`
- `/opt/ripster/backend/data/output/movies`
- `/opt/ripster/backend/data/logs`
10. installiert npm-Abhängigkeiten (Root, Backend, Frontend) und baut das Frontend
11. erzeugt `backend/.env` (bei `--reinstall` bleibt bestehende `.env` erhalten)
12. setzt Rechte/Besitz und erstellt bei sudo-Installation zusätzlich `~/.MakeMKV` für den aufrufenden Benutzer
13. erzeugt und startet `ripster-backend.service`
14. konfiguriert und startet nginx (falls nicht übersprungen)
## Wichtige Optionen
| Option | Default laut Script | Zweck |
|---|---|---|
| `--branch <branch>` | `dev` | Branch für die Installation |
| `--dir <pfad>` | `/opt/ripster` | Installationsverzeichnis |
| `--user <benutzer>` | `ripster` | Service-Benutzer |
| `--port <port>` | `3001` | Backend-Port |
| `--host <hostname>` | automatisch ermittelte Host-IP | Hostname/IP für Webzugriff/CORS |
| `--no-makemkv` | aus | MakeMKV-Installation überspringen |
| `--no-handbrake` | aus | HandBrake-Installation überspringen |
| `--no-nginx` | aus | nginx-Setup überspringen |
| `--reinstall` | aus | bestehende Installation aktualisieren |
Beispiele:
Typische Aufrufe im Betrieb:
```bash
sudo bash install.sh --branch dev
sudo bash install.sh --port 8080 --host ripster.local
sudo bash install.sh --reinstall
sudo journalctl -u ripster-backend -f
sudo systemctl restart ripster-backend
```
## Betrieb im Alltag
## Update einer bestehenden Installation
Standard:
```bash
# Logs live ansehen
sudo journalctl -u ripster-backend -f
# Dienst neu starten
sudo systemctl restart ripster-backend
# Update aus bestehender Installation
sudo bash /opt/ripster/install.sh --reinstall
```
## Häufige Stolperstellen
Wenn die Installation mit abweichenden Kernparametern eingerichtet wurde, dieselben Parameter wieder mitgeben:
- Laufwerk nicht zugreifbar: Laufwerksrechte/Gruppen prüfen
- CLI-Tool fehlt wegen `--no-*`: Tool nachinstallieren oder Befehl in Settings korrigieren
- UI nicht erreichbar: nginx-Status und Firewall prüfen
```bash
sudo bash /opt/ripster/install.sh --reinstall --dir /opt/ripster --user ripster --port 3001 --host 192.168.1.10
```
Alternativ kannst du auch erneut über `setup.sh` gehen:
```bash
sudo bash /opt/ripster/setup.sh --reinstall
```
`--reinstall` aktualisiert die Installation, behält aber die persistenten Daten der bestehenden Instanz.
## Danach weiter
+29 -19
View File
@@ -1,19 +1,31 @@
# Voraussetzungen
Die Voraussetzungen hängen davon ab, **wie** du Ripster betreibst.
Die Voraussetzungen hängen davon ab, ob du Ripster produktiv installieren oder lokal entwickeln willst.
## Produktionsbetrieb mit `install.sh` (Standard)
## Produktionsbetrieb mit `setup.sh`
Für den normalen Betrieb sind nur wenige Punkte vorab nötig.
Für den normalen Betrieb brauchst du nur die Basisvoraussetzungen. Die eigentlichen Tools werden vom Installer eingerichtet, sofern du sie nicht bewusst mit `--no-*` überspringst.
### Pflicht
- unterstütztes Linux-System (laut Script: Debian, Ubuntu, Linux Mint, Pop!_OS)
- `root`-Rechte
- unterstütztes Linux-System
- Root-Rechte oder `sudo`
- Internetzugang während der Installation
- optisches Laufwerk für Disc-Betrieb
- optisches Laufwerk, wenn du Disc-Workflows nutzen willst
`install.sh` installiert die benötigten Tools selbst (u. a. Node.js, MakeMKV, HandBrakeCLI, MediaInfo), sofern sie nicht explizit per `--no-*` übersprungen werden.
Der Installer unterstützt aktuell:
- Debian
- Ubuntu
- Linux Mint
- Pop!_OS
Standard-Einstieg:
```bash
wget -qO setup.sh https://raw.githubusercontent.com/Mboehmlaender/ripster/main/setup.sh
bash setup.sh
```
### Laufwerk kurz prüfen
@@ -22,27 +34,25 @@ ls /dev/sr*
lsblk | grep rom
```
Wenn nötig Rechte setzen (Beispiel):
```bash
sudo chmod a+rw /dev/sr0
```
### Optional vorab
- OMDb API-Key (kann auch nach Installation in den `Settings` gesetzt werden)
- PushOver-Zugangsdaten (optional)
- TMDb Read Access Token für Film-/Serien-Metadaten
- PushOver-Zugangsdaten für Benachrichtigungen
## Entwicklungsmodus (nur für Dev)
Beides kann auch erst nach der Installation in `Settings` gesetzt werden.
## Entwicklungsmodus
Wenn du lokal entwickelst (`./start.sh`, `npm run dev`), gelten zusätzliche Voraussetzungen:
- Node.js >= 20.19.0
- Node.js `>= 20.19.0`
- `makemkvcon`, `HandBrakeCLI`, `mediainfo` im `PATH`
Details: [Entwicklungsumgebung](../deployment/development.md)
## Abschluss-Checkliste
- [ ] Produktionsbetrieb: Linux + root + Internet + Laufwerk vorhanden
- [ ] Dev-Modus (nur falls benötigt): Node.js und CLI-Tools verfügbar
- [ ] Linux + Root/Sudo + Internet vorhanden
- [ ] optisches Laufwerk vorhanden, falls Disc-Ripping genutzt werden soll
- [ ] TMDb/PushOver-Zugangsdaten liegen bereit, falls diese Funktionen sofort genutzt werden sollen
- [ ] im Dev-Modus zusätzlich Node.js und CLI-Tools lokal verfügbar
+99 -38
View File
@@ -1,19 +1,25 @@
# Erster Lauf
Dieser Ablauf führt einen vollständigen Disc-Job von Erkennung bis fertiger Datei durch.
Dieser Ablauf führt einen typischen Disc-Job von Erkennung bis fertiger Datei durch.
## 1) Disc erkennen
## 1. Disc erkennen
1. `Ripper` öffnen.
2. Disc einlegen.
3. Auf `Medium erkannt` warten.
1. `Ripper` öffnen
2. Disc einlegen
3. auf `Medium erkannt` warten
Prüfen:
- `Disk-Information` zeigt Device/Label.
- Falls nicht: `Laufwerk neu lesen`.
- `Disk-Information` zeigt Device, Label und Laufwerksstatus
- falls nicht: `Laufwerk neu lesen`
## 2) Analyse starten
Relevante Settings:
- `Laufwerksmodus`
- `Automatische Disk-Erkennung`
- `Polling Intervall (ms)`
## 2. Analyse starten
Aktion:
@@ -22,69 +28,124 @@ Aktion:
Erwartung:
- Status `Analyse`
- danach Metadaten-Dialog
- danach der Metadaten-Dialog
## 3) Metadaten bestätigen
Relevantes Setting:
- `Minimale Titellänge (Minuten)` beeinflusst bereits, welche Titel/Playlists Ripster später als relevant betrachtet
## 3. Metadaten in TMDb bestätigen
Im Dialog:
1. Treffer suchen/auswählen.
2. Bei Serie zusätzlich Disc-Nummer setzen.
3. `Auswahl übernehmen`.
1. Treffer suchen oder filtern
2. Film oder Serie auswählen
3. bei Serien zusätzlich `Disc-Nummer` setzen
4. `Auswahl übernehmen`
Mögliche Abzweigungen:
- Duplikatfilm -> `Übernahme erzwingen` oder `Multipart movie`
- vorhandenes RAW -> Entscheidungsdialog (weiterverwenden oder neu rippen)
- Duplikatfilm: `Übernahme erzwingen` oder `Multipart movie`
- vorhandenes RAW: Entscheidungsdialog `weiterverwenden` oder `neu rippen`
## 4) Rip/Review-Phase
Relevante Settings:
Normalfall:
- `TMDb Read Access Token`
- `Film-Sprache`
- `Fallback Sprache`
- `Startbereit` -> `Rippen` -> `Mediainfo-Pruefung`
## 4. RAW- und Playlist-Entscheidungen
Mögliche Alternativen:
Je nach Disc-Situation geht es jetzt unterschiedlich weiter.
- vorhandenes RAW: direkter Sprung in Prüfung
- Blu-ray/DVD-Entscheidung nötig: `Warte auf Auswahl` für Playlist/Titel
### Normalfall
## 5) Encode-Review abschließen
`Startbereit` -> `Rippen` -> `Mediainfo-Prüfung`
Bei `Bereit zum Encodieren`:
### Vorhandenes RAW
- Titel festlegen
- Audio-/Subtitle-Spuren prüfen
- optional Preset auswählen
- optional Pre-/Post-Skripte wählen
Kein neuer Rip, sondern erst eine Entscheidung:
- vorhandenes RAW weiterverwenden
- RAW löschen und Rip neu starten
- bei passenden Film-Konstellationen optional Multipart mit Orphan-RAW
### Playlist- oder Titelauswahl erforderlich
Bei bestimmten Blu-ray-/DVD-Fällen erscheint `Warte auf Auswahl`.
Dann bestätigst du:
- eine Playlist
- oder einen/mehrere HandBrake-Titel
Relevante Settings:
- `Minimale Titellänge (Minuten)`
- `TMDb Runtime-Abzug für Playlistfilter (%)`
## 5. Encode-Review abschließen
Bei `Bereit zum Encodieren` prüfst du:
- Titelwahl
- Audio-Spuren
- Untertitel
- User-Preset oder HandBrake-Preset
- Pre-/Post-Encode-Skripte und Ketten
Dann:
- `Encoding starten`
## 6) Encoding überwachen
Relevante Settings:
- `HandBrake Preset` und `HandBrake Extra Args` je Medium
- `Review Audio-Sprachen (...)`
- `Review UT-Sprachen (...)`
- `Ausgabeformat`
- Standard-Zuordnungen unter `Settings -> Encode-Presets`
## 6. Encoding überwachen
Während `Encodieren`:
- Fortschritt/ETA im Ripper
- Queue- und Runtime-Status beobachten
- optional Logkontrolle in Historie
- Queue-Status beobachten
- bei Bedarf `Hardware`-Ansicht öffnen
## 7) Ergebnis verifizieren
Relevante Settings:
- `Parallele Jobs`
- `Max. parallele Audio CD Jobs`
- `Max. Encodes gesamt (medienunabhängig)`
- `Hardware Monitoring aktiviert`
- `Hardware Monitoring Intervall (ms)`
## 7. Ergebnis verifizieren
Nach `Fertig`:
1. `Historie` öffnen.
2. Jobdetail prüfen.
3. Output-Pfad und Log plausibilisieren.
1. `Historie` öffnen
2. Jobdetail prüfen
3. Output-Pfad und Log kontrollieren
Kontrollpunkte:
- finale Datei am erwarteten Template-Pfad
- RAW-Ordnerzustand finalisiert (kein `Incomplete_`)
- finale Datei liegt am erwarteten Template-Pfad
- RAW-Ordner ist finalisiert
- optional `.nfo` wurde erzeugt, falls aktiviert
## 8) Typische Folgeaktionen
Relevante Settings:
- falsche Metadaten: `OMDb neu zuordnen`
- `output_template_*`
- `series_dir_*` und Serien-Templates
- `generate_nfo_after_encode`
## 8. Typische Folgeaktionen
- falsche TMDb-Zuordnung: `TMDb neu zuweisen`
- andere Trackauswahl: `Review neu starten`
- erneuter Encode aus RAW: `RAW neu encodieren`
- gleicher Plan erneut: `Encode neu starten`
- Rip erneut versuchen: `Retry Rippen`