Erstellt aus CDs Musik für Jellyfin
- Python 100%
- New module musicbrainz.py: lookup_by_barcode() via EAN-13/UPC-12, two-step API (barcode search → release detail with recordings), respects 1 req/s rate limit with User-Agent header - cli.py: scan command gets --barcode option as highest-priority mode (no images needed); _scan_to_album() dispatches to MusicBrainz first - ripper.py: interactive_rip() prompts for optional EAN after album name; MusicBrainz data (incl. year) takes priority over CDDB for album.json; album_root.mkdir() added so JSON can be written even when MB changes dir - tests: test_musicbrainz.py (16 tests), test_ripper.py +6 barcode tests Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| idea | ||
| src/musiksammlung | ||
| tests | ||
| .gitignore | ||
| BEDIENUNGSANLEITUNG.md | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
Musiksammlung
ACHTUNG! Das Programm ist nicht fertig!
CLI-Tool zum Digitalisieren von CD-Sammlungen für Jellyfin.
Überblick
Musiksammlung automatisiert die Digitalisierung physischer CDs:
- CDs rippen (via
abcde, CDDB-Lookup) - Coverbilder per OCR oder Vision-LLM analysieren
- Tracklisten per LLM extrahieren und als JSON speichern
- Audiodateien umbenennen, taggen und in Jellyfin-Struktur ablegen
- M3U-Playlisten erzeugen
Voraussetzungen
- Python 3.11+
abcde(CD-Ripping)tesseract(OCR, optional)- Ollama oder OpenAI-kompatibles LLM (optional)
Installation
pip install -e ".[dev]"
Schnellstart
# CDs rippen
musiksammlung rip -j 0 -P
# Coverbild scannen → album.json erzeugen
musiksammlung scan back.jpg -o album.json
# Audiodateien organisieren und taggen
musiksammlung apply temp/Album1/CD1 album.json ~/Musik
Ausführliche Anleitung: BEDIENUNGSANLEITUNG.md
Lizenz
Siehe LICENSE.