
In simple English
This library reads the hidden information inside music and video files. It tells you the artist name, album title, track length, and picture art. You can use it to build a music player or organize your local audio collection. It runs in server code and in web browsers without needing extra tools. It costs nothing to use and requires no paid services.
What it is
A TypeScript library for parsing media metadata from files, streams, buffers, and web blobs. It extracts format details, tags, and track information across many popular audio and video formats.
What it is good for
Building web applications, music players, or server scripts that need to read tags from uploaded or local audio files. It removes the need to write custom binary parsers for complex audio containers.
- Supports a large variety of audio formats and tag standards.
- Works across both Node.js and modern web browsers.
- Provides a clean, promise-based API for easy async work.
- Requires Node.js version 22 or newer to run on the server.
- Large media files with embedded artwork can consume significant memory.
- Asynchronous parsing errors require careful type narrowing in TypeScript.
Writing custom binary file parsers or heavy command-line wrapper tools for audio tags
Express
- Borewit/strtok351 stars
Low-level stream tokenizer library used internally by music-metadata for reading binary data sources.
- aadsm/jsmediatags797 stars
Another JavaScript library for reading audio tags, though with a narrower focus on ID3 formats.
- snapcast/snapcast8.0k stars
A server and clients that play one audio stream in several rooms, kept in time with each other.
- MusicPlayerDaemon/MPD2.8k stars
A background music player with no interface of its own, controlled over a network by separate client programs.
- AcademySoftwareFoundation/OpenTimelineIO2.0k stars
An interchange format and library for editing timelines: the order and length of cuts, and references to the media, but not the media.
npm install music-metadata