Audio::TagLib::ID3v2::Header - An implementation of ID3v2 headers


  use Audio::TagLib::ID3v2::Header;
  my $i = Audio::TagLib::ID3v2::Header->new();
  print $i->majorVersion(), "\n"; # got 0


This class implements ID3v2 headers. It attempts to follow, both semantically and programatically, the structure specified in the ID3v2 standard. The API is based on the properties of ID3v2 headers specified there. If any of the terms used in this documentation are unclear please check the specification.


constructs an empty ID3v2 header.

new(ByteVector $data)

Constructs an ID3v2 header based on $data. parse() is called immediately.


Destroys the header.

UV majorVersion()

Returns the major version number. (Note: This is the 4, not the 2 in ID3v2.4.0. The 2 is implied.)

UV revisionNumber()

Returns the revision number. (Note: This is the 0, not the 4 in ID3v2.4.0. The 2 is implied.)

BOOL unsynchronisation()

Returns true if unsynchronisation has been applied to all frames.

BOOL extendedHeader()

Returns true if an extended header is present in the tag.

BOOL experimentalIndicator()

Returns true if the experimental indicator flag is set.

BOOL footerPresent()

Returns true if a footer is present in the tag.

UV tagSize()

Returns the tag size in bytes. This is the size of the frame content. The size of the entire tag will be this plus the header size (10 bytes) and, if present, the footer size (potentially another 10 bytes).

NOTE This is the value as read from the header to which Audio::TagLib attempts to provide an API to; it was not a design decision on the part of Audio::TagLib to not include the mentioned portions of the tag in the size.

see completeTagSize()

UV completeTagSize()

Returns the tag size, including the header and, if present, the footer size.

see tagSize()

void setTagSize(UV $s)

Sets the tag size to $s.

see tagSize()

UV size() [static]

Returns the size of the header. Presently this is always 10 bytes.

ByteVector fileIdentifier() [static]

Returns the string used to identify and ID3v2 tag inside of a file. Presently this is always "ID3".

void setData(ByteVector $data)

Sets the data that will be used as the extended header. 10 bytes, starting from $data will be used.

ByteVector render()

Renders the Header back to binary format.


None by default.




Dongxu Ma, <>


Copyright (C) 2005 by Dongxu Ma

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.