This project exists because the TS|JS ecosystem had no battle-tested audio tagging library that supports reading and writing music metadata to all popular audio formats. TagLib-Wasm stands on the shoulders of giants, including TagLib itself, Emscripten, and Wasm (WebAssembly). TagLib itself is legendary, and a core dependency of many music/media apps.
import { readTags, updateTags } from "taglib-wasm/simple";
const tags = await readTags("song.flac");
console.log(tags.title, tags.artist, tags.album);
await updateTags("song.flac", { title: "New Title", artist: "New Artist" });
On PC/server runtimes (Deno, Node.js, Bun), TagLib-Wasm auto-selects a WASI backend that does fast and efficient seek-based I/O. In browsers, it uses Emscripten with full-buffer I/O. No configuration is needed.This is the first 1.0 beta. I'd appreciate any feedback on the API design/DX, missing formats/features, and use cases I haven't thought of.