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:
- 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
- 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
- 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;
- Make sure taglib isn't already installed. uninstall it first if
it is.
- Download taglib-1.4-sources.tar.bz2 to any folder
- Open that folder in a terminal
- Type the following commands:
-
tar xjf taglib-1.4-sources.tar.bz2
-
cd taglib
-
make && make install
- 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:
- Make sure taglib isn't already installed. uninstall it first if
it is.
- Download taglib-1.4.tbz to any folder you want
- Open that folder in a terminal
-
Type 'pkg_add taglib-1.4.tbz'