UDF-Volume-Label-Leser (Blu-rays haben keine ISO-Bridge) + Etappe 12 (ARM)
Ampel / ampel (push) Successful in 35s

Praxis-Befund mit echter BD-50: reines UDF, der ISO-PVD-Leser griff nicht.
Jetzt ECMA-167-Weg (AVDP Sektor 256 -> Main VDS -> PVD Tag-ID 1 ->
Volume Identifier als d-string), mit Tests fuer das d-string-Parsing.

ROADMAP Etappe 12 aus der ARM-Vollanalyse: was wir uebernehmen
(Fingerprint-DB, bdmt_eng.xml, Suchdegradation, Manual Mode, Apprise,
Multi-Drive, Backup-Modus) und wo wir ARM schlagen (Serien-Episoden-
Matching, Main-Feature per Laufzeitabgleich).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-07-23 15:33:27 +02:00
parent 1aa51ca943
commit bd6409038e
3 changed files with 124 additions and 7 deletions
+43
View File
@@ -251,3 +251,46 @@ Bind-Mounts statt devices: (EPERM), UI rief hartkodiert localhost:8000 auf.
- [x] compose: devices: statt Bind-Mounts; Ausgabe aufs media-Volume
- [ ] Jellyfin-Post-Processing an den Worker anbinden (NFO/Poster nach dem Rip)
- [ ] Auth vor die schreibenden Endpoints (JWT existiert, schützt aber nichts)
---
## Etappe 12: Besser als ARM (aus ARM-Analyse 23.07.2026)
**Quelle:** Vollanalyse von Automatic Ripping Machine v2.24 (Code, arm.yaml,
Wiki, Issues). Was Rippy strukturell schon besser macht: Lossless-first statt
Transcode-first (ARMs BD-Default ist ein 1080p30-Downscale!), Celery+Postgres
statt Prozess-pro-udev-Event+SQLite (ARM-UI friert beim Rippen ein, #1046),
ioctl-Watcher statt fragiler udev-Ketten (ARMs größte Support-Quelle), NFO +
Jellyfin-Konvention nativ (ARM kann nur Emby-Refresh, keine NFOs).
**Übernehmen (priorisiert):**
- [ ] **Disc-Fingerprint-DB (selbstlernend)** — ARMs beste Idee, besser gemacht:
Tabelle disc_fingerprints (DVD-CRC64/MusicBrainz-DiscID/BD-Label-Hash →
bestätigte Metadaten). Jede UI-Bestätigung schreibt zurück; zweite Disc
derselben Serie wird sofort erkannt. Lokal statt ARMs Crowd-Server
(Single Point of Failure auf Free-Hosting).
- [ ] **BD-Titel aus BDMV/META/DL/bdmt_eng.xml** als Identifikations-Stufe vor
den APIs (echter Disc-Titel statt Label-Raterei).
- [ ] **Progressive Suchdegradation** bei TMDB/OMDb: mit Jahr → ohne Jahr →
tokenweises Titel-Stripping; jede Stufe senkt die Confidence.
- [ ] **Duplikat-Schutz**: Fingerprint-Treffer → „schon gerippt am X — trotzdem?"
- [ ] **Track-Auswahl (Manual Mode), besser als ARM**: Job-Status
awaiting_selection nach makemkvcon-info; Track-Tabelle im UI mit
Heuristik-Vorauswahl; Timeout → Weiter mit Default (ARM bricht hart ab,
erlaubt nur EINE Auswahl).
- [ ] **Min/Max-Titellänge + Extras**: Bonusmaterial nach extras/ (versteht
Jellyfin nativ) statt alles flach.
- [ ] **Apprise-Benachrichtigungen**: eine Lib für Telegram/Discord/…,
Hooks auf job_completed/failed/awaiting_selection, Deep-Link ins UI.
- [ ] **Multi-Drive-Verwaltung**: drives-Tabelle (Seriennummer, Custom-Name,
UHD-fähig-Flag), parallele Rips, Job↔Drive-Zuordnung.
- [ ] **Backup-Modus** (makemkvcon backup --decrypt) als Plan B für Problem-Discs.
- [ ] **Jellyfin-Refresh** nach Ablage (POST /Library/Refresh).
**ARM schlagen (Alleinstellung):**
- [ ] **Serien-Episoden-Erkennung** — ARMs offene Wunde seit 2019 (#395):
TVDB-Episodenlaufzeiten gegen Track-Laufzeiten matchen (±5 %,
Reihenfolge-Constraint, Disc-Nr aus Label), Vorschlag
„Show/Season 02/Show S02E05.mkv" im Preview bestätigen.
- [ ] **Main-Feature per Laufzeitabgleich** mit TMDB-Runtime (±3 min) statt
ARMs „größte Datei gewinnt" (#1297-Fehlklasse).