Update docs for EAN-first workflow and genre field
- README: mention EAN-first auto-rip in quickstart - BEDIENUNGSANLEITUNG: rewrite workflow diagram and interactive example for EAN-first flow (auto-rip on MB hit, fallback on miss), document genre field in album.json, update multi-disc and tips sections Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
8b449493cd
commit
6c12510f76
2 changed files with 63 additions and 31 deletions
|
|
@ -54,28 +54,30 @@ musiksammlung --help
|
||||||
## 3. Workflow-Überblick
|
## 3. Workflow-Überblick
|
||||||
|
|
||||||
```
|
```
|
||||||
CD einlegen
|
musiksammlung rip
|
||||||
│
|
│
|
||||||
▼
|
▼
|
||||||
musiksammlung rip ← CDs rippen, CDDB-Lookup, Dateien benennen
|
EAN/Barcode eingeben (Enter = überspringen)
|
||||||
│ (optional: EAN-Abfrage → MusicBrainz)
|
|
||||||
▼
|
|
||||||
temp/Album/
|
|
||||||
CD1/
|
|
||||||
track01.flac ← kein CDDB-Treffer
|
|
||||||
track02.flac
|
|
||||||
album.json ← automatisch erzeugt (CDDB oder MusicBrainz)
|
|
||||||
│
|
│
|
||||||
├─ album.json bereits vorhanden (CDDB/MusicBrainz)?
|
├─ MusicBrainz-Treffer → Auto-Rip
|
||||||
│ ja → direkt weiter mit musiksammlung apply
|
│ Zeige: Artist – Album (Year), N Discs, M Tracks
|
||||||
|
│ Für jede Disc: "CD 1/3 einlegen, Enter" → Rip → Rename
|
||||||
|
│ album.json automatisch aus MusicBrainz-Daten
|
||||||
|
│ → direkt weiter mit musiksammlung apply
|
||||||
│
|
│
|
||||||
└─ nein → album.json manuell erzeugen (eine Variante wählen):
|
└─ Kein Treffer / EAN leer → Fallback
|
||||||
A: musiksammlung scan --from-text trackliste.txt
|
Albumname eingeben → CD-Nummer → Rip → CDDB-Confirm
|
||||||
B: musiksammlung scan back.jpg
|
album.json aus CDDB-Daten (falls bestätigt)
|
||||||
C: musiksammlung scan back.jpg --vision
|
│
|
||||||
D: musiksammlung scan --barcode 0602557360561
|
├─ album.json vorhanden?
|
||||||
→ album.json prüfen/korrigieren
|
│ ja → direkt weiter mit musiksammlung apply
|
||||||
→ musiksammlung apply
|
│
|
||||||
|
└─ nein → album.json manuell erzeugen:
|
||||||
|
A: musiksammlung scan --from-text trackliste.txt
|
||||||
|
B: musiksammlung scan back.jpg
|
||||||
|
C: musiksammlung scan back.jpg --vision
|
||||||
|
D: musiksammlung scan --barcode 0602557360561
|
||||||
|
→ album.json prüfen/korrigieren
|
||||||
│
|
│
|
||||||
▼
|
▼
|
||||||
musiksammlung apply ← Umbenennen, Tags, Cover, Playlist
|
musiksammlung apply ← Umbenennen, Tags, Cover, Playlist
|
||||||
|
|
@ -97,7 +99,7 @@ musiksammlung apply ← Umbenennen, Tags, Cover, Playlist
|
||||||
musiksammlung rip
|
musiksammlung rip
|
||||||
```
|
```
|
||||||
|
|
||||||
Das Programm fragt interaktiv nach Album-Name und CD-Nummer, startet `abcde` und benennt die Tracks automatisch (wenn CDDB Daten liefert).
|
Das Programm fragt zuerst nach dem EAN/Barcode. Bei einem MusicBrainz-Treffer startet ein automatischer Rip-Vorgang für alle Discs des Albums. Ohne EAN oder bei Fehltreffer wird der manuelle Ablauf gestartet (Album-Name, CD-Nummer, CDDB-Bestätigung).
|
||||||
|
|
||||||
### Wichtige Optionen
|
### Wichtige Optionen
|
||||||
|
|
||||||
|
|
@ -119,12 +121,37 @@ musiksammlung rip -f flac -q high -j 0 -P -o ~/rip
|
||||||
|
|
||||||
### Interaktiver Ablauf
|
### Interaktiver Ablauf
|
||||||
|
|
||||||
|
**Mit EAN (Auto-Rip):**
|
||||||
|
|
||||||
```
|
```
|
||||||
--- Album 1 ---
|
--- Album 1 ---
|
||||||
Album name (Enter = CDDB name / default 'Album1'): Beethoven Sinfonien
|
EAN/Barcode (Enter = überspringen): 028943753227
|
||||||
EAN/Barcode für MusicBrainz (Enter = überspringen): 028943753227
|
|
||||||
MusicBrainz-Suche nach Barcode 028943753227 ...
|
MusicBrainz-Suche nach Barcode 028943753227 ...
|
||||||
✓ Herbert von Karajan – Beethoven: 9 Symphonies (1963, 50 Tracks)
|
✓ Herbert von Karajan – Beethoven: 9 Symphonies (1963, 5 Disc(s), 50 Tracks)
|
||||||
|
|
||||||
|
CD 1/5 einlegen und Enter drücken (9 Tracks) ...
|
||||||
|
|
||||||
|
Ripping to: temp/Beethoven__9_Symphonies/CD1
|
||||||
|
--------------------------------------------------
|
||||||
|
Track 1/9 Allegro con brio
|
||||||
|
[████████████████░░░░░░░░░░░░░░] 54.3% 18.2 MB
|
||||||
|
...
|
||||||
|
Umbenennen (CDDB-Daten) ...
|
||||||
|
|
||||||
|
CD 2/5 einlegen und Enter drücken (4 Tracks) ...
|
||||||
|
...
|
||||||
|
|
||||||
|
album.json gespeichert: temp/Beethoven__9_Symphonies/album.json
|
||||||
|
|
||||||
|
Next album? (y/n): n
|
||||||
|
```
|
||||||
|
|
||||||
|
**Ohne EAN (Fallback):**
|
||||||
|
|
||||||
|
```
|
||||||
|
--- Album 1 ---
|
||||||
|
EAN/Barcode (Enter = überspringen):
|
||||||
|
Album name (Enter = CDDB name / default 'Album1'): Beethoven Sinfonien
|
||||||
|
|
||||||
Album: Beethoven Sinfonien
|
Album: Beethoven Sinfonien
|
||||||
CD Drive: /dev/cdrom
|
CD Drive: /dev/cdrom
|
||||||
|
|
@ -135,13 +162,14 @@ EAN/Barcode für MusicBrainz (Enter = überspringen): 028943753227
|
||||||
Track 1/4 Allegro con brio
|
Track 1/4 Allegro con brio
|
||||||
[████████████████░░░░░░░░░░░░░░] 54.3% 18.2 MB
|
[████████████████░░░░░░░░░░░░░░] 54.3% 18.2 MB
|
||||||
...
|
...
|
||||||
✓ Done — 4 tracks
|
CDDB-Treffer: 'Karajan / Beethoven Sinfonien' — 4 Tracks:
|
||||||
1. Allegro con brio [Karajan]
|
1. Allegro con brio [Karajan]
|
||||||
2. Andante con moto [Karajan]
|
2. Andante con moto [Karajan]
|
||||||
|
|
||||||
Next CD for this album? (y/n): y
|
Treffer korrekt? (j/n) [j]: j
|
||||||
CD number [1]: 2
|
Umbenennen ...
|
||||||
...
|
|
||||||
|
Next CD for this album? (y/n): n
|
||||||
|
|
||||||
Next album? (y/n): n
|
Next album? (y/n): n
|
||||||
```
|
```
|
||||||
|
|
@ -219,7 +247,7 @@ Die EAN lässt sich auch mit einem Barcode-Scanner oder einer Smartphone-App abl
|
||||||
|
|
||||||
MusicBrainz liefert bei einem Treffer: Interpret, Albumtitel, Erscheinungsjahr und vollständige Trackliste. Kein API-Schlüssel erforderlich.
|
MusicBrainz liefert bei einem Treffer: Interpret, Albumtitel, Erscheinungsjahr und vollständige Trackliste. Kein API-Schlüssel erforderlich.
|
||||||
|
|
||||||
Alternativ kann die EAN auch während des interaktiven Rippens eingegeben werden (Abfrage „EAN/Barcode für MusicBrainz"). Das Ergebnis wird dann direkt als `album.json` gespeichert.
|
Beim interaktiven Rip-Befehl (`musiksammlung rip`) wird die EAN als erstes abgefragt. Bei einem MusicBrainz-Treffer startet automatisch der Rip-Vorgang für alle Discs — kein Albumname, keine CDDB-Bestätigung nötig. Das `album.json` wird direkt aus den MusicBrainz-Daten gespeichert.
|
||||||
|
|
||||||
### album.json prüfen und bearbeiten
|
### album.json prüfen und bearbeiten
|
||||||
|
|
||||||
|
|
@ -242,6 +270,7 @@ In diesem Fall `album.json` manuell ergänzen, dann `apply` erneut aufrufen.
|
||||||
"artist": "Karajan",
|
"artist": "Karajan",
|
||||||
"album": "Beethoven Sinfonien",
|
"album": "Beethoven Sinfonien",
|
||||||
"year": 1963,
|
"year": 1963,
|
||||||
|
"genre": "Classical",
|
||||||
"discs": [
|
"discs": [
|
||||||
{
|
{
|
||||||
"disc_number": 1,
|
"disc_number": 1,
|
||||||
|
|
@ -254,6 +283,8 @@ In diesem Fall `album.json` manuell ergänzen, dann `apply` erneut aufrufen.
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Das Feld `"genre"` ist **optional** und wird automatisch befüllt, wenn GnuDB ein DGENRE liefert.
|
||||||
|
|
||||||
Das Feld `"artist"` auf Track-Ebene ist **optional**. Wird es gesetzt, überschreibt es den Album-Künstler für diesen Track — sinnvoll bei Samplern oder Klassik mit verschiedenen Solisten:
|
Das Feld `"artist"` auf Track-Ebene ist **optional**. Wird es gesetzt, überschreibt es den Album-Künstler für diesen Track — sinnvoll bei Samplern oder Klassik mit verschiedenen Solisten:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
|
|
@ -395,8 +426,8 @@ musiksammlung process temp/Album/CD1 ~/Musik --back back.jpg
|
||||||
|
|
||||||
**EAN/Barcode verfügbar? → Schnellster Weg**
|
**EAN/Barcode verfügbar? → Schnellster Weg**
|
||||||
- EAN-13 oder UPC-12 von der CD-Hülle ablesen (ggf. Barcode-Scanner-App nutzen)
|
- EAN-13 oder UPC-12 von der CD-Hülle ablesen (ggf. Barcode-Scanner-App nutzen)
|
||||||
- `musiksammlung scan --barcode 0602557360561 -o album.json`
|
- Beim `rip`-Befehl wird die EAN als erstes abgefragt — bei MusicBrainz-Treffer startet der Auto-Rip sofort (keine weiteren Fragen)
|
||||||
- Oder beim `rip`-Befehl die EAN-Abfrage verwenden — dann wird `album.json` direkt gespeichert
|
- Alternativ: `musiksammlung scan --barcode 0602557360561 -o album.json`
|
||||||
- Kein Bild, kein OCR, kein lokales LLM notwendig
|
- Kein Bild, kein OCR, kein lokales LLM notwendig
|
||||||
|
|
||||||
**CDDB-Lookup schlägt fehl?**
|
**CDDB-Lookup schlägt fehl?**
|
||||||
|
|
@ -414,7 +445,8 @@ musiksammlung process temp/Album/CD1 ~/Musik --back back.jpg
|
||||||
- Vision-LLM verwenden: `--vision --vision-model qwen3-vl:235b-cloud`
|
- Vision-LLM verwenden: `--vision --vision-model qwen3-vl:235b-cloud`
|
||||||
|
|
||||||
**Mehrere CDs eines Albums (Multi-Disc)?**
|
**Mehrere CDs eines Albums (Multi-Disc)?**
|
||||||
- Bei der Abfrage "Next CD for this album?" mit `y` antworten
|
- Bei EAN-Treffer: MusicBrainz kennt die Disc-Anzahl, der Auto-Rip fordert automatisch jede CD an
|
||||||
|
- Ohne EAN: Bei der Abfrage "Next CD for this album?" mit `y` antworten
|
||||||
- Jede CD erhält ein eigenes Unterverzeichnis `CD1`, `CD2`, ...
|
- Jede CD erhält ein eigenes Unterverzeichnis `CD1`, `CD2`, ...
|
||||||
- `apply` einmal mit dem Album-Verzeichnis aufrufen (nicht pro CD)
|
- `apply` einmal mit dem Album-Verzeichnis aufrufen (nicht pro CD)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ pip install -e ".[dev]"
|
||||||
## Schnellstart
|
## Schnellstart
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# CDs rippen (interaktiv, mit optionaler EAN-Abfrage für MusicBrainz)
|
# CDs rippen (interaktiv, EAN-First: MusicBrainz → Auto-Rip bei Treffer)
|
||||||
musiksammlung rip -j 0 -P
|
musiksammlung rip -j 0 -P
|
||||||
|
|
||||||
# Variante A: EAN/Barcode → MusicBrainz → album.json (schnellste Methode)
|
# Variante A: EAN/Barcode → MusicBrainz → album.json (schnellste Methode)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue