Skip to content
← All projects
AudioMeta app icon

AudioMeta Python

  • PyPI package version
  • Total PyPI downloads (all time, via Pepy)
  • Supported Python versions on PyPI
  • GitHub stars for BehindTheMusicTree/audiometa
Active & Available

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.mp3

Full README on GitHub

Who 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

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.