MDB is a little program to read media files into a CouchDB database and keep that database up-to-date. It uses the Mutagen tagging library, which supports lots of data formats, any custom tags that might be sitting around on your media, and any number of values per tag. CouchDB supports these last two as well, which makes for a nice pairing.
MDB also uses a slightly modified version of Quod Libet's
format-normalization library, located in
Modification was necessary to remove the dependency on a running Quod Libet instance.
MDB has three tools:
mdb-slurp takes a list of directories or files and reads them into the database.
If the database is already populated,
it'll skip over songs that haven't been updated.
mdb-check checks to see if any song that's already in the database
has been updated or deleted, and modifies the database accordingly.
mdb-watch watches your music directories or files,
and updates the database when they change or are removed.
It uses pyinotify,
so it'll only work on Linux.
The database format is mostly a dump of the quodlibet.formats normalized tags and internal tags.
The internal tags are documented on the Quod Libet wiki;
In addition, it stores the normalized fields
Not all of these will be present on all albums.
All string fields other than
are stored as arrays of strings,
because they may contain multiple values.
~mountpoint are partially URL-encoded
because they may contain non-Unicode characters.
They should be URL-decoded before use.
I wrote MDB using Mutagen 1.15, couchdb-python 0.5dev-r127, and progressbar 2.2.
mdb-watch uses pyinotify 0.7.1.
Slightly different versions might work, majorly different versions probably won't.