#!/usr/bin/perl -w use strict; $_ = <>; /^\s*#\s*xmcd\s*$/ or die "Unexpected format: `$_'"; $_ = <>; $_ = <> while /^\s*#\s*$/; /^\s*#\s*Track frame offsets:\s*$/ or die "Unexpected format: `$_'"; $_ = <>; $_ = <> while /^\s*#\s*$/; my @offsets; (push @offsets, $1), $_ = <> while defined and /^\s*#\s*(\d+)\s*$/; $_ = <> while /^\s*#\s*$/; /^\s*#\s*Disc length: (\d+) seconds\s*$/ or die "Unexpected format: `$_'"; my $len = $1; $_ = <>; $_ = <> while /^\s*#\s*(|(Revision|Submitted via|Processed by):\s.*)$/; /^\s*DISCID\s*=\s*([\da-f]+)\s*$/i or die "Unexpected format: `$_'"; my $id = $1; use CDDB; my $d = new CDDB or die; my @disks = $d->get_discs($id, \@offsets, $len) or die "No disks found!\n"; for my $disk (@disks) { warn "@$disk\n"; } if (@disks == 1) { my ($disc_genre, $disc_id, $disc_title) = @{$disks[0]}; my $info = $d->get_disc_details($disc_genre, $id); print $info->{xmcd_record}; }