An ID3 & MP3 library written in TypeScript for Node.js
Motivation for this yet-another-id3-library:
-
On-the-fly, async & only read as much as needed
Only loads small parts of the file stream at a time. So that 100MB of e.g. podcast-episode.mp3 is not read completely in memory to get 100kb for an ID3v2 at the beginning of a file.
-
Native Node
No external dependencies
-
Read MPEG frames information
While reading the tag, you may want to read the duration/bitrate/... of the audio stream.
-
Write support
ID3v2/ID3v1 can be updated, removed or written.
For ID3v2.4 an easy-to-use build helper is available. For more complex use, you can write other versions and even non-standard combinations of ID3v2 frames.
There haven't been many reported issues, but be advised to make & keep backups of your audio files in case of bugs.
-
Return ID3v2 frames as raw as needed
No mangling or combination into a simplified tag object (but there is a helper function to do just that).
-
Deal with unknown/not implemented ID3v2 Frames
Such frames are loaded as binary blobs and can be also written as such.
-
Error tolerance over Specification
Tested with many valid & broken/invalid files https://github.com/ffalt/jamp3-testfiles
Table of Contents
