Light Media Scanner

Provides an optimized way to recursively scan directories,
handling the parser in a child process, avoiding breaks of the
main process when parsers break (quite common with such bad libs
and tags). One can opt to use the single process version, but be
aware that if something bad happens during parsing, your
application will suffer.

Parsers are plugins in the form of shared objects, so it's easy
to add new without having to recompiling the scanner.

The scanner will use SQLite3 to store file-mtime association,
avoiding parsing files that are already up-to-date. This SQLite
connection and the file id within the master table 'files' are
handled to plugins for relationship with other tables.

Applications should then access the SQLite3 database to get all
the informations about scanned media. See tables and fields
description at http://packages.profusion.mobi/lightmediascanner/docs/api/
(end of the page). You can use any SQLite3 access library, for
instance you have SQLObject, SQLAlchemy and Storm for python,
Sequel for Ruby and possible others.