{"id":22343045,"url":"https://github.com/wiiseguy/node-nde","last_synced_at":"2025-07-30T01:32:57.713Z","repository":{"id":143897947,"uuid":"115539615","full_name":"Wiiseguy/node-nde","owner":"Wiiseguy","description":"Winamp / Nullsoft Database Engine (NDE) reader","archived":false,"fork":false,"pushed_at":"2024-07-07T18:30:17.000Z","size":36,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-05T23:41:12.131Z","etag":null,"topics":["nde","node","nullsoft","winamp"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Wiiseguy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-27T16:39:52.000Z","updated_at":"2024-10-20T02:46:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"110d5e16-a566-47ee-98d5-2b03fde7edc8","html_url":"https://github.com/Wiiseguy/node-nde","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Wiiseguy/node-nde","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wiiseguy%2Fnode-nde","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wiiseguy%2Fnode-nde/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wiiseguy%2Fnode-nde/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wiiseguy%2Fnode-nde/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Wiiseguy","download_url":"https://codeload.github.com/Wiiseguy/node-nde/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wiiseguy%2Fnode-nde/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267792748,"owners_count":24144931,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nde","node","nullsoft","winamp"],"created_at":"2024-12-04T08:14:38.916Z","updated_at":"2025-07-30T01:32:55.321Z","avatar_url":"https://github.com/Wiiseguy.png","language":"JavaScript","readme":"# node-nde\n\u003e Winamp Media Library / Nullsoft Database Engine (NDE) reader\n\nUse this library to read Winamp's Media Library database. Extract ratings, etc.\n\n## Install\n\n```\n$ npm i node-nde\n```\n\n\n## Usage\n\n```js\nconst path = require('path');\nconst NDE = require('node-nde');\n\nconst ndeReader = NDE.load('main.dat', 'main.idx');\n\nlet library = ndeReader.readAll();\n```\n\n\u003e Note: main.dat and main.idx can be found in Winamp's Plugins\\ml folder.\n\nExample of the result of `readAll()`:\n\n```js\n[\n  {\n    filename: 'C:\\\\music\\\\song.mp3',\n    title: 'Title',\n    artist: 'Artist',\n    year: 1986,\n    genre: 'Genre',\n    comment: '',\n    length: 180, // length in sec\n    type: 0,\n    lastupd: '2016-01-04T21:47:39.000Z',\n    lastplay: '2016-01-14T21:34:09.000Z',\n    rating: 3,\n    playcount: 32,\n    filetime: '2010-11-21T14:37:32.000Z',\n    filesize: 0,\n    bitrate: 256,\n    dateadded: '2016-01-04T21:47:39.000Z'\n  },\n  ...\n]\n```\n\nAn entry object may contain these properties:\n\n```\nfilename 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\n```\n\n## What if I don't have an index (.idx) file?\n`node-nde` can attempt to read the contents of the `.dat` file if no path to an index file is specified!\n\n```js\nconst path = require('path');\nconst NDE = require('node-nde');\n\nconst ndeReader = NDE.load('main.dat');\n\nlet library = ndeReader.readAll();\n```\nPlease 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.\n\nCredits\n-------\n\nThis library's initial version was based on [neuralys/nde](https://github.com/neuralys/nde) (PHP).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiiseguy%2Fnode-nde","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwiiseguy%2Fnode-nde","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwiiseguy%2Fnode-nde/lists"}