WMA Support for TagLib

Umesh Shankar (ushankar@cs.berkeley.edu)

TagLib is a nicely architected metadata library for audio files. It's part of the KDE project, and is used by the excellent amaroK music player, among other applications.

TagLib unfortunately does not include WMA support, since its author does not wish to support it. I really needed this feature, so I coded it up, borrowing from the mplayer source.

The two main things that need to be done are:
1) Implement write support for WMA tags. Currently only tag reading is supported. (I am currently reviewing submitted code that does this.)
2) Get packages for various distributions. Some of these are already here, thanks to generous contributors. I haven't checked these over, so please direct all related questions to their respective authors.

If you would like to contribute either of these, please contact me.

There are several ways to get taglib-wma:


Building From Source

Building from development (subversion) source

You must do the following three things in order to build a modified TagLib from subversion:
  1. Apply a patch to the TagLib source. The patch should be applied in the kdesupport/taglib/ directory.
    Patch for Taglib 1.3: ../taglib-wma/taglib-wma-diffs-1.3
    Patch for Taglib 1.4: ../taglib-wma/taglib-wma-diffs-1.4
  2. Add a new subdirectory kdesupport/taglib/wma (parallel to the flac and mpeg directories), which you can do by extracting this archive in the kdesupport/taglib directory: ../taglib-wma/taglib-wma.tar.gz
  3. Build and install the modified taglib. I recommend using Checkinstall to make a package out of it after it's built, but a basic 'make install' should suffice.
Note that you can still do 'svn update' with the patches and it should work fine unless substantive changes are made to the mainline.

Building from a patched release

I have patched the Taglib 1.4 release: ../taglib-wma/taglib-wmapatched-1.4.tar.gz
After extracting it, you can build it from the taglib-1.4 directory using the usual method:
./configure
make
make install

Building From Source on Gentoo Linux

Taglib 1.4

These modified patches and Gentoo-specific files were contributed by Thus0 (thus0 at free.fr).

taglib-1.4.ebuild
taglib-1.4-wma-patch

Here are Thus0's instructions for Gentoo users:

# mkdir -p /usr/local/portage/media-libs/taglib
# cd /usr/local/portage/media-libs/taglib
# wget ../taglib-wma/taglib-wma-gentoo/taglib-1.4.ebuild
# wget ../taglib-wma/taglib-wma-gentoo/metadata.xml
# ebuild taglib-1.4.ebuild digest
# emerge taglib

Taglib 1.3

These modified patches and Gentoo-specific files were contributed by Cyrille Heit (cyrille.heit at free.fr).
metadata.xml
taglib-1.3.1.ebuild
taglib-wma-diffs
taglib-wma.tar.gz

Here are Cyrille's instructions for Gentoo users:

Building From Source on FreeBSD

These modified Taglib 1.4 sources were contributed by Frederic Van Assche (frederic at cgarchive.com).
../taglib-wma/taglib-wma-freebsd/taglib-1.4-sources.tar.bz2
Here are his instructions;
  1. Make sure taglib isn't already installed. uninstall it first if it is.
  2. Download taglib-1.4-sources.tar.bz2 to any folder
  3. Open that folder in a terminal
  4. Type the following commands:
  5.  tar xjf taglib-1.4-sources.tar.bz2
  6.  cd taglib
  7.  make && make install
  8. done, you can remove the 'taglib' folder, or keep it for uninstalling

Binaries

Fedora Core 3 RPM

Here is a Fedora Core 3 package based on Taglib 1.4 that I built with Checkinstall: ../taglib-wma/taglib-20050802-1.i386.rpm

FreeBSD binary package

Contributed by Frederic Van Assche (frederic at cgarchive.com):
../taglib-wma/taglib-wma-freebsd/taglib-1.4.tbz

Here are his instructions:
  1. Make sure taglib isn't already installed. uninstall it first if it is.
  2. Download taglib-1.4.tbz to any folder you want
  3. Open that folder in a terminal
  4. Type 'pkg_add taglib-1.4.tbz'