December 07, 2004
Attached is a present for anyone wishing for a native D ID3 tag reader! :)

It works with Phobos streams.  An example program is included in a debug {} block to test it yourselves.  ID3v2 and v1 tags are supported.  I don't know about 100% ID3v1, but I'm pulling the most relevant fields from v2.

The default behavior is to find an ID3v2 tag at the start of the stream and an ID3v1 tag at 0x80 bytes from the end of the stream, in that order.

Enjoy!

P.S. - feel free to post/use this code anywhere you like, but give credit where credit is due.

Regards,
James Dunne
December 07, 2004
I've actually been working for a full object oriented tag processing library for D quite a while now :)

It currently supports:

ID3v1 and limited ID3v2
limited Lyrics3
APEv1 and v2 (full support)
VorbisComment

It features a CLI tag scanner program which examines files for known tags.

I've been working on two versions of the library; one for D and one for .NET. My biggest problem is to which version I should concentrate on, and which version I should publish. I've already decided that  won't be updating both versions when I start hacking ID3v2 and Lyrics3 support (such a pain!). But which one to drop, I can't decide.

I personally enjoy working in D very much, but I also have to ask myself the question: which version of the library will be more useful to the community, the one in relatively unknown language called D or the one made with C#, usable from every .NET language. It's a tough decision, I tells you.

Whichever version should I choose to work with will be published under BSD license, naturally.