AudioMeta Python
A powerful, unified Python library for reading and writing audio metadata across multiple formats (ID3v1, ID3v2, Vorbis, RIFF).
When you work with audio files, consistent tags make search, playlists, and rights a lot less painful. AudioMeta Python is open source: use it in your own projects, read the code, open issues, and send patches like any community-maintained library. It focuses on predictable read/write across common container and tag schemes—whether you run it from the shell, a script, or your own service—so ID3, Vorbis comments, and RIFF INFO stay approachable without every tool reinventing the same edge cases in private.
Quick demos
Code snippets
Short examples from the project README, with illustrative output (not run in the browser). See the repository for real validation, formats, and the full API.
Library — full read (unified + technical + headers)
from audiometa import get_full_metadata, UnifiedMetadataKey
full_metadata = get_full_metadata(
"bohemian_rhapsody.mp3",
include_headers=True,
include_technical=True,
include_raw_binary_data=False,
)
um = full_metadata["unified_metadata"]
print("Title:", um.get(UnifiedMetadataKey.TITLE))
print("Artists:", um.get(UnifiedMetadataKey.ARTISTS))
tech = full_metadata["technical_info"]
print("Duration (s):", tech["duration_seconds"])
print("Bitrate (bps):", tech["bitrate_bps"])
print("Sample rate (Hz):", tech["sample_rate_hz"])
print("Channels:", tech["channels"])
print("File size (bytes):", tech["file_size_bytes"])
id3 = full_metadata["headers"]["id3v2"]
print("ID3v2 present:", id3["present"], "version:", id3.get("version"))Example output
Title: Bohemian Rhapsody
Artists: ['Queen']
Duration (s): 354.00
Bitrate (bps): 320000
Sample rate (Hz): 44100
Channels: 2
File size (bytes): 14160000
ID3v2 present: True version: (2, 4, 0)CLI — install, full read, write
pip install audiometa-python
audiometa read bohemian_rhapsody.mp3 --format yaml
audiometa write bohemian_rhapsody.mp3 --title "Bohemian Rhapsody (Remastered)" --artist "Queen"Example output
Successfully installed audiometa-python.
unified_metadata:
title: Bohemian Rhapsody
artists:
- Queen
album: A Night at the Opera
technical_info:
duration_seconds: 354.00
bitrate_bps: 320000
sample_rate_hz: 44100
channels: 2
file_size_bytes: 14160000
headers:
id3v2:
present: true
version: [2, 4, 0]
Metadata updated for bohemian_rhapsody.mp3Who it's for
Python developers integrating tag read/write in apps, scripts, or services—and anyone who prefers the terminal: the audiometa CLI covers inspect and edit flows without writing Python.
Key features
- Reading and writing audio metadata across multiple formats
- ID3v1, ID3v2, Vorbis, and RIFF support
- Use from scripts, services, or alongside the browser demo
Related projects
Browser UI for the same metadata workflows: AudioMeta Webapp.
Technical documentation
Setup, APIs, architecture, and contribution workflows live in each repository's README (and linked resources). This page focuses on the product story and ecosystem fit.