Skip to content

Wiiseguy/node-nde

Repository files navigation

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).

About

Winamp / Nullsoft Database Engine (NDE) reader

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published