No description
- Shell 73.7%
- Python 13%
- JavaScript 8.9%
- HTML 4.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| conf | ||
| doc/04_Module | ||
| lang | ||
| lib | ||
| store | ||
| www | ||
| .gitignore | ||
| CHANGELOG.md | ||
| disk2iso-dvd.code-workspace | ||
| install.sh | ||
| LICENSE | ||
| README.md | ||
| VERSION | ||
disk2iso DVD Module
Video-DVD Ripping Plugin für disk2iso - ermöglicht entschlüsseltes und verschlüsseltes Kopieren von DVD-Video Discs.
🚀 Features
- Entschlüsseltes DVD-Backup - dvdbackup mit libdvdcss2
- Verschlüsselte ISO-Kopien - ddrescue/dd Fallback
- Intelligentes Fallback-System - Automatischer Methodenwechsel bei Fehlern
- Retry-Mechanismus - Bis zu 3 Versuche mit verschiedenen Methoden
- TMDB Integration - Automatische Film-Metadaten (optional)
- Fortschritts-Tracking - Echtzeit-Prozentanzeige
- Multi-Method Support - 3 verschiedene Kopiermethoden
📋 Voraussetzungen
- disk2iso >= v1.2.0 (Installation)
- dvdbackup (empfohlen, für entschlüsselte Backups)
- libdvd-pkg / libdvdcss2 (für CSS-Entschlüsselung)
- genisoimage (für ISO-Erstellung aus entschlüsselten Backups)
- ddrescue (optional, für robustes Kopieren)
- dd (Fallback, immer verfügbar)
📦 Installation
Automatisch (empfohlen)
# Download neueste Version
curl -L https://github.com/DirkGoetze/disk2iso-dvd/releases/latest/download/dvd-module.zip -o /tmp/dvd.zip
# Entpacken nach disk2iso
cd /opt/disk2iso
sudo unzip /tmp/dvd.zip
# Service neu starten
sudo systemctl restart disk2iso
Manuell
- Download neueste Release
- Entpacke nach
/opt/disk2iso/ - Setze Berechtigungen:
sudo chown -R root:root /opt/disk2iso/ - Restart Service:
sudo systemctl restart disk2iso
Via Web-UI (ab v1.3.0)
- Öffne disk2iso Web-UI
- Gehe zu Einstellungen → Module
- Klicke auf DVD → Installieren
⚙️ Konfiguration
Manifest-Datei
Das Modul wird über conf/libdvd.ini konfiguriert:
[module]
name=dvd
version=1.2.0
enabled=true
[dependencies]
# Kritische externe Tools
external=
# Optionale Tools
optional=dvdbackup,genisoimage,ddrescue
[folders]
# Ausgabe-Ordner (unterhalb von OUTPUT_DIR)
output=dvd
libdvdcss2 installieren (für CSS-Entschlüsselung)
# Debian/Ubuntu
sudo apt install libdvd-pkg
sudo dpkg-reconfigure libdvd-pkg
# Oder manuell
sudo apt install libdvdcss2
Modul aktivieren/deaktivieren
# Deaktivieren (im Manifest)
sudo nano /opt/disk2iso/conf/libdvd.ini
# Setze: enabled=false
# Service neu starten
sudo systemctl restart disk2iso
🔧 Verwendung
Automatisch
Lege eine Video-DVD ein - disk2iso erkennt automatisch den Typ und startet das Kopieren:
# Status prüfen
sudo systemctl status disk2iso
# Logs ansehen
sudo journalctl -u disk2iso -f
Via Web-UI
- Öffne http://your-server:5000
- Lege DVD ein
- Klicke auf Kopieren starten
- Verfolge Fortschritt in Echtzeit
📊 Ausgabe-Struktur
Methode 1: Entschlüsselt (dvdbackup)
/media/iso/dvd/
├── Movie_Title_2024/
│ ├── VIDEO_TS/ # Entschlüsselter DVD-Inhalt
│ │ ├── VIDEO_TS.IFO
│ │ ├── VTS_01_0.IFO
│ │ ├── VTS_01_1.VOB
│ │ └── ...
│ └── Movie_Title_2024.iso # ISO aus VIDEO_TS erstellt
└── Movie_Title_2024.log # Kopiervorgang-Log
Methode 2/3: Verschlüsselt (ddrescue/dd)
/media/iso/dvd/
├── Movie_Title_2024.iso # ISO-Image (verschlüsselt)
└── Movie_Title_2024.iso.log # Kopiervorgang-Log
🛠️ Kopiermethoden
Methode 1: dvdbackup + genisoimage (empfohlen)
- Entschlüsselt - CSS-Schutz wird entfernt
- Schnell - Optimierte Lesegeschwindigkeit
- Kompatibel - Spielt auf allen Geräten ab
- Ordner-Struktur - VIDEO_TS zugänglich
# Automatisch verwendet wenn dvdbackup verfügbar
sudo apt-get install dvdbackup genisoimage libdvd-pkg
Methode 2: ddrescue (Fallback bei Fehlern)
- Robust - Automatisches Retry bei Lesefehlern
- Verschlüsselt - ISO bleibt kopiergeschützt
- Fortsetzen - Map-Datei für Unterbrechungen
sudo apt-get install gddrescue
Methode 3: dd (Letzter Fallback)
- Einfach - Keine Extra-Tools nötig
- Langsam - Keine Fehlerbehandlung
- Verschlüsselt - ISO bleibt kopiergeschützt
# Immer verfügbar (Teil von coreutils)
🔄 Intelligentes Fallback-System
Das Modul versucht automatisch verschiedene Methoden:
- Versuch 1: dvdbackup (entschlüsselt, schnell)
- Versuch 2: ddrescue (verschlüsselt, robust) - bei dvdbackup-Fehler
- Versuch 3: dd (verschlüsselt, langsam) - bei ddrescue-Fehler
Fehler werden geloggt und der Benutzer wird informiert:
[ERROR] dvdbackup failed (Exit: 1) - trying ddrescue...
[INFO] Switching to ddrescue method
[SUCCESS] DVD copied successfully with ddrescue
🔌 API-Endpunkte
Keine zusätzlichen API-Endpunkte - das Modul integriert sich in die Haupt-API:
# Status-Abfrage
curl http://localhost:5000/api/status
# Ausgabe bei DVD Kopiervorgang:
{
"status": "copying",
"disc_type": "dvd-video",
"progress": 65,
"method": "dvdbackup",
"current_attempt": 1
}
🧪 Entwicklung
Struktur
disk2iso-dvd/
├── conf/
│ └── libdvd.ini # Modul-Manifest
├── lang/
│ ├── libdvd.de # Deutsche Übersetzung
│ ├── libdvd.en # Englische Übersetzung
│ ├── libdvd.es # Spanische Übersetzung
│ └── libdvd.fr # Französische Übersetzung
└── lib/
└── libdvd.sh # Haupt-Bibliothek
Lokale Tests
# In disk2iso-Umgebung testen
cd /opt/disk2iso
source lib/libcommon.sh
source lib/libdvd.sh
# Abhängigkeiten prüfen
dvd_check_dependencies
# Testlauf mit DVD
copy_video_dvd
📝 Changelog
Siehe CHANGELOG.md für alle Änderungen.
🤝 Beitragen
- Fork das Repository
- Erstelle einen Feature Branch (
git checkout -b feature/amazing-feature) - Commit deine Änderungen (
git commit -m 'Add amazing feature') - Push zum Branch (
git push origin feature/amazing-feature) - Öffne einen Pull Request
📜 Lizenz
MIT License - siehe LICENSE für Details.
🔗 Links
- disk2iso Core
- Blu-ray Module (optional)
- TMDB Module (optional)
- MQTT Module (optional)
💬 Support
- Issues: GitHub Issues
- Diskussionen: GitHub Discussions
- Core Projekt: disk2iso