# DJ Database & Recovery Tool

> Ein umfassendes Python-Tool für DJs zur Verwaltung großer Musiksammlungen, zum intelligenten Abgleich beschädigter USB-Sticks, zur Erkennung von Bibliotheks-Inkonsistenzen und zur verlustfreien Duplikatsbereinigung.

> 🤖 **KI-Hinweis:** Diese Markdown-Datei ist ein für Agenten optimiertes Abbild von https://it-ruhrig.de/blog/portfolio/dj-database-recovery

- **Autor:** Michael.Ruhrig
- **Veröffentlicht am:** July 26, 2026 • 3:00PM
- **Copyright:** © 2026 Michael Ruhrig. Namensnennung erforderlich.

---

## DJ Database &amp; Recovery Tool

 

 ![KI erzeugtes Vorschaubild: DJ Database & Recovery Tool](https://it-ruhrig.de/application/files/cache/thumbnails/musikbibliothek-aufraeumen-vorschau-6c0afa8682200b8c3399db99496782f4.png "DJ Database & Recovery Tool")> ## DJ Database &amp; Recovery Tool
> 
> #### MP3-Bibliotheken verwalten, defekte USB-Sticks reparieren und Duplikate bereinigen mit Python
> 
> Wer als DJ über eine gewachsene, umfangreiche Musiksammlung verfügt, kennt das Problem: Nach Jahren des Auflegens sind Ordnerstrukturen unübersichtlich, USB-Sticks weisen nach unsauberem Abziehen beschädigte MP3-Dateien auf, oder auf verschiedenen Speichermedien tummeln sich unzählige Duplikate. Kommerzielle Software bietet oft starre Strukturen oder teure Ökosysteme.
> 
> Aus diesem Grund habe ich ein maßgeschneidertes, in **Python 3.14** geschriebenes Desktop-Werkzeug entwickelt.
> 
> Das **DJ Database &amp; Recovery Tool** kombiniert eine performante SQLite-Mediathek im klassischen Winamp-Layout mit intelligenten Algorithmen zur Dateiwiederherstellung, MPEG-Fehlerprüfung und echtem Drag &amp; Drop.
> 
> In diesem Beitrag stelle ich die Architektur und alle Kernfunktionen des Tools im Detail vor. Der Quellcode ist vollständig Open Source und auf GitHub verfügbar.
> 
> ### Kernfunktionen im Überblick
> 
> Das Tool wurde von Grund auf so konzipiert, dass es sich nahtlos in bestehende Workflows einfügt und die Integrität der Originalsammlung zu 100 % schützt. Zu den wichtigsten Features gehören:
> 
> - **Dual Library Management (Bibliothek A &amp; B):** Getrennte Verwaltung zweier Musiksammlungen zum direkten datenbankgestützten Vergleich.
> - **Smarter Delta-Scan:** Blitzschnelle Aktualisierung der Indizierung durch Prüfung von Dateigrößen und Pfaden, ohne Metadaten unnötig neu einzulesen.
> - **Winamp-Style Media Library:** Strukturierte Navigation über Filter (Künstler -&gt; Alben -&gt; Tracks) inklusive flexibler Spaltensortierung und Live-Suche.
> - **Toleranter Recovery-Algorithmus:** Mehrstufiger Abgleich zur Rettung beschädigter Dateistrukturen auf alten USB-Sticks. (Sofern die Originaldateien noch in der Bibliothek A vorhanden sind)
> - **Native Drag &amp; Drop Out:** Direktes Herüberziehen von Tracks aus der Software in DJ-Programme wie Traktor oder Rekordbox.
> - **\[MP3val-Integration:** Tiefenprüfung von MPEG-Audio-Streams auf Header- und Frame-Fehler.\]
>  
> ### 1. Architektur und Performance: Die SQLite-Datenbank
> 
> Um auch bei Sammlungen mit zehntausenden Titeln flüssige Suchergebnisse zu garantieren, setzt das Tool auf eine lokale SQLite-Datenbank (`dj_library.db`).
> 
> Beim ersten Indizieren liest das Skript mithilfe der Python-Bibliothek `tinytag` Metadaten wie Artist, Titel, Album, Genre, Jahr, Bitrate und Samplerate aus. Um komplexe Abfragen (wie den Bibliotheksvergleich) drastisch zu beschleunigen, greift das System auf optimierte Indizes zurück:
> 
>  Python  
> ```
> self.cursor.execute('CREATE INDEX IF NOT EXISTS idx_lib_artist_title ON tracks(library_id, artist, title)')
> self.cursor.execute('CREATE INDEX IF NOT EXISTS idx_lib_filename ON tracks(library_id, filename)')
> 
> ```
> 
> - **Wartungsfunktionen:** Über den Einstellungs-Tab lässt sich die Datenbank jederzeit bereinigen, per Knopfdruck als `.db`-Datei sichern oder aus einem Backup wiederherstellen.
>  
> ### 2. Die Benutzeroberfläche: Winamp-Feeling trifft moderne Usability
> 
> Die Benutzeroberfläche basiert auf dem in Python integrierten `tkinter`-Framework, erweitert um ein responsives Multi-Tab-Layout.
> 
> ![](/application/files/7417/8509/4948/image.png)
> 
> *(Screenshot der Media Library im Winamp-Layout)*
> 
> #### Gruppierung und Sortierung
> 
> Jede Liste im Programm ist spaltensortierbar. Durch einen Klick auf den Spaltenkopf wird die Ansicht auf- oder absteigend sortiert (unter Berücksichtigung numerischer Werte wie Bitraten). Zudem lässt sich die Ansicht flexibel umschalten:
> 
> - Künstler -&gt; Alben
> - Alben -&gt; Künstler
>  
> #### Integrierte Vorschau &amp; Explorer-Sprung
> 
> Jeder Track verfügt in der Tabelle über zwei Aktionsspalten:
> 
> 1. **`[ 📂 ]` (Ordner öffnen):** Öffnet den Windows-Explorer direkt im Quellverzeichnis der MP3 und markiert die Datei.
> 2. **`[ ▶ ]` (Vorschau):** Startet die Audiowiedergabe über den standardmäßigen System-Player, um Tracks schnell vorzuhören.
>  
> ### 3. Intelligenter Stick-Recovery-Workflow
> 
> Wenn MP3s beim Kopieren auf einen USB-Stick beschädigt wurden oder durch ältere Export-Tools umbenannt wurden, greift die mehrstufige Such- und Wiederherstellungs-Engine des Tools.
> 
> #### Der Ablauf:
> 
> 1. **Analyse-Phase:** Das Tool scannt den defekten Stick und versucht, über einen 5-stufigen Fallback-Mechanismus (exakter Tag-Match $\\rightarrow$ exakter Dateiname $\\rightarrow$ Fuzzy-Suche über Teilstrings) die korrespondierende Master-Datei in Bibliothek A zu finden.
> 2. **Der Recovery Manager:** Es öffnet sich eine Vorschau-Übersicht. Alle gefundenen Treffer sind standardmäßig mit einer Checkbox (`☑`) versehen. So wird ausgeschlossen, dass bereits intakte Dateien überschrieben werden. (Diese solltest du sinnvollerweise abwählen)
> 3. **Manuelle Suche für Härtefälle:** Tracks, die vom Algorithmus nicht automatisch zugeordnet werden konnten, landen in einer separaten Liste. Über einen integrierten Suchdialog kann manuell nach Alternativen in der Bibliothek gefiltert und per Mausklick verknüpft werden.
>  
> ![](/application/files/6717/8509/5103/image.png)
> 
> *(Screenshot des Recovery Managers)*
> 
> ### 4. Bibliotheken vergleichen: Inkonsistenzen aufdecken
> 
> Mit dem Dual-Library-Ansatz (Bibliothek A und Bibliothek B) können zwei Musikordner (z. B. lokales Archiv vs. Backup-Partition) miteinander abgeglichen werden.
> 
> Über die Checkbox **„Zeige nur Tracks, die in der anderen Bibliothek fehlen“** filtert die Datenbank alle Unstimmigkeiten heraus. Ein SQL-Statement auf Basis von `NOT EXISTS` gleicht dabei sowohl Dateinamen als auch die Kombination aus Künstler und Titel ab.
> 
> - **Report-Export:** Die so ermittelten Diskrepanzen lassen sich über den Button *„Inkonsistenz-Report exportieren“* als strukturierte Textdatei (`.txt`) abspeichern.
>  
> ### 5. Externe Kompatibilität: Echtes Drag &amp; Drop
> 
> Um das Tool universell einsetzbar zu machen, unterstützt es natives **Drag &amp; Drop** über das Paket `tkinterdnd2`.
> 
> Markierte Titel in der Hauptbibliothek oder der Sidelist können angeklickt und mit gedrückter Maustaste direkt in externe Anwendungen wie **Traktor Pro**, **Rekordbox**, **VLC** oder den Windows Explorer gezogen werden. Die Anwendung übergibt dabei saubere Windows-Dateipfade (`CF_HDROP`).
> 
> ### 6. Integritätsprüfung mit MP3val
> 
> Beschädigte MPEG-Header führen im Club oft zu unerwarteten Playback-Abbrüchen. Das Tool bietet eine direkte Schnittstelle zu dem Kommandozeilen-Programm **MP3val**.
> 
> ![](/application/files/6717/8509/5201/image.png)
> 
> *(Screenshot vom Konsistenzcheck mit MP3val)*
> 
> - **Sicherheits-Check:** Sowohl die temporäre Export-Sidelist als auch der gesamte Ziel-USB-Stick können auf Knopfdruck validiert werden.
> - **Automatische Reparatur:** Werden Stream-Fehler (`WARNING` oder `ERROR`) entdeckt, listet das Programm diese auf. Ein Klick auf *„Defekte Dateien reparieren“* ruft MP3val im Hintergrund mit Parametern auf, die fehlerhafte Frames bereinigen, Backup-Dateien bereinigen (`-nb`) und Original-Zeitstempel erhalten (`-t`).
> - **Lizenz-Hinweis:** Da MP3val aus Lizenzgründen nicht mitgeliefert wird, erkennt das Tool automatisch, ob sich die `mp3val.exe` im lokalen Unterordner `mp3val/` befindet (eine entsprechende Anleitung liegt dem Repository bei). Fehlt sie, werden die entsprechenden Funktionen im UI sauber deaktiviert.
>  
> ### Fazit und Download
> 
> Das DJ Database &amp; Recovery Tool schließt die Lücke zwischen starrer DJ-Software und flexiblem Dateimanagement. Es gibt die volle Kontrolle über die eigene Musiksammlung zurück, läuft komplett lokal (Datenschutz-optimiert) und lässt sich dank PyInstaller mit wenigen Befehlen als eigenständige `.exe` für Windows-Systeme verpacken.
> 
> Den vollständigen Quellcode sowie die Anleitung zum Nachbauen und Kompilieren findest du im zugehörigen [GitHub-Repository](https://github.com/musicfiler/dj-database-recovery-tool).

 

 Konversation wird geladen  

 

##### Share This Article

 [](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fit-ruhrig.de%2Fblog%2Fportfolio%2Fdj-database-recovery) [](https://twitter.com/intent/tweet?url=https%3A%2F%2Fit-ruhrig.de%2Fblog%2Fportfolio%2Fdj-database-recovery) [](https://www.linkedin.com/shareArticle?mini-true&url=https%3A%2F%2Fit-ruhrig.de%2Fblog%2Fportfolio%2Fdj-database-recovery&title=DJ+Database+%26+Recovery+Tool) [](mailto:?body=Ein%20interessanter%20Artikel%20auf%20der%20Website%20IT-Solutions%20Ruhrig%20-%20musicfiler%20IT%20%26%20Media%3A%0A%0ADJ%20Database%20%26%20Recovery%20Tool%0Ahttps%3A%2F%2Fit-ruhrig.de%2Fblog%2Fportfolio%2Fdj-database-recovery&subject=Interessanter%20Artikel) 

##### Nächster Artikel

 

 [![](https://it-ruhrig.de/application/files/thumbnails/blog_entry_thumbnail/4917/8480/8036/Vorschaubild_Chaoss_Struktur.png)](https://it-ruhrig.de/blog/portfolio/software-engineering) 

 July 23, 2026 • 12:00PM 

 [Software Engineering](https://it-ruhrig.de/blog/portfolio/software-engineering) 

 

##### Themen

 

- [Neuigkeiten](https://it-ruhrig.de/blog/topic/58/neuigkeiten)
- [Portfolio](https://it-ruhrig.de/blog/topic/57/portfolio)
- [Cybersecurity](https://it-ruhrig.de/blog/topic/56/cybersecurity)
- [Rezensionen](https://it-ruhrig.de/blog/topic/169/rezensionen)
 

 

 

##### From Our Blog

 

 

 

 

 [ ![](https://it-ruhrig.de/application/files/thumbnails/blog_entry_thumbnail/7017/8532/1521/Vorschaubild_Projektplanungs_Rezension_Beitrag.png) 

###### ProjectLibre die Smarte Projektplanungsalternative

July 29, 2026

 

 ](https://it-ruhrig.de/blog/reviews/hilfreiche-kostenfreie-ki-tools-2)

 

 [ ![](https://it-ruhrig.de/application/files/thumbnails/blog_entry_thumbnail/4617/8531/4466/Volksverschluesselung_Vorschaubild.png) 

###### Kostenfreie Emailsignatur

July 29, 2026

 

 ](https://it-ruhrig.de/blog/cybersecurity/emailsignatur-volsverschluesselung)

 

 [ ![](https://it-ruhrig.de/application/files/thumbnails/blog_entry_thumbnail/2517/8509/4253/Musikbibliothek_Aufraeumen_Vorschau.png) 

###### DJ Database &amp; Recovery Tool

July 26, 2026

 

 ](https://it-ruhrig.de/blog/portfolio/dj-database-recovery)

 

 [ ![](https://it-ruhrig.de/application/files/thumbnails/blog_entry_thumbnail/4917/8480/8036/Vorschaubild_Chaoss_Struktur.png) 

###### Software Engineering

July 23, 2026

 

 ](https://it-ruhrig.de/blog/portfolio/software-engineering)

 

 [ ![](https://it-ruhrig.de/application/files/thumbnails/blog_entry_thumbnail/6817/8480/5106/ITSM-Klassifizierung_Vorschau.png) 

###### ITSM Ticket-Klassifizierung - (Deep Learning Guide)

July 04, 2026

 

 ](https://it-ruhrig.de/blog/portfolio/ITSM-Ticket-Klassifizierung-mit-distilbert)

 

 [ ![](https://it-ruhrig.de/application/files/thumbnails/blog_entry_thumbnail/8817/8480/3081/musicfiler_IT_und_Media_Wuerze.png) 

###### Neuigkeiten zum Sommer 2026

July 01, 2026

 

 ](https://it-ruhrig.de/blog/news/neuigkeiten-sommer2026)

