Slashdot Mirror


Automatically Managing Large MP3 Collections?

chhamilton asks: "Where I work we have a dedicated music server with an evergrowing music collection (>60 GB). Currently, we manage it completely by hand (myself and a dedicated few others) enforcing a consistent naming scheme, ID3v1 and v2 tags, and sorting. We're wondering if there are any decent tools out there for automating this process as much as possible. The ideal tool would be something that tries to infer artist/album/song name by analyzing the file name and ID3 tags (if present), and cross-checking against the CDDB database, and then 'normalize' the track by renaming, updating the ID3s, moving to an appropriate location, and entering into a MySQL DB. We found a similar question asked previsouly, but without too many helpful responses. Does anybody know of any useful tools out there doing anything remotely like this?"

2 of 30 comments (clear)

  1. MD5 not the best idea. by Wakko+Warner · · Score: 4
    Two "identical" songs may produce different hashes depending on the encoder used, bitrate, etc.

    What I did was write a perl script which compares (using String::Similarity and File::MP3Info) the filenames themselves and their running time in seconds to those in my MP3 database. The script is command-line configurable to accept different "similarity" values as well as different "difference in seconds" values. The code itself is insanely simple, and so far it's about 80-90% accurate at finding duplicate MP3s. False-positives are surprisingly low, too. Greatly simplifies the task of weeding out already-downloaded crap.

    - A.P.

    --
    Forget Napster. Why not really break the law?

    --
    "Remember when the U.S. had a drug problem, and then we declared a War On Drugs, and now you can't buy drugs anymore?"
  2. write one yourself. by Zurk · · Score: 5

    its fairly easy. use an MD5 hash to generate keys (or RIPEMD-160) which reference each file and then dump em to mysql. cross reference em with the ID3 tags and/or wget the stuff from cddb and you should be all set...shell script should do it..nothing fancy required.