Skip to content
deckyardPublic

About

Read and edit MP3 metadata - ID3v2.2/2.3/2.4 and ID3v1.1 tags, embedded artwork, MPEG audio frame and Xing/VBRI stream analysis - and build M3U/M3U8 playlists

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

@deckyard/mp3

test Documentation release

A Jennifer deck that reads and writes MP3 metadata and M3U playlists, in pure Jennifer: ID3v2.2, 2.3 and 2.4 tags (unsynchronisation, compressed frames, all four text encodings, artwork), ID3v1 and ID3v1.1 with the 192-entry genre table, MPEG frame headers with Xing, Info and VBRI stream headers, and M3U / M3U8 playlists. One Tag struct covers every tag version, for reading and for writing.

Install

jvc add @deckyard/mp3

jvc vendors the src/ subtree to vendor/deckyard/mp3/. Without jvc, copy src/ (the entry module mp3.j and topics/) from a checkout or a deckyard-mp3-<version>.tar.gz release archive into that directory.

Requires Jennifer 0.25.0 or newer, and runs on jennifer-tiny. No network, subprocess or database; only open, save, writeFile, openPlaylist and savePlaylist touch the disk, through fs.

Example

use io;
import "@deckyard/mp3/" as mp3;

def track as mp3.Track init mp3.open("song.mp3");
io.printf("%s\n", mp3.describe($track));
# Maike Vandervaart - Ich war müde leer nicht mehr da  4:18  160 kbit/s VBR  44100 Hz  stereo

def tag as mp3.Tag init $track.tag;
$tag.genre = "Ambient";
mp3.save(mp3.withTag($track, $tag), "song.mp3");

Documentation

The book: guides, the on-disk formats, and a cheatsheet of every export. Runnable programs are in examples/. Contributors: the gate is tools/check-all.sh.

Licence

LGPL-3.0-only, see LICENSE. Copyright (C) 2026 mplx <mplx@jennifer-lang.dev>.

About

Read and edit MP3 metadata - ID3v2.2/2.3/2.4 and ID3v1.1 tags, embedded artwork, MPEG audio frame and Xing/VBRI stream analysis - and build M3U/M3U8 playlists

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages