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
See it in action—pick a link and the live app opens in your tab. No install, no terminal, just click and try.
Browser metadata editor
Upload a file and inspect or edit ID3, Vorbis comments, or RIFF INFO in the web UI—same rules as the Python library.
Open live demo (opens in a new tab)
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.