[C#] *.mp3 name recovery (through ID Tag)

van.Poorn

Elch
Registriert
16 Juli 2013
Beiträge
50
Ort
Blumenthal
Hello sirs!

Prestory:
A friend of mine contacted me because he got a somewhat evolved version of the "BKA"-Trojaner installed on his PC, thanks to his girlfriend unawareness according to inkasso "bill" attachments.
So far so good the system has been cleaned of the infection, but the damage is nevertheless dealt somehow as all(!) files with the *.mp3 extension have been renamed from "nr - artist - trackTitle" to "dajkfJWDJKWL" <- random strings with no file extension.


So i coded a little application to read out the ID-tags out of each file and re-rename the files in a correct way. (visual studio solution is attached below if you're interested, i even added some comments in the code)

Ok the main problem are currently files which have no ID tag information stored.
I know some "CD-Ripping" tools back in the late 90 which had the abilitiy to load song information from source X because of marks like filesize && tracklength && Y.
I guess my question is basicly do you have any ideas on how to deal with these files?

If not, thanks for reading the wall of text at least. ;)

Anhang anzeigen mp3rename_v0_0_2-NoObsfucation.zip <-- contains *.exe and *.dll file only
Anhang anzeigen mp3rename_VSSolution.zip <-- contains full visual studio solution incl resx


*edit*
Ups gerade erst gemerkt dass ich in Englisch geschrieben hab, bzw dass das hier ja ein Deutsches Forum ist. :o
Wenn nötig kann ich es gern auch nochmal auf Deutsch schreiben!
 
Zuletzt bearbeitet:
Vor kurzer Zeit hatte ich selbst ein Programm im Internet gefunden, dass zu MP3s die Informationen lädt und diesen nicht nur einen ordentlichen Namen verpasst, sondern auch die Meta-Daten korrekt speichert. Ich kann dir leider nicht mehr den Namen sagen, aber dazu schwirrt mir das Stichwort "Musicbrainz" im Kopf rum. Vielleicht sagt dir das ja was oder du findest etwas nützliches damit...

Edit:
Ich hab selbst schnell gesucht und das erste Ergebnis bei Google war schon richtig:
 
Die Programme, die ich so kenne (namentlich: FreeRIPMP3 und Cdex), nutzen die zum Abgleichen der Track-Infos.
Wie grad sehe sind das sogar , die die freedb nutzen. Wie man da aber jetzt genau drauf zugreift :unknown:
Vielleicht findste ja auf der Seite was, wenns noch aktuell ist.
 
  • Thread Starter Thread Starter
  • #5
Die C# Relevanz bezieht sich eigentlich nur darauf dass das Program in C# geschrieben ist, sowie der Sourcecode angehängt ist?
Und ich eine Lösung für C# (*.dll, webservice, oä) suche, um unbekannte *.mp3 files zu identifizieren.

Außerdem hätte ich das Gefühl den von dir erwähnten Thread mit meinem Minitool zu beschmutzen.


<- Habe ich nur überflogen, bzw deren zur Verfügung gestelltes Programm genutzt.
Hat eher garnicht funktioniert, aber wie gesagt werde mich damit noch näher beschäftigen.

Danke für den Hinweis Kenobi van Gin, ich werde mir das mal zu Gemüte führen. :)
*edit* FreeDB scheint mir eher nur für "Hardware" CD's gedacht zu sein.
Quasi ich brenne mir eine Sicherheitskopie von CD X, habe vergessen das zu beschriften, und kann mir mit freeDB über den (bekannten) CD Hash Y die Infos wieder holen.
 
Oh, schade, dass es nicht funktioniert hat. Hatte damit auch bei nur mäßiger Qualität meiner Dateien recht gute Erfolgsquoten...
 
  • Thread Starter Thread Starter
  • #8
Das Problem was ich mit freedb sehe ist, dass ich es nur für CD's anwenden kann die sich im in meinem CD Laufwerk befinden.
Es würde hier aber um eine paar gigabyte große *.mp3 Sammlung gehen.

52632601546909717082.png
So wie die untersten Dateien sah jede Datei in der Sammlung aus.
Nach dem Lauf des kleinen Tools sind jetzt etwa 60 % wiederhergestellt aufgrund vorhandener ID-Tag Informationen.
Für die restlichen 40 % suche ich eben noch eine Lösung nun.

Sorry falls ich mich da nicht klar ausgedrückt hatte.


@p3Eq: Ist im Prinzip auch nichts weltbewegendes falls sich das Archiv nicht wiederherstellen lässt. Der Großteil der Musik hat eher nur Erinnerungswert aus "Jugendtagen" und nicht wird nicht mehr aktiv angehört.
Aber eine technische Lösung für so eine fiese Virenmodifikation wäre schon praktisch.
 
Woher soll die Datenbank wissen, wo Deine Daten liegen? Hast Du das sample schon angeschaut? Ich schau mal am WE rein.
 
@van.Poorn: In irgendeiner Form müssen ja die Tracks auf der CD mit den in der freedb hinterlegten Daten abgeglichen werden. Habe keine Ahnung, ob das jetzt auf Basis des gesamten Datenträgers passiert oder auch mit einzelnen Dateien funktioniert. Ich hatte ja eigentlich gedacht, dass die auf ihrer Website direkt ne API mit Dokumentation anbieten oder zumindest verlinken :unknown:
 
Zuletzt bearbeitet:
Nach einem kurzen Blick ins Protokoll würde ich sagen, daß die CD entscheidend ist. Die wird wohl kaum im Drive legen müssen, aber die Abfrage geht wohl nicht per Titel, sondern per CD. Und zwar das nicht mal über den Namen, sondern es wird wirklich die Anzahl der Tracks und die Längen geprüft. Für Deine mp3 halte ich das für denkbar ungeeignet.

EDIT:
Danach habe ich jetzt nicht gesucht, aber wenn schon mal gefunden, dann auch erwähnt
, Du sucht aber natürlich eine Möglichkeit Dein Programm zu verbessern, so daß dieses die Aufgabe meistert.


EDIT:
Schau einmal nach der API vom Last.fm, sonst nach weiteren:





 
Zuletzt bearbeitet:
Schau dich mal bei Gracenote um! ;)
In Winamp gibt es zum Beispiel die Möglichkeit, einen bestimmten Track "auto taggen" zu lassen mit Hilfe von Gracenote. Ich weiß allerdings nicht, ob das kostenlos ist...
 
Also wenn sowohl der Dateiname versaut ist, als auch kein einziger brauchbarer Tag mehr vorhanden ist, dann kannst du wohl nur noch durch Anhören herausbekommen was genau für ein Stück das ist. Um die gängigen Datenbanken zu durchsuchen, brauchst du ja mindestens ein paar Angaben zum Album,Titel oder Band. Auch Musicbrainz arbeitet so, FreeDB und discogs auch.

Rippen und Auto Taggen von Audio CDs funktioniert ja auch über CDDB. Und da brauchts zumindest mal den Hashwert über die ganze CD.

Gibts da nicht so Tools fürs Smartphone? Man singt den Titel quasi vor und das Tool findet dann die Infos? Vielleicht liegen da die Algorithmen "frei" rum?

Edit. Das Zauberwort heißt "Audio Fingerprint". Das hier zum Beispiel
 
  • Thread Starter Thread Starter
  • #14
Guten Abend,

und danke für eure rege Beteiligung!

Also ich sehe mittlerweile nur noch einen Ansatz, da mein Urgedanke auf äußerst wackeligen Beinchen steht.


Das mit dem Audio Fingerprint entspricht meines Verständnis nach in etwa der menschlichen Vorstellung von "vorsingen"?
Aber ist es (musikalisch) erkennungstechnisch gesehen für den Algorythmus nicht auch ein Unterschied in welcher Qualität die Quell- <-> Ableger- Datei vorliegt?
Ich hab keinerlei Ahnung von Akkustik, Frequenzbereichen, etc. deswegen die evtl dumme Frage. :)

*edit*
Also Audio Fingerprint scheint ja so verlässlich zu sein dass es sogar für Urherberverletzungen angewendet werden kann. :o
*edit2*
Ok es gibt einige Projekte die sich mit dem erstellen des Fingerabdrucks und speichern in einer Datenbank beschäftigen, und sogar den Code zur Verfügung stellen.
Würde noch die große Datenbank fehlen die ich nutzen kann um die unbekannten Fingerabdrücke abzugleichen..

Heieiei bzw. <- demo projekt
Das sieht gut durchdacht aus.
Und hier wäre die Datenbank die ich zum abfragen nutzen könnte. ->
 
Zuletzt bearbeitet:
Also wenn du sowas tatsächlich hinbekommst.....:T Darf ich mich dann als Tester anmelden? :beer: Habe neulich ein "paar" CDs gerippt. Man sollte gar nicht meinen, dass es da tatsächlich einige gab, die noch in keiner Datenbank zu finden waren. Mal ganz abgesehen von einigen MP3s die sich auf meine Festplatte verirrt haben und die auch nicht getagged sind.
 
Zurück
Oben