CDDB / CDDB_get
Read the CDDB entry for an audio CD in your drive
This module/script gets the CDDB info for an audio cd. You need
LINUX, SUNOS or *BSD, a cdrom drive and an active internet connection in order
to do that. (The script implements an offline mode too.)
Everything is done in PERL, not just a C wrapper.
You can connect to a CDDB database directly, with http or http through
There is OS autodetection for: cdrom device, endiness, cpu architecture and
cdrom ioctl values.
License & Disclaimer
This library is released under the same conditions as Perl, that
is, either of the following:
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either
the GNU General Public License or the Artistic License for more details.
- the GNU General Public License Version 2 as published by the Free
- the Artistic License.
You should have received a copy of the Artistic License with this
Kit, in the file named "Artistic". If not, I'll be glad to provide one.
You should also have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
If you use this library in a commercial enterprise, you are invited,
but not required, to pay what you feel is a reasonable fee to the
author, who can be contacted at <armin at xos dot net>.
- default port is now 8880 (not 888 anymore)
- fixes an ioctl perl problem on current redhat/fedora and maybe other systems too
thanks to Gregory K. Ruiz-Ade and the redhat/fedora guys
- 2.26 [unreleased]
- added postgres/oracle/sqlite support (untested)
thanks to Rick for starting with a postgres version
- user:pass with proxy support - untested (thanks to Peter)
Please try it, I don't have such a setup.
- Cache module: use CDDB_cache instead of CDDB_get
All files are saved in a local tree and can be reused from there.
Please try it if you like, it's not really tested.
- 64bit updates. For now just for *BSD. Tested on OpenBSD.
Please try it on your favorite 64bit platform ;-)
Thanks to: Enache Adrian, Jolan Luff and Dan Weeks.
OpenBSD is now tested on: macppc, sparc64, alpha and i386.
- Minor POD fixes
- Added CDDB protocol 5 handling, which is now default. You
can set $PROTO_VERSION to an older version if you like.
Protocol 5 gives us: Year and Genre fields
- Added direct device handling in cddb.pl (-c /dev/xxx option)
- Firewall fix with additional "\n" (-F option), thanks: Alexandre
- 2.12 [internal]
- Tested and better device handling (I now have 3 cdroms [ide,scsi,usb 2.0])
- Bugfix of total disk length calculation (hopefully)
- MySQL is tested now
- -O flag for overwrite (xmcd file and mysql-db)
- Small bug in redhat spec file fixed
- FreeBSD was reported to work
- 2.01 [beta]
- Saving the information also in xmcd format, thanx: Denis, Clayton
- Load directly into a database (mysql example), thanx: Falko [untested]
- A data flag array per track (0 - audio, 1 - data),
it's a seperate array to keep compatibility, thanx: Kevin
- "/" in artist name fix, thanx: John
- HTTP proxy recognition fix, thanx: James, Glenn
- Return all entries if a flag is set, thanx: Kevin
- cddb.pl uses eval to show how it's possible to use CDDB_get.pm
without "die" on errors... [thanx: Erick, but no patch needed in perl ;-]
- Includes redhat spec file, thanx: Peter
- Outputs lame command, thanx: Marcel
- Solaris works (for real now), thanx: Joe
- HTTP mode implemented, thanx: Michael
- Proxy mode implemented (for http)
- NetBSD should work, maybe other bsd variants too;
there may be endian issues on bsd, so this is beta now
- Small correction and tests
- Solaris support, thanx: Adam
- Using freedb.freedb.org from now on
- Code "cleanup"
- Bugs fixed
- perl -w warnings resolved, thanx: Kyle
- Output for disc-label in xmcd format corrected (cddb.pl -d)
- TOC output (cddb.pl -t)
- Output for disc-label in xmcd format (try cddb.pl -d)
- Offline mode (try cddb.pl -h)
- Small bugfix: using integer division instead of useless floatingpoint
division. now its faster :-) [Guillaume Allegre]
- Changed name, because of CPAN (CDDB.pm already existed)
Author & Copyright
Latest Release: Sun Jan 1 21:03:41 CET 2006