TagLib

TagLib Audio Meta-Data Library

TagLib is a library for reading and editing the meta-data of several
popular audio formats. Currently it supports both ID3v1 and ID3v2
for MP3 files, Ogg Vorbis comments and ID3 tags and Vorbis comments
in FLAC, MPC, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 and ASF
files.

TagLib is distributed under the GNU Lesser General Public License
(LGPL) and Mozilla Public License (MPL). Essentially that means that
it may be used in proprietary applications, but if changes are made to
TagLib they must be contributed back to the project. Please review the
licenses if you are considering using TagLib in your project.

There is some general information about the motivation and workings of
TagLib that can be found in the API documentation.

Contact:

Goals and Features:

TagLib is fast - tests have shown it to be about 6 times faster
than id3lib and 3 times faster than libvorbisfile at reading tags
(CPU time)

TagLib is clean - TagLib is written in clean, object oriented
C++ using a programming style common in KDE and Qt library
programming

TagLib is easy - TagLib offers an abstraction layer that makes
it easy to ignore the differences between the different file formats
and their implementations

TagLib is powerful - for those that want to look under the hood
TagLib provides access to the implementations of the individual file
formats and provides a toolkit for doing advance manipulation of
audio meta-data

TagLib is well documented - Every class, namespace, function and
enumeration in TagLib is documented

TagLib supports Unicode - both ID3v2 and Ogg Vorbis standards
are designed to support Unicode, so is TagLib (many tagging
libraries and frontends are not)

TagLib is extensible - TagLib does not implement every feature
of ID3v2, but does instead make it possible for application authors
to extend TagLib to support the specific features that they need in
their applications

TagLib is not toolkit specific - while TagLib does use KDE-style
programming conventions and C++ by default, it does not link to
either Qt or Glib (in fact it has no external dependencies) and
does provide Glib-style C bindings (currently for the generic API
only)

Language Bindings

Projects Using TagLib

There are quite a few projects using TagLib already. Here’s a partial
list. If you know of something else, please send me a mail with a link
and I’ll add it here. (Note that inclusion here is not an endorsement of
the listed software.)