node-nde
v1.2.0
Published
Winamp Media Library / Nullsoft Database Engine (NDE) reader
Downloads
28
Maintainers
Readme
node-nde
Winamp Media Library / Nullsoft Database Engine (NDE) reader
Use this library to read Winamp's Media Library database. Extract ratings, etc.
Install
$ npm i node-nde
Usage
const path = require('path');
const NDE = require('node-nde');
const ndeReader = NDE.load('main.dat', 'main.idx');
let library = ndeReader.readAll();
Note: main.dat and main.idx can be found in Winamp's Plugins\ml folder.
Example of the result of readAll()
:
[
{
filename: 'C:\\music\\song.mp3',
title: 'Title',
artist: 'Artist',
year: 1986,
genre: 'Genre',
comment: '',
length: 180, // length in sec
type: 0,
lastupd: '2016-01-04T21:47:39.000Z',
lastplay: '2016-01-14T21:34:09.000Z',
rating: 3,
playcount: 32,
filetime: '2010-11-21T14:37:32.000Z',
filesize: 0,
bitrate: 256,
dateadded: '2016-01-04T21:47:39.000Z'
},
...
]
An entry object may contain these properties:
filename title artist album year genre comment trackno length type lastupd lastplay rating tuid2 playcount filetime filesize bitrate disc albumartist replaygain_album_gain replaygain_track_gain publisher composer bpm discs tracks ispodcast podcastchannel podcastpubdate GracenoteFileID GracenoteExtData lossless category codec director producer width height mimetype dateadded
What if I don't have an index (.idx) file?
node-nde
can attempt to read the contents of the .dat
file if no path to an index file is specified!
const path = require('path');
const NDE = require('node-nde');
const ndeReader = NDE.load('main.dat');
let library = ndeReader.readAll();
Please note that this method may not be able to read all the entries in the database and may start looping at some point. In that case, the reader will stop and return the entries it has read so far.
Credits
This library's initial version was based on neuralys/nde (PHP).