libtaginfo / README.markdown

TagInfo is a library for reading media metadata (tags).

TagInfo is a convenience wrapper for taglib with C and vala bindings.

Features are reading/writing fields like: Artist, Album, Title, Genre, AlbumArtist, Comments, Disk number, Compilation flag, User labels, Embedded Images, Lyrics, Audio properties (length, bitrate, samplerate, channels ...), ...

TagInfo is fast. Very rough tests have shown that it is about 40 - 60 times faster in file reading than with GStreamer's GstDiscoverer (codec based). There is not much overhead coming with this library, so it reads at almost the same speed as taglib itself, which is the fastest way around to read tag information.

Additionally, this library offers C and vala bindings that provide a lot of features that are not available via TagLib's own C bindings (and the according vala bindings).

The lacking possibility of accessing certain data fields via taglibs own C bindings was the original motivation for the creation of this library.

libtaginfo is distributed under the GNU Lesser General Public License (LGPLv2+). This was possible due to a code donation of J. Rios.

TagInfo can be used from C++, C and vala so far.

Supported files: Mp3, Ogg, Flac, MPC, Ape, Speex, WavPack, TrueAudio, WAV, AIFF, MP4 and ASF.

This library is under development!

API might change a little, although it has been stabilized in the last months. Not everything is fully covered by unit tests, but this will continue to improve.

Some packaging data for Ubuntu and for Debian is available via a subfolder of the project.


I would appreciate to collect patches for this library and improve it for the benefit of everybody that needs a convenient, fast (and toolkit independent) C / Vala API for tag reading/writing. There is a TODO file in the project folder listing some things that need to be done.

Ubuntu PPA with an up-to-date build for libtaginfo here

  • Parts of the C++ code were donated by J. Rios under the LGPLv2.

  • This library, its C and vala bindings are maintained by shuerhaaken.

If you have questions please ask on the xnoise mailing list !