Libcddb is a C library to access data on a CDDB server (freedb.org). It allows you to:

  1. search the database for possible CD matches;
  2. retrieve detailed information about a specific CD;
  3. submit new CD entries to the database.

Libcddb supports both the custom CDDB protocol and tunnelling the query and read operations over plain HTTP. It is also possible to use an HTTP proxy server. If you want to speed things up, you can make use of the built-in caching facility provided by the library.

Version 1.3.2 of libcddb has been released. This release fixes build support on the Haiku operating system.
Version 1.3.1 of libcddb has been released. This was a maintanence release to fix the following build issues.
fixed builds under cygwin/mingw, as well as non-glibc systems (using --as-needed) option.
There is a new maintainer for libcddb: Justin C. He'll take over the day-by-day maintenance of the libcddb project. So if you have any questions, remarks, bug reports, or feature requests you should contact him through the SourceForge project page for libcddb.
I also want to thank all of you for the great support over the past years. Hope to meet you again, sometime, somewhere. Signing off, Kris.
IMPORTANT NOTE: Apparently the libcddb text search function is no longer working. It seems that the new FreeDB.org owners have not (yet) implemented a search page. Libcddb used the old search page for this feature, and parses the HTML response page. Until a new search page is available, libcddb search will return a server error if you try to perform a text search.
Version 1.3.0 of libcddb has been released. The new features are described below.
Support was added for the 'album' command of the freedb2.org servers (cddb_album and cddb_album_next functions). This feature can be used to do a text search for a certain album. It does not perform any HTML page parsing but uses an extension of the CDDB protocol. As input the function needs a disc structure with either the artist or title filled in. The results are similar as for the query command; i.e. a list of matching disc IDs together with their categories. The example program also supports this feature.
Functions where added to set (libcddb_set_flags) or reset (libcddb_reset_flags) some flags. These flags influence the behaviour of the library. By default all flags are disabled. Currently two flags are available. If the CDDB_F_EMPTY_STR flag is set, the library will never return a NULL pointer for a string. Instead the empty string will be returned. If the CDDB_F_NO_TRACK_ARTIST flag is set, the library will not return the disc artist if the track artist is undefined. A NULL pointer (or the empty string if CDDB_F_EMPTY_STR is set) will be returned instead.
Version 1.2.2 of libcddb has been released. This version fixes a problem in submitting data to a server. The correct character set is now specified.
Developing with libcddb 

There are three places where you can look if you want to integrate this library into a project of your own. First of all, there is the tutorial on this site. Also on this site is the API documentation generated with doxygen. You can use this to quickly check the correct syntax of a certain function. Finally, in the source archive there is an example program. This program uses most of the functionality available in libcddb.

Last modified: Mon Apr 6 23:31:59 UTC 2009