Internet Control and CDDB 
Author Message
 Internet Control and CDDB

Does anyone have any examples of a query to a CD database usins HTTP
with the internet control (VB5). Or at least how to send the correct

                                        Thanks - And Happy New Year

Thu, 21 Jun 2001 03:00:00 GMT  
 Internet Control and CDDB
    by Ti Kan and Steve Scherf

 In this document:



CDDB (CD database) is an information database containing artist, disc
title, track titles, and other information for digital audio compact
discs.  It was created originally to support Xmcd, a CD-audio player
software package for many computer platforms (primarily UNIX) running
the X11 window system.  It uses the OSF/Motif toolkit for its graphical
user interface.

Early versions of xmcd allowed users to enter the CD information and
save it on the computer's local disk.  The next time a user loads the
same CDs in the drive, the saved information is automatically retrieved
and displayed.  Further more, xmcd a "Send" feature in xmcd allows its
users to submit CD information entries to the central archive via
Internet electronic mail.  Over time, this archive has grown to contain
a substantial collection of CD information and is continuing to grow at
a rapid rate.

The CDDB data archive used to be available in full via FTP on the
Internet, so that users can download this archive onto their computers
and use it with xmcd.  However, the data has grown large enough over
time to make it unfeasible to be distributed or used in this manner.

To address this issue, xmcd began supporting the concept of CDDB servers,
such that users no longer need to download the entire CDDB to make full
use of it.  Rather, a number of CDDB server hosts have been set up on
the Internet around the world, and xmcd running on a system which is
connected to the Internet can connect to one or more CDDB servers and
query the CD database information.

The CDDB data format and the CDDB servers are designed to be open, and
are now used by many other client application software requiring CD
information.  The list of CDDB-capable applications is growing rapidly
and a current list of these applications is available via the CDDB web


The xmcd package and the CDDB server software are both released as free
software under the GNU General Public License, and we would like to
foster the concept of free software.  Moreover, the public CDDB servers
all run on sites that have graciously volunteered their disk space,
computing and network resources, not to mention occasional maintenance
and support chores, all for free.

Given this, we provide full assistance to freeware authors who desire
to incorporate the use of CDDB into their software.  In addition,
shareware programs are also supported, because it is our understanding
that shareware authors, like freeware authors, usually develop their
software because they enjoy doing so, and they rarely make significant
enough money from their shareware programs.  Users of CDDB-capable
freeware and shareware applicationa may use the public CDDB servers for

Commercial uses of CDDB data and/or servers are subject to negotiations


The xmcd and CDDB server software are both released to the public with
full source code.  You may inspect the source to see how it works. but
please be aware that the source code to both of these packages are
released under the terms of the GNU General Public License.  The full
text of the GNU GPL is in the COPYING file in each of these packages.

If you plan to use the CDDB and/or the CDDB servers in your software,

appreciate that you keep us posted as to your development/test progress and
release schedules.

You must explicitly give credit to the authors (Ti Kan, author of xmcd
and creator of the CDDB concept and maintainer of the CDDB sites; and
Steve Scherf, author of the CDDB server software and co-designer of
the remote CDDB interfaces) both in all documentation and when the product
is operating.  The latter need not appear conspicuously, but should be
viewable by the user through some obvious means.


If you are interested in incorporating the use of CDDB in your
software, there are two forms of access that you may consider.

1. Local access

   In this mode your software simply attempts to open local files on
   the computer to access the CDDB.

   You may store the CD information in the CDDB-native format (See
   Appendix B), or another format of your choice (for example, the
   Win95 cdplayer.ini format).

   Note that the full CDDB archive data is no longer available for
   downloads, therefore this mode is only useful to retrieve CD data
   that is entered by the user and saved to disk.

2. Remote access

   In this mode the software must connect to a CDDB server on the
   network to access the CDDB.  There is a CDDB server protocol that
   the software (also known as the "client") must use to converse with
   the server.

   This mode allows the client application full access to the entire
   CD database over the Internet.  The data returned is in the CDDB
   native file format as described in Appendix B.

You may choose to support only remote access mode, or both remote and
local.  We do not recommend a local-only application, since it is not
very useful.


Both forms of CDDB access requires that the software compute a "disc
ID" which is an identifier that is used to access the CDDB.  The disc
ID is a 8-digit hexadecimal (base-16) number, computed using data from
a CD's Table-of-Contents (TOC) in MSF (Minute Second Frame) form.  The
algorithm is listed below in Appendix A.

It is crucial that your software compute the disc ID correctly.  If it
does not generate the disc ID, it will not be compatible with the
CDDB.  Moreover, if your software submits CDDB entries with bad disc
IDs to the CDDB archives, it could compromise the integrity of the

If you have access to a UNIX platform that xmcd supports, we suggest
installing xmcd, and then testing the disc ID code in your software by
comparing the disc ID generated by xmcd with that of your software
for as large a number of CDs as possible.


In order to perform remote access of CDDB servers, your software must be
able to communicate with a remote CD server system via TCP/IP.  There are a
number of public CDDB servers operating on the Internet.  The current list
of public servers is listed on the CDDB Web site at:

The current list of public servers may also be obtained programmatically
via the CDDBP "sites" command.  The permanent server site,
(at IP port 8880) has been established in order to provide a reliable source
of server site information via the "sites" command. This address may be
hard-wired into client software for this purpose.

There are two forms of remote access to CDDB servers, CDDBP and HTTP.
All current CDDB servers answer either at IP port 888 or 8880 for CDDBP and
port 80 for HTTP access.  There may be sites that deviate from this

You should make the CDDB server host (or hosts) and port numbers
user-configurable in your software.  Do not hard-wire the list of
CD database servers into your code.  The list of active servers changes
over time.

Note that while all the current public CDDB server sites on the Internet
support the CDDBP protocol, not all of them support HTTP.

Both the CDDBP and HTTP CDDB server protocols are described below in
Appendix C.

The CDDB entry returned from the server via a "cddb read" command is in
the format described in Appendix B below.

You may experiment with the CDDB server by connecting to the IP port for
the server host via the "telnet" program, and then typing the cddb
protocol commands by hand.  For example:

 telnet 8880

connects you to the CDDB server at

Some additional notes for accessing CDDB over the Internet:

We consider the use of the "cddb query" command mandatory for all CDDB
clients. It is not valid to issue a "cddb read" command without issuing
a prior "cddb query" and receiving a good response, as it may yield
results. In addition, it is required that clients support close matches
(aka "fuzzy" matches, or response code 211) in response to a query.

The proper way to handle fuzzy matches is to present the entire list of
matches to the user and to let the user choose between them. Fuzzy matches
are listed in the order of best fit for the user's disc, so they should
be presented to the user in the order they are listed by the server.

When handshaking with the server via the "cddb hello" command, make sure
to use the proper arguments. The user and hostname arguments should be
that of the actual user, not some fixed hard-coded value. The application
name and version should be that of your application, not "xmcd" or
another existing application. While handshaking is not required for
certain commands such as "sites" or "motd", it is suggested your application
handshake regardless of the command to be issued.

The suggested algorithm for obtaining the list of server sites is as
The application should be distributed with the last known list of server
sites, and should attempt to update that list from with the
"sites" command the first time the user runs the program. Should the user
be unable to download the list of sites due to temporary network
the application should attempt to download the site list from one of the
sites in its current list. All of the ...

read more »

Mon, 25 Jun 2001 03:00:00 GMT  
 Internet Control and CDDB
Thanks but I have this document.

The document is just a bunch of commands, I need code to show me how to
implement the
commands with VB5.I have tried using the Internet transfer control,but have
had no success.


Thu, 28 Jun 2001 03:00:00 GMT  
 Internet Control and CDDB

>The document is just a bunch of commands, I need code to show me how to
>implement the
>commands with VB5.I have tried using the Internet transfer control,but have
>had no success.


I just found a web site that has an ActiveX control to help automate
the process of access the CDDB and it's free to use.

I haven't had a chance to try it out yet, but I'd be interested in
hearing what you think.


Sat, 07 Jul 2001 03:00:00 GMT  
 [ 4 post ] 

 Relevant Pages 

1. VB5 and CDDB internet queries

2. ActiveX CDDB (CD song list database) Control

3. New ActiveX CDDB control

4. CDDB Control

5. CDDB (CD song list database) ActiveX Control Project.

6. CDDB Control

7. CDDB Control

8. Internet Control Pack (aka Internet ActiveX Control)

9. Internet Internet Transfer control

10. Disconnecting for Internet After Using Internet Transfer Control

11. CDDB code

12. ANN: Abderaware Releases CDDB for .NET


Powered by phpBB® Forum Software