node-nde

1.2.0 • Public • Published

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

Package Sidebar

Install

npm i node-nde

Weekly Downloads

13

Version

1.2.0

License

MIT

Unpacked Size

32.8 kB

Total Files

14

Last publish

Collaborators

  • wiiseguy