Audio and video · Edition No. 39 · 3 Oct 2026

quodlibet/mutagen

A pure-Python library that reads and writes the metadata inside audio files, in about every format there is.

← Audio and videoRead the whole edition →

1,966 stars · GPL-2.0-or-later (read from /blob/main/COPYING — there is NO LICENSE, LICENSE.md or LICENSE.txt in the root at all; the file is the verbatim unmodified GNU GPL version 2, June 1991, with no project-specific holder) · release-1.48.1 (2026-06-25, year confirmed by PyPI) · Track this in Scout

A pure-Python library that reads and writes the metadata inside audio files, in about every format there is.

▶Repo detailsthe review · specs · pros & cons · install

What it is

Mutagen handles the labels in ASF, FLAC, MP3 with ID3, MP4, Ogg in its Vorbis, Opus, FLAC, Speex and Theora forms, Musepack, Monkey's Audio, True Audio, WavPack, OptimFROG and AIFF files. It is written entirely in Python and depends on nothing outside the Python standard library.

What it is good for. Any pile of audio files with inconsistent labels, where fixing them by hand is a week of clicking. Thirty lines of Python using this library will rename, retag and tidy a thousand files. It is also the library other, friendlier tools are built on, so knowing it is here is useful even if you never write a line against it.

Stars1,966
LicenceGPL-2.0-or-later (read from /blob/main/COPYING — there is NO LICENSE, LICENSE.md or LICENSE.txt in the root at all; the file is the verbatim unmodified GNU GPL version 2, June 1991, with no project-specific holder)
Latestrelease-1.48.1 (2026-06-25, year confirmed by PyPI)
Good
  • No dependencies at all outside the standard library, which means it installs everywhere and keeps working for years. It runs on both the standard Python and PyPy, on Linux, Windows and macOS.
  • It covers the awkward formats, not just MP3. Ogg Opus, Monkey's Audio and OptimFROG are in the list, and almost nothing else handles all of them.
  • ⚠ It also installs six command-line programs that its own front page never mentions: mid3v2, mid3cp, mid3iconv, moggsplit, mutagen-inspect and mutagen-pony. mid3iconv is the quietly useful one — it converts old-encoding labels to Unicode, which is what fixes a library full of unreadable characters.
Watch for
  • It is a library first. Most of what it can do needs you to write Python, and the command-line programs it ships are narrow, mostly ID3-focused utilities rather than a tag editor.
  • ⚠ GPL-2.0-or-later, read from the COPYING file. That is copyleft, so bundling it inside closed software is a real problem. Note that unlike Beancount above, this one does say "or later".
  • Its front page carries no install instructions at all and does not mention the command-line programs, so the project reads as less useful than it is. It needs Python 3.10 or later, and there are 105 waiting problems.
Similar repositories
  • taglib/taglib

    The same job across many formats and the library most desktop music players actually use; it is C++ with bindings, so faster and harder to install than a pure-Python package, and dual-licensed LGPL-2.1 and MPL.

    Track this in Scout
  • nicfit/eyeD3

    The same Python tag editing with a better command-line tool, but it handles essentially only MP3 with ID3, which is the easy case.

    Track this in Scout
  • tinytag/tinytag

    The same reading of labels across MP3, FLAC, Ogg, WAV and more, with a far simpler interface and a permissive licence, but it only reads and cannot write a label back; renamed from devsnd/tinytag.

    Track this in Scout
Install
python3 -m pip install mutagen
Screenshots
quodlibet/mutagen: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.