---
name: "MP3::Tag::CDDB_File"
section: "3pm"
platform: "linux"
package: "libmp3-tag-perl"
version: "1.16-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MP3::Tag::CDDB_File"
---

# MP3::Tag::CDDB\_File(3pm)

Module for parsing CDDB files.

## NAME

MP3::Tag::CDDB\_File - Module for parsing CDDB files.

## SYNOPSIS

```
  my $db = MP3::Tag::CDDB_File->new($filename, $track); # Name of audio file
  my $db = MP3::Tag::CDDB_File->new_from($record, $track); # Contents of CDDB
  ($title, $artist, $album, $year, $comment, $track) = $db->parse();
```

see MP3::Tag

## DESCRIPTION

MP3::Tag::CDDB\_File is designed to be called from the MP3::Tag module.

It parses the content of CDDB file.

The file is found in the same directory as audio file; the list of possible file names is taken from the field `"cddb_files"` if set by MP3::Tag **config()** method.

- **parse()**

  ```
    ($title, $artist, $album, $year, $comment, $track) =
       $db->parse($what);
  ```

  **parse\_filename()** extracts information about artist, title, track number, album and year from the CDDB record.  `$what` is optional; it maybe title, track, artist, album, year, genre or comment. If `$what` is defined **parse()** will return only this element.

  Additionally, `$what` can take values `"artist_collection"` (returns the value of artist in the disk-info field DTITLE, but only if author is specified in the track-info field TTITLE), `"title_track"` (returns the title specifically from track-info field - the `"track"` may fall back to the info from disk-info field), `"comment_collection"` (processed EXTD comment), `"comment_track"` (processed EXTT comment).

  The returned year and genre is taken from DYEAR, DGENRE, EXTT, EXTD fields; recognized prefixes in the two last fields are YEAR, ID3Y, ID3G. The declarations of this form are stripped from the returned comment.

  An alternative syntax "Recorded"/"Recorded on"/"Recorded in"/ is also supported; the format of the date recognized by **ID3v2::year()**, or just a date field without a prefix.

- **title()**

  ```
   $title = $db->title();
  ```

  Returns the title, obtained from the `'Tracktitle'` entry of the file.

- **artist()**

  ```
   $artist = $db->artist();
  ```

  Returns the artist name, obtained from the `'Performer'` or `'Albumperformer'` entries (the first which is present) of the file.

- **track()**

  ```
   $track = $db->track();
  ```

  Returns the track number, stored during object creation, or queried from the parent.

- **year()**

  ```
   $year = $db->year();
  ```

  Returns the year, obtained from the `'Year'` entry of the file.  (Often not present.)

- **album()**

  ```
   $album = $db->album();
  ```

  Returns the album name, obtained from the `'Albumtitle'` entry of the file.

- **comment()**

  ```
   $comment = $db->comment();
  ```

  Returns the `'Trackcomment'` entry of the file.  (Often not present.)

- **genre()**

  ```
   $genre = $db->genre($filename);
  ```

## POD ERRORS

Hey! **The above document had some coding errors, which are explained below:**

- Around line 36:

  \=over without closing =back
