Files
ripster/docs/index.md

3.8 KiB
Raw Blame History

Ripster

Halbautomatische Disc-Ripping-Plattform für DVDs und Blu-rays



Was ist Ripster?

Ripster ist eine webbasierte Anwendung zur halbautomatischen Digitalisierung von DVDs und Blu-rays. Die Anwendung kombiniert bewährte Open-Source-Tools zu einem durchgängigen, komfortablen Workflow:

Disc einlegen → Erkennung → Analyse → Metadaten wählen → Rippen → Encodieren → Fertig

Kernfunktionen

Feature Beschreibung
Echtzeit-Updates WebSocket-basierte Live-Statusanzeige ohne Reload
Intelligente Playlist-Analyse Erkennt Blu-ray Playlist-Verschleierung (Fake-Playlists)
Track-Auswahl Individuelle Auswahl von Audio- und Untertitelspuren
Orphan-Recovery Import von bereits gerippten Dateien als Jobs
PushOver-Benachrichtigungen Mobile Alerts bei Fertigstellung oder Fehlern
DB-Korruptions-Recovery Automatische Quarantäne bei korrupten SQLite-Dateien
Re-Encoding Erneutes Encodieren ohne neu rippen

Technologie-Stack

=== "Backend"

- **Node.js** >= 20.19.0 mit Express.js
- **SQLite3** mit automatischen Schema-Migrationen
- **WebSocket** (`ws`) für Echtzeit-Kommunikation
- Externe CLI-Tools: `makemkvcon`, `HandBrakeCLI`, `mediainfo`

=== "Frontend"

- **React** 18.3.1 mit React Router
- **Vite** 5.4.12 als Build-Tool
- **PrimeReact** 10.9.2 als UI-Bibliothek
- WebSocket-Client für Live-Updates

=== "Externe Tools"

| Tool | Zweck |
|------|-------|
| `makemkvcon` | Disc-Analyse & MKV/Backup-Ripping |
| `HandBrakeCLI` | Video-Encoding |
| `mediainfo` | Track-Informationen aus gerippten Dateien |
| OMDb API | Filmmetadaten (Titel, Poster, IMDb-ID) |

Schnellstart

# 1. Repository klonen
git clone https://github.com/YOUR_GITHUB_USERNAME/ripster.git
cd ripster

# 2. Starten (Node.js >= 20 erforderlich)
./start.sh

# 3. Browser öffnen
open http://localhost:5173

!!! tip "Erste Schritte" Die vollständige Installationsanleitung mit allen Voraussetzungen findest du unter Erste Schritte.


Pipeline-Überblick

flowchart LR
    IDLE --> DD[DISC_DETECTED]
    DD --> META[METADATA\nSELECTION]
    META -->|1 Kandidat| RTS[READY_TO\nSTART]
    META -->|Obfuskierung| WUD[WAITING_FOR\nUSER_DECISION]
    WUD --> RTS
    RTS --> RIP[RIPPING]
    RTS -->|Raw vorhanden| MIC
    RIP --> MIC[MEDIAINFO\nCHECK]
    MIC --> RTE[READY_TO\nENCODE]
    RTE --> ENC[ENCODING]
    ENC --> PES[POST_ENCODE\nSCRIPTS]
    ENC -->|keine Skripte| FIN([FINISHED])
    PES --> FIN
    ENC --> ERR([ERROR])
    RIP --> ERR

    style FIN fill:#e8f5e9,stroke:#66bb6a,color:#2e7d32
    style ERR fill:#ffebee,stroke:#ef5350,color:#c62828
    style WUD fill:#fff8e1,stroke:#ffa726,color:#e65100
    style PES fill:#f3e5f5,stroke:#ab47bc,color:#6a1b9a
    style ENC fill:#f3e5f5,stroke:#ab47bc,color:#6a1b9a