Erstellt aus CDs Musik für Jellyfin
Find a file
dschlueter fd8de16bdd Replace shared stdin reader with readline + select for comfortable line editing
Use GNU readline (arrow keys, backspace, history, Ctrl-A/E) for all user
prompts via input(). Replace the shared reader thread with select()-based
non-blocking polling in _input_or_scan() — eliminates dangling threads.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 19:13:56 +01:00
.forgejo/workflows Lint-Fixes, process-Disc-Validierung und Forgejo-CI 2026-02-18 00:51:14 +01:00
src/musiksammlung Replace shared stdin reader with readline + select for comfortable line editing 2026-02-19 19:13:56 +01:00
tests Fix 6 bugs: shared stdin reader, CDDB multiline, type annotation, crash fixes 2026-02-19 19:03:06 +01:00
.gitignore Track CLAUDE.md in repository 2026-02-19 14:47:42 +01:00
BEDIENUNGSANLEITUNG.md Docs: add --from-photo (Variante E) to scan command documentation 2026-02-19 14:45:31 +01:00
CLAUDE.md Track CLAUDE.md in repository 2026-02-19 14:47:42 +01:00
LICENSE Initial commit 2026-02-15 00:53:30 +01:00
pyproject.toml Add phone-based EAN scanning, scanner server for cover upload, Vision-LLM integration 2026-02-19 14:05:59 +01:00
README.md Docs: add --from-photo (Variante E) to scan command documentation 2026-02-19 14:45:31 +01:00

Musiksammlung

ACHTUNG! Das Programm ist nicht fertig!

CLI-Tool zum Digitalisieren von CD-Sammlungen für Jellyfin.

Überblick

Musiksammlung automatisiert die Digitalisierung physischer CDs:

  1. CDs rippen (via abcde, CDDB-Lookup)
  2. Backcover automatisch via Smartphone-Upload erfassen
  3. Backcover per Vision-LLM parallel zum Ripping analysieren (Cloud-Modell, kein lokales VRAM nötig)
  4. Coverbilder per OCR oder Vision-LLM analysieren
  5. Tracklisten per LLM extrahieren und als JSON speichern
  6. Audiodateien umbenennen, taggen und in Jellyfin-Struktur ablegen
  7. M3U-Playlisten erzeugen

Voraussetzungen

  • Python 3.11+
  • abcde (CD-Ripping)
  • tesseract (OCR, optional)
  • Ollama oder OpenAI-kompatibles LLM (optional)
  • Firewall: Port 8765 (TCP) für Smartphone-Upload offen (sudo ufw allow 8765/tcp)

Installation

pip install -e ".[dev]"

Schnellstart

# CDs rippen (interaktiv, EAN-First: MusicBrainz → Auto-Rip bei Treffer)
# QR-Code im Terminal: Backcover mit Smartphone fotografieren → Vision-LLM analysiert parallel
musiksammlung rip -j 0 -P

# Variante A: EAN/Barcode → MusicBrainz → album.json (schnellste Methode)
musiksammlung scan --barcode 0602557360561 -o album.json

# Variante A2: EAN per Foto (Vision-LLM liest Barcode) → MusicBrainz → album.json
musiksammlung scan --from-photo cover.jpg -o album.json

# Variante B: Coverbild per Vision-LLM → album.json
musiksammlung scan back.jpg --vision -o album.json

# Audiodateien organisieren und taggen
musiksammlung apply temp/Album1/CD1 album.json ~/Musik

Ausführliche Anleitung: BEDIENUNGSANLEITUNG.md

Lizenz

Siehe LICENSE.