Moin zusammen!
Mit Torbens ausdrücklicher Genehmigung möchte ich euch heute ein Tool vorstellen, an dem ich in den letzten Wochen intensiv geschraubt habe: den mAirList DB Restorer.
Jeder, der eine Musikdatenbank pflegt, kennt das Problem: Fehlende Jahreszahlen, leere Genre-Felder, unvollständige Labelcodes oder fehlende Alben. Das Tool nimmt diese mühsame Handarbeit ab. Es analysiert eine lokale mAirList SQLite-Datenbank (.mldb), sucht über die APIs von MusicBrainz und Discogs nach den fehlenden Metadaten und schreibt die korrigierten Werte nach eurer Kontrolle sicher in die Datenbank zurück.
Bevor ich zu den Details komme, vorab ein paar klare Worte zu einem Thema, bei dem ich weiß, dass viele hier im Forum ambivalent dazu stehen: Dieses Tool ist mit Unterstützung von Künstlicher Intelligenz (Google Gemini) entstanden.
Mir ist völlig klar, dass das bei einigen Stirnrunzeln auslöst. Aber für mich zählt am Ende, was das Tool leistet und wie viel Arbeit es mir abnimmt. Für die Entwicklung in diesem Umfang hätte ein menschlicher Programmierer – gemessen an der Arbeitszeit und der Komplexität – einen ansehnlichen Betrag aufgerufen. Da ich nicht erwarte, dass sich jemand aus der Community hinsetzt und das mal eben in seiner Freizeit kostenlos für mich baut, bin ich diesen Weg über die KI gegangen.
Mir ist deshalb wichtig, dass wir uns hier im Thread auf das Tool selbst konzentrieren und nicht darauf, wie es entstanden ist. Wer das Skript nutzen möchte, ist herzlich eingeladen, es auszuprobieren. Wer es ablehnt, lässt es einfach links liegen. Konstruktive Kritik, Bug-Reports oder Feature-Wünsche zu den tatsächlichen Funktionen nehme ich natürlich sehr gerne entgegen!
Was das Tool unter der Haube macht (Kern-Features)
- Smart Cleaning & VIP-Listen: Artist und Titel werden vor der Suche bereinigt (z. B. “feat.”, “ft.”). Notorische Schreibweisen (wie “AC/DC”) werden über ein festes VIP-Dictionary priorisiert.
- Laufzeit-Matching (Maxi-Erkennung): Das Skript gleicht API-Treffer mit der echten lokalen Track-Laufzeit (+/- Toleranz für Cue-Punkte) ab, um zielsicher Extended Versions, Radio Edits oder Maxi-Mixes zuzuordnen.
- Ausreißer-Filter: Berechnet den Mittelwert gefundener Release-Jahre und ignoriert absurde API-Ausreißer (z. B. Release-Jahr 1945 für einen 2004er Track).
- OAD-Schutz (Ignore-Lists): Virtuelle oder physische Ordner (z. B. “OAD” oder “Jingles”) können konsequent von der Suche ausgeschlossen werden.
- Ergonomischer Review-Prozess: Alle Vorschläge werden in einem Terminal-Workflow geprüft. Mit der
O-Taste kann jederzeit auf den ursprünglichen Datenbank-Wert zurückgefallen werden; eigene Texteingaben triggern direkt einen Live-Re-Fetch. - Massenbearbeitung (Wartungs-Modus): Ein separates Menü erlaubt das nachträgliche Standardisieren von Genres, das Korrigieren von Groß-/Kleinschreibung (Title Case mit Sonder-Regeln) oder das Löschen von Alt-Attributen (“Platinum Notes”, “Lyrics”) zur DB-Verkleinerung.
Wichtige Einschränkungen (Stand jetzt)
- Lokale Datenbanken: Das Tool funktioniert aktuell nur mit lokalen SQLite-Datenbanken (
.mldb). Eine Unterstützung für Netzwerkdatenbanken steht auf der Wunschliste für spätere Updates. - Sprach-Kompatibilität: Die Feld-Zuordnung beim Schreiben in die Datenbank ist derzeit auf deutsche, englische und niederländische mAirList-Installationen optimiert. Weitere Sprachen rüste ich bei Bedarf gerne nach.
Wichtiger Sicherheitshinweis & Disclaimer
- Keine Garantie: Weder die APIs noch das Skript sind unfehlbar. Falsche Metadaten können gelegentlich vorkommen. Die Nutzung erfolgt auf eigene Gefahr!
- Immer mit einer Kopie arbeiten: Das Tool schreibt direkt und ohne Undo-Funktion in die Datenbank. Niemals auf der aktiven, von mAirList geöffneten Datei arbeiten! Immer eine Kopie (z. B. auf dem Desktop) erstellen.
Download & Installation
Das Projekt mitsamt einer ausführlichen Schritt-für-Schritt-Anleitung (Manual_DE.md) findet ihr direkt auf GitHub:
GitHub-Repository: Github Repo
Für den schnellen Start ohne Git-Client:
- Geht auf die GitHub-Seite.
- Klickt auf den grünen Button “<> Code”.
- Wählt “Download ZIP”.
- Entpackt die ZIP-Datei in einen Ordner eurer Wahl auf dem PC.
- Installiert einmalig Python (mit Haken bei “Add Python to PATH”) und die Pakete (
pip install pandas requests rich) über die Eingabeaufforderung. - Startet die
Restore.batund lest das beiliegende Handbuch.
Ich bin gespannt, wie es bei euch läuft!