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?"
Check out my project Agatha Over at SourceForge.. It's mainly for playing music.. but in generating the web pages of songs it mangles the names to make them all similar. At the moment it's all based on file names but I tested out some id3 code that would pull the song name.. and drop back to file name mangling if it didn't have one. Anyway this is a shameless plug for my first os project.
Every normal man must be tempted, at times, to spit on his hands, hoist the black flag, and begin slitting throats. -HLM
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?"
I have written a web based management tool, written in PHP, to handle big MP3 collections. It current it handles about 100GB & I have run it on Linux & Windows systems.
The main cataloging script behind it recursive reads directories that u specify in the config file. From the directory structures & filenames it cleverly works out the artist name, song title, track number, album name, etc. It even works on compilation CDs. All this information is inserted into a mySQL database with artists & albums being foreign keys - so u can perform searches.
There is support for ID v1 tags but I only use this to get the length of the track.
The web front end has support for users. U log in with a username & password. This enables u to save favourite artists, songs, etc, all of which are accessible by menu bars.
Album playlists are automatically created, there is a Dynamic HTML drag & drop system to create & order your own custom playlists. U can click on songs to play them, or albums, or your custom playlists.
There are so many more features - search tool, album cover support, forums, administration area, etc. I guess I could open source it when I get the time.
Freeamp makes an explorer-like tree based on the ID3 tags of your MP3 files. It's not the most elegant solution, but it's pretty handy if you have a few gigs and you're looking for something (or you want to change, say, the album name or artist name for EVERY work from a single artist.).
there is no thing
what else could you want?
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.
What would you add to/remove from the above?
---
My opinions are mine.
BeOS has a utility that takes ID3 tags and makes them into filesystem attributes, which means that you can sort and search by artist/genre/whatever. There are plenty of utilities specifically to do that elsewhere, but having it built into the OS like that is pretty sweet.