MusicBrainz* is a Web service* to distribute metadata about music files. Comes from the era of CDDB* which began claiming all sorts of regulations on the use of its metadata. MB works on not just CDs, but any music track (like single MP3s), uses a hash* system from Relatable* to identify each track and grab metadata on it.
Users contribute metadata gained from their own usage (I got this MP3 from Napster, the Title/Author is missing) and contribute it back to the server for everyone else to use.
Really three sets of users:
Uses RDBMS*-backed website with MySQL* and Perl*; needs to get his Web site to be a "Web Service" -- to send out data (Rob Kaye* is the head developer, pictured right)
Builds a GUI* tool in C; needs to build a client to grab and read the stuff (FreeAmp* implements this today)
Built into their player/browser; probably doesn't know its there; wants it to be fast and painless (You? Go get FreeAmp today!)
URIs for Artists, Tracks, Albums, etc. you can HTTP GET* for an RDF description (All data is available under the Open Content License*, data dumps from MySQL are available for download)
A submission system you can HTTP POST* an RDF description to for inclusion in the database (Submissions are moderated using an online volunteer moderation system, along with a number of Perl scripts watching for common errors)
Uses Jason Diamond*'s repat* parser to parse the RDF
Provides an API* to hide the complications of RDF from the programmer
So a user pops a brand-new CD into the drive with FreeAmp open. FreeAmp calls up to MusicBrainz to see if it's in the database already. Usually it is (MusicBrains had 285,582 tracks at last count) but if it's not then a window pops up asking the user to enter the information. They key in the information and FreeAmp sends it back to the server for others to use in the future.
RDF was confusing. Lack of good RDF Validators* and other tools. Little to no documentation on many subjects.
Extended Dublin Core, mostly on our own. Little support and suggestions.
RDF/XML* is really verbose. One goal is to transmit song lyrics, file sizes are huge. Looking into gzip transport-encoding* but a more concise format would be nice.
Part of LogicError. Powered by Blogspace, an Aaron Swartz project. Email the webmaster with problems.