Erstellt aus CDs Musik für Jellyfin
- Python 100%
Wenn das LLM keinen Albumtitel erkennt (z.B. nur Ensemblename auf dem Backcover), gibt es "album": null zurück. Statt mit ValidationError abzubrechen, wird null jetzt in "" konvertiert. Der Nutzer kann den leeren Titel in album.json manuell ergänzen. Geändert: - Album.album: str = "" (statt str ohne Default) - field_validator mode="before", None → "" 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.