yacddb - Yet
An audio CDROM database cataloger.
Project page http://sourceforge.net/projects/yacddb
On line demo version
Search an example audio cd catalog. Demo is here,
suggested search terms "moby",
Search for one of:
- track title
- album name
- artist name
- Free! There are a bunch of shareware programs that do this kind
thing but I wanted a free one with some control over the data.
- Desktop program to read Audio CD data from cddb/freedb (source is
default is freedb) and store in
database. Linux and win32 is supported.
- User confirmation required before storing in database (more on
below) - this feature can be disabled.
- Usual adds CD's as soon as CD's inserted into drive, ejects them
they are in the database.
- Doesn't require you to install a full RDBMS and allows you to
your database/catalog with you on a Linux PDA such as the Sharp Zaurus
any where there is python, pysqlite + some gui [wx, pyQT, anygui,
web based]). I'm using this under WM2003 using Pocket Internet Explorer
to search my collection.
- Data is stored in an sqlite
so the database is both portable between platforms and allows one to
custom queries, run reports, etc.
- Simple search/browse facility for the Zaurus/Desktop.
More information on need to confirm each CDROM; the user MUST accept
track listings found before they are added to the database, the reasons
for this are:
Here are two screen shots of a multiple selection CD that demonstrate
need to confirm / select the correct CD (see spelling of Track #2).
- Some CD track information is wrong (either the CD is not in the
but a CD with a similar "id" is, spelling mistakes, etc).
- Some CD's are in the freedb/cddb multiple times (sometimes with
mistakes or more/less track information).
The user conformation before storing feature can be disabled and the
hit found can be used if required, but if one is cataloging a CD
it's worth doing properly.
- python (I'm using 2.2, later
- cddb-py (version
modifications) or just get my updated version, My version makes use of
used version 0.6.2a WIN32) so there is no need to rebuild the mci.dll
different python versions.
- pysqlite (I'm
using 0.4.0 which is quite old now, later release should be OK)
- sqlite (is a bonus)
- wxPython preferred GUI for
added CD's (and searching cds) under Windows and Linux
- anygui (targeted at
using version 0.1.1)
- CherryPy (version 2.0.0) -
optional only needed for web/html based search/query tool.
Web Modules (versiosn 0.5.3) - optional only needed for web/html
based search/query tool and onl needed if you ONLY have CGI access on
the server machine. CherryPy comes with it's own web server and is the
prefered deployment option.
needed for GUI on Z, and its not a bad GUI for the desktop catalog
(optional, only required if one wishes to build exes that run
I've been using 5 beta 5 which is quite old now)
- MingW (or other win32 C/C++
to build the win32 "detect CD inserted" program (you also need this if
want to use the original cddb-py package is it ships with an old
won;t run with current python versions).
I may put together a newer win32 exe that does NOT have the above
(i.e. no need for Python system). An old win32 exe version is available
If you have a CD that there is not match for in the freedb, you need to
one. Yacddb does NOT submit unregonized CD to freedb, you need another
to do that. Examples of applications that can/will submit to freedb.org
it takes a while after sending in the information for it to be
JeFCo is one way around that delay). NOTE: So far the only win32
program I've managed to successlly get info into freedb from my win32
box behind a NAT fire wall is EAC
- Notify CD for FreeDB (cd player, has basic cataloging
http://www.mamane.lu/notifycd/ (smtp submision only, have to changed
address) - you can also use this to launch yaccdb
- CD-DA X-Tractor http://xtractor.sourceforge.net/
Cross platform (uses java and I think you need a native CD player with
- JeFCo http://www.jesterware.org/software.html - JefCo and
coul dbe a good combination.
musicbrainz support they have a python binding and they do freedb
if they don't have a match in their database.
Run the cataloger under Linux (implement cd tray control under Linux to
CD's, possibly use http://ericlathrop.com/cdde/ to detect insert CD's).
To make use of Installer under win32 (to create a standalone cataloging
with a anygui, changes must be made to __init__.py in anygui.
If no anygui support is NOT is required ignore this note (e.g. using
or QT interface with McMillan nstaller).
The change is to replace the call to _backend_passthrough() with:
# ----------- Cut Here -----------
# clach04 "hack"
# Check if we are running within "normal" Python environment
# or if we are frozen, ala. http://www.mcmillan-inc.com/install1.html
# This requires that the frozen application explictly import the
# backend that will also be frozen
if hasattr(sys, "frozen") == 0:
# Pass the backend namespace through:
# The IF above seems reasonable howveer the ELSE below doesn't
# sit well with me.
# This approach below is not really acceptable, here for debug only
from anygui.backends.mswgui import *
# ----------- Cut Here -----------
I'm not especially happy with it but it does work (for the MSW back end
this case). I was hoping to make use of the hook- modules in Installer
I failed to get anything working :-(.
These diffs are not enough, need to deal with backed and application