Steffest Digitale Pulptuur

Winamp database reader

a picture called winamplogo.jpg (click to enlarge)

I'm releasing a little tool/code snippet today for those DIY-people like me that like to tinker with their custom made ultimate personalised home media experience. (that's CUPHoME !)
One of the key elements is easy access to your music collection.
If you're serious about managing your music collection - and if you're using windows, you really have only 2 options: use Mediamonkey, or use Winamp.
iTunes on Windows really is a slow piece of garbage and Windows Media Player is a bit lacking in management features.
This "Battle of the media players" is over a year old but still very valid and spot on.
Mediamonkey uses SQlite as database so it's easy to interface with, but Winamp uses some propriety database format called NDE (Nullsoft Database Engine)
Although the format is somewhat documented, I was surprised i found very little code samples to connect to the winamp database from an external program. the documentation also seems a bit outdated as the internal binary structure seems to have evolved a bit.
Delphi to the rescue - writing a decoder for some binary format is actually a very satisfying pastime :-)
After a few hours I had a program that reads out the entire database and dumps it into a grid control, optionally exporting it to excel.
The source is here - should be easy to port to other languages.
Sample program is here (also includes source)

It's tested with the latest Winamp version as of writing: version 5.56.
It has a good chance of staying up to date as interfacing with Winamp seems to be a recurring theme over the years for my own projects.
Anyway - it's free to use in any way you want and comes with absolutely NO support :-)
Happy coding!

Tags: in English, ProgrammingGeef je reactie (1)