Changelog
1.48.0 - ????-??-??
Changed the default branch from master to main
1.47.0 - 2023-09-03
ID3: Allow reading TYER tags in the form of “yyyy-mm-dd” #pr597
ID3: Handle negative extended header sizes #pr607
ID3: id3 frames fix bad cast due to str.isdigit #pr616
MP3: Auto-detect MP3 files without ID3 tags #pr601
FLAC: Fix cuesheet and seektable saving #pr534
TrueAudio: Read sample rate as unsigned and handle zero sample rate #pr609
docs: Fixed documentation for id3.ID3.save parameter v2_version
docs: Make extlinks compatible with sphinx 6.0 #pr590
docs: Fixed various typos #pr602
Add some more type annotations #pr622
Various minor fixes for issues uncovered by oss-fuzz #pr620 #pr621 #pr623
1.46.0 - 2022-10-09
Add pyproject.toml and switch to poetry for development only #pr513
tests: no longer include flake8 in the test suite, it has to be run separately now #pr571
Start adding some type annotations and integrate mypy #pr488
easyid3: map easyid3 grouping to TIT1 #pr505
mutagen-inspect: add usage documentation #pr540
wave: Fix bitrate calculation #pr566
FLAC: handle files where the first metadata block is not STREAMINFO #pr500
Increase buffer size for rewriting files from 256K to 1M to improve performance with network shares #pr570
Other changes: code cleanup #pr514, typos #pr565, remove upper limit for python version #pr579
1.45.1 - 2020-07-31
1.45.0 - 2020-07-11
WAVE support with ID3 tags #pr408 (Philipp Wolfer, Borewit)
DSDIFF support with ID3 tags #pr473 #pr472 (Philipp Wolfer)
MP4: Add support for nero chapters #pr398 (Martin Weinelt)
wavpack: add support for wavpack DSD #pr464 (Timothy Redaelli)
wavpack: add bits_per_sample #pr467 (Timothy Redaelli)
MP4: handle DecoderSpecificInfo with wrong instance size #pr465
docs: various fixes #pr461 (Terence Eden), #pr474 (naglis)
tests: depend on flake8 now (instead of pycodestyle and pyflakes)
docs: fix warnings with sphinx v3
Fuzzing related:
Fuzzing integration with python-afl #pr449
Fix various unhandled error cases in ogg, asf, oggvorbis, id3 #pr441, #pr445, #pr446, #pr447, #pr448, #pr454 (Julien Voisin)
aac: Fix ZeroDivisionError in case frequency is unknown
musepack: handle truncated stream header
musepack: handle invalid sample rate index
musepack: handle duplicate RG/SH packets
oggtheora: handle truncated header packet
oggtheora: fail if FRN in the header packet is zero
oggtheora: handle empty pages in more cases
ogg: handle empty pages in to_packets()
aiff: handle overflow in read_float() #pr456
1.43.1 - 2020-07-11
Add pickle support for enum types #pr477
docs: fix various warnings with sphinx v3
1.44.0 - 2020-02-10
Python 2 is no longer supported #410
mp4: Fix some infinite loops in the mp4 parser #pr429 (Julien Voisin)
flac: Fix pickle support for SeekPoint #pr428 (point-source)
aiff: Fix a division by zero #pr431 (Julien Voisin)
asf: Catch a MemoryError #pr432 (Julien Voisin)
oggtheora: Fix a division by zero #pr430 (Julien Voisin)
1.43.0 - 2019-11-17
Note: 1.43.x might be the last version supporting Python 2
Python 3.4 is no longer supported
Building requires ‘setuptools’ now, CLI tools depend on ‘pkg_resources’
CLI tools are setuptools entry points now
Minor typo fixes #pr375 (Nicholas Chammas)
MP3: increase max initial wrong syncs from 1000 to 1500 #pr376 (Hamid Alaei Varnosfaderani)
FLAC: support files with multiple VORBIS_COMMENT blocks like libflac #pr378
ID3: Improved TYER/TDAT/TIME upgrade to TDRC #pr385
MP4: Add support for iTunes HD Video tag (hdvd) #pr386 (Jay Sandhu)
Add AC3 file type #pr400 (Philipp Wolfer)
AIFF: renamed sample_size to bits_per_sample (sample_size still works) #pr403 (Philipp Wolfer)
API doc fixes #pr404 #pr407 (Philipp Wolfer)
Add support for Tom’s lossless Audio Kompressor (TAK) #pr405 (Philipp Wolfer)
OptimFROG: support encoder version >= 5.100 #pr406 (Philipp Wolfer)
AIFF: Fix handling of padding bytes, safe chunk manipulation #pr409 (Philipp Wolfer)
1.42.0 - 2018-12-26
ID3: Always read id3v1 tags and include them when no id3v2 equivalent exists. Can be disabled with the new
load_v1
option, seeid3.ID3.load()
#pr357 (Fredrik Strupe)ID3: Add a pretty print implementation for SYLT #pr359 (Hamid Alaei Varnosfaderani)
vorbis: Improved error messages when validating keys/values #pr356 (Michael Booth)
Fix pylint warnings when using the various
save()
methods #pr364
1.41.1 - 2018-08-11
MP4: fix rtng, stik, shwm getting saved as 16bit ints instead of 8bit #349
1.41.0 - 2018-07-15
Documentation fixes #pr342 (Jakub Wilk)
Fix decoding of track_peak from MP3 Info Tag #pr345 (Anton Yuzhaninov)
MonkeysAudio: set bits_per_sample for older files #347
1.40.0 - 2018-01-25
APEv2: Ensures tags are saved in a deterministic way #pr329 (cushy007)
Restore WinXP support for the CLI tools #332
easymp4: Fix EasyMP4.add_tags() when no tags exist #334
id3: Fix PyCharm not being able to resolve id3 frame class references #336
Support pathlib.Path objects for paths (PEP 519) #337 #pr338 (Andrew Rabert)
Use semver for versioning
1.39 - 2017-11-05
Tests:
Require hypothesis
Run pycodestyle/pyflakes tests by default. Skip with
--no-quality
or-m no quality
when using pytest directly.
Python 3.3 is no longer supported
MP3: Improved bitrate accuracy for files with XING header #328 (thanks Michaël Defferrard)
ASF: Fix case where some tags resulted in broken ASFUnicodeAttribute instances #324
Add support for filesystems which don’t support opening files read/write (gvfs over fuse for example) #300
mid3v2: Add support for USLT #306
Minor improvements by Borewit and Evan Purkhiser
1.38 - 2017-06-01
Note: New release tarballs are now hosted on github: https://github.com/quodlibet/mutagen/releases
ID3:
OGG: Fix wrong StreamInfo.length (small negative value) for all ogg based formats in rare cases. #308
1.37 - 2017.02.24
Relicense “GPLv2” → “GPLv2 or later” #291
DSF: add
mutagen.dsf
module for DSF (DSD Stream File) support #pr283 (Boris Pruessmann)MP3: Add
mp3.MPEGInfo.encoder_settings
containing a guess of the encoder settings used, for example"-V2"
for LAME #66ID3: add iTunes movement related frames
id3.MVIN
andid3.MVNM
MP4: support
©mvi
,©mvc
,shwm
,stik
,rtng
,tves
,tvsn
,plID
,cnID
,geID
,atID
,sfID
,cmID
,akID
#130
1.36.3 - 2017.02.24
MP3: fix error with xing frames without a frame count #292
1.36.2 - 2017.01.25
ID3: Always write little endian utf-16 with BOM. Fixes tests on big endian machines #pr289
1.36.1 - 2017.01.22
1.36 - 2016.12.22
1.35.1 - 2016.11.09
Revert back to distutils #273
1.35 - 2016.11.02
Tests: Require pytest
Tools: Install .exe launchers on Windows
setup.py: Require setuptools
ID3:
1.34.1 - 2016.08.13
ID3: Expose some internals again to make Picard (mostly) work again.
1.34 - 2016.07.20
ID3:
Drop Python 2.6 support
EasyID3: Fix TXXX frame encoding when setting a non-latin1 encodable value after a latin1 one. #263
1.33.2 - 2016.07.05
Fix loading of small ogg/apev2 files (1.33 regression)
1.33.1 - 2016.06.29
Fix Overeager deprecation warnings #261
1.33 - 2016.06.29
FileType, Metadata: File-like object support #1
mid3v2: Add APIC support. #47
EasyID3: Fix handling of RVA2 frames with non-lowercase description #215
mid3v2: Add UFID support. #234
ID3: Include human-readable representation of the picture type in APIC._pprint() #244
EasyID3: make albumartist use TPE2 and move performer to TXXX. #252
ID3: id3.ID3TimeStamp comparator: check type #pr260 (Fabian Peter Hammerle)
setup.py: follow PEP440 for the development version
FileType/Metadata.load/save/delete no longer raise IOError or IOError subclasses. They only raise subclasses of MutagenError.
1.32 - 2016.05.02
Add basic SMF (Standard MIDI File) support (
mutagen.smf
)FLAC: add
audio/flac
mime type. #235ASF: Fixed crash when object size is longer than the header and file length (Ben Ockmore)
ID3: Validate attributes set after frame creation 69368c31e00 (Daniel Plachotich)
MP4: validate values in
__setitem__
so things don’t fail in save() #236tests: Fix SynchronizedTextSpec test on big-endian machines #247 (Daniel Plachotich)
ID3: do type checking in
__setitem__
#251Building the documentation now requires sphinx >= 1.3
New
mutagen.Tags
base class for tagsMoved from Bitbucket to GitHub
1.31 - 2015.09.10
New padding control API for flac/id3/mp4/asf/ogg/aiff and everything based on it, except oggflac #229
Mutagen will now reduce padding on save if there is lots of it.
delete() will remove padding in addition to tags.
ASF:
Padding support #201
Don’t report negative lengths for some broken files
New
asf.ASFInfo
.codec_type/codec_name/codec_descriptionImplement ASF.delete()
OGG: Padding support for Opus/Vorbis/Theora/Speex
M4A: Implementation removed. Every operation will raise. Use mp4 instead.
Tools: Support Unicode output under Windows #232
1.30 - 2015.08.22
FLAC:
Fix
flac.FLAC.save()
in case the source contained a too large (invalid but recovered) image block #226
MP3:
Improved length and bitrate accuracy:
Read lame “Info” tags for improved bitrate/length accuracy
Use bytes info of VBRI headers for improved bitrate accuracy
Subtract encoder delay/padding from length for improved length accuracy (especially for short tracks)
Fix rare false identification of Xing headers #182
New
mp3.MPEGInfo
.encoder_info attribute containing the encoder name and version #66New
mp3.MPEGInfo
.bitrate_mode attribute exposing if the file is VBR, ABR or CBR #24 #66New
mp3.MPEGInfo
.channels attribute providing the channel countNew
mp3.MPEGInfo
.track_gain/track_peak/album_gain values exposing the replaygain info provided by the lame header #36
ID3:
New
id3.PictureType
enum for the picture type used in APIC frames #222
MP4:
Fix MP4FreeForm.__eq__ and MP4Cover.__eq__ when comparing with bytes #218
Don’t raise on
FileType.save()
if there are no tags. #227Minor fixes: #228
1.29 - 2015.05.09
1.28 - 2015.03.06
1.27 - 2014.11.28
MP4:
New
MP4Info.codec
for identifying the contained audio codec e.g."mp4a"
,"alac"
,"mp4a.40.2"
,"ac-3"
etc. b2f22b81c77New
MP4Info.codec_description
: name of the audio codec e.g."ALAC"
,"AAC LC"
,"AC-3"
OggOpus:
Preserve data after vorbis comment ( See https://tools.ietf.org/html/draft-ietf-codec-oggopus-05#section-5.2) #202
AAC:
New AAC FileType. Supports loading ADTS/ADIF AAC files. #15
1.26 - 2014.11.10
MP4:
Parse channels/sample_rate/bits_per_sample/bitrate for ALAC files #199 192cfcaf14 (Adrian Sampson, Christoph Reiter)
ASF:
Support writing multiple values for Author/Title/Copyright/Description/Rating #151
Fix read order for multi value tags
Various Python3 fixes
EasyID3: Add more tag mappings #136 (Ben Ockmore)
MPC/SV8: Fix parsing of SH packets with padding #198
docs:
New logo b728fa75 (Samuel Messner)
Add examples for handling cover art in vorbiscomment #200
Add examples for id3v2.3
1.25.1 - 2014.10.13
ID3: Fix parsing of some files with Python 3 #194
1.25 - 2014.10.03
Python 3 support (Ben Ockmore et al) #27 Supported: Python 2.6, 2.7, 3.3, 3.4 (CPython and PyPy)
All custom exceptions now have a common mutagen.MutagenError base class
mutagen.File: prefer theora over vorbis/flac streams in ogg #184
New mid3cp script for copying id3 tags #178 (Marcus Sundman, Ben Ockmore)
ID3:
ASF:
Raise a proper exception on invalid utf-16 #127
APEv2:
Fix UnicodeDecodeError during parsing #174
MP4:
Fix struct.error exception during parsing #119
New AtomDataType enum for MP4FreeForm.dataformat values
Read some previously ignored purl/egit atoms
Read multi value reverse DNS tags written by foobar2000
Read multi value atoms written by MusicBee #165
Write back unknown atoms and ones that failed to parse.
1.24 - 2014.08.13
Moved to Bitbucket: https://bitbucket.org/lazka/mutagen
ID3:
WavPack:
Fix length calculation if sample count is missing in the header #180
setup.py: Don’t install leftover files produced by the test suite #179
tests: Fix error with POSIX locale #181
1.23 - 2014.05.14
1.22 - 2013.09.08
Minimum required Python version is now 2.6
Online API reference at https://mutagen.readthedocs.org/
EasyID3:
Fix crash with empty TXXX values. #135
ID3:
MP4:
APEv2:
Handle invalid tag item count. #145 (Dawid Zamirski)
Ogg:
Faster parsing of files with large packets.
VComment:
Preserve text case for field names added through the dict interface #152
mid3v2:
New -e,–escape switch to enable interpretation of escape sequences and makes escaping of the colon separator possible. #159
mid3iconv:
Convert COMM frames #128
1.21 - 2013.01.30
Fix Python 2.3 compatibility (broken in 1.19).
Fix many warnings triggered by -3. #27
mid3v2:
FLAC:
ID3:
MakeID3v1: Do not generate bad tags when given short dates. #69
ParseID3v1: Parse short (< 128 byte) tags generated by old Mutagen implementations of MakeID3v1, and tags with garbage on the front.
pprint: Sort frames by name.
Upgrade unknown 2.3 frames #97 (Christoph Reiter)
Fix handling of invalid SYLT frames #105 (Christoph Reiter)
MP3:
Use ‘open’ rather than ‘file’ everywhere. #74 (Dan Callahan)
mid3iconv:
ID3FileType:
Remember which tag type load() was called with even if the file doesn’t yet have any ID3 tags. #89
VComment:
Prevent MemoryError when parsing invalid header #112 (Jyrki Pulliainen)
ASF:
OggTheora: Fix length/bitrate calculation. #99 (Christoph Reiter)
MP4:
OggOpus support. #115 (Christoph Reiter)
Musepack:
1.20 - 2010.08.04
1.19 - 2010.02.18
ID3:
mid3v2:
moggsplit: –m3u option to write an M3U playlist of the new files. #39
mid3iconv: Fix crash when processing TCML or TIPL frames. #41
VCommentDict: Correctly normalize key names for .keys() iterator. #45
MP3: Correct length calculation for MPEG-2 files. #46
oggflac: Fix typo in docstring. #53
EasyID3: Force UTF-8 encoding. #54
EasyMP4: Fix ‘genre’ translation. #56
1.18 - 2009.10.22
ASF:
Distinguish between empty and absent tag values in ContentDescriptionObjects. #29
mid3iconv:
Fix a crash when processing empty (invalid) text frames.
MAJOR API INCOMPATIBILITY!!!!
EasyID3FileType is now in mutagen.easyid3, not mutagen.id3. This change was necessary to restore API compatibility with 1.16, as 1.17 accidentally contained a circular import preventing mutagen.easyid3 from importing by itself. #32
1.17 - 2009.10.07
ID3:
MP4:
Don’t fail or double-encode UTF-8 strings when given a str.
Don’t corrupt 64 bit atom sizes when resizing atoms. #17
EasyID3:
Extension API for defining new “easy” tags at runtime.
Support for many, many more tags.
OggVorbis, OggSpeex: Handle bitrates below 0 as per the spec. #30
EasyMP4: Like EasyID3, but for iTunes MPEG-4 files.
mutagen.File: New ‘easy=True’ argument to create new EasyMP3, EasyMP4, EasyTrueAudio, and EasyID3FileType instances.
1.16 - 2009.06.15
Website / code repository move.
Bug Fixes:
EasyID3: Invalid keys now raise KeyError (and ValueError).
mutagen.File: .flac files with an ID3 tag will be opened as FLAC.
MAJOR API INCOMPATIBILITY!!!!
Python 2.6 has required us to rename the .format attribute of M4A/MP4 cover atoms, because it conflicts with the new str.format method. It has been renamed .imageformat.
1.15 - 2008.12.01
Bug Fixes:
mutagen.File: Import order no longer affects what type is returned.
mutagen.id3: Compression of frames is now disabled.
mutagen.flac.StreamInfo: Fix channel mask (support channels > 2). #35
mutagen.mp3: Ignore Xing headers if they are obviously wrong.
1.14 - 2008.05.31
Bug Fixes:
MP4/M4A: Fixed saving of atoms with 64-bit size on 64-bit platforms.
MP4: Conversion of ‘gnre’ atoms to ‘xa9gen’ text atoms now correctly produces a list of string values, not just a single value.
ID3: Broken RVA2 frames are now discarded. (Vladislav Naumov)
ID3: Use long integers when appropriate.
VCommentDict: Raise UnicodeEncodeErrors when trying to use a Unicode key that is not valid ASCII; keys are also normalized to ASCII str objects. (Forest Bond)
Tests: * FLAC: Use 2**64 instead of 2**32 to test overflow behavior.
1.13 - 2007.12.03
Bug Fixes:
FLAC: Raise IOError, instead of UnboundLocalError, when trying to open a non-existent file. (Lukáš Lalinský, Debian #448734)
Throw out invalid frames when upgrading from 2.3 to 2.4.
Fixed reading of Unicode strings from ASF files on big-endian platforms.
TCP/TCMP support. (Debian #452231)
Faster implementation of file-writing when mmap fails, and exclusive advisory locking when available.
Test cases to ensure Mutagen is not vulnerable to CVE-2007-4619. It is not now, nor was it ever.
Use VBRI header to calculate length of VBR MP3 files if the Xing header is not found.
1.12 - 2007.08.04
Write important ID3v2 frames near the start. (Lukáš Lalinský)
Clean up distutils functions.
1.11 - 2007.04.26
New Features:
mid3v2 can now set URL frames. (Vladislav Naumov)
Musepack: Skip ID3v2 tags. (Lukáš Lalinský)
Bug Fixes:
mid3iconv: Skip all timestamp frames. (Lukáš Lalinský)
WavPack: More accurate length calculation. (‘ak’)
PairedTextFrame: Fix typo in documentation. (Lukáš Lalinský)
ID3: Fixed incorrect TDAT conversion. The format is DDMM, not MMDD. (Lukáš Lalinský)
API:
Metadata no longer inherits from dict.
Relatedly, the MRO has changed on several types.
More documentation for MP4 atoms. (Lukáš Lalinský)
Prefer MP3 for files with unknown extensions and ID3 tags.
1.10.1 - 2007.01.23
Bug Fixes:
Documentation mentions ASF support.
APEv2 flags and valid keys are fixed.
Tests pass on Python 2.3 again.
1.10 - 2007.01.21
New Features:
FLAC: Skip ID3 tags. Added option to delete them on save.
EncodedTextSpec: Make private members more private.
Corrupted Oggs generated by GStreamer (e.g. Sound Juicer) can be read.
FileTypes have a .mime attribute which is a list of likely MIME types for the file.
ASF (WMA/WMV) support.
Bug Fixes:
ID3: Fixed reading of v2.3 tags with unsynchronized data.
ID3: The data length indicator for compressed tags is written as a synch-safe integer.
1.9 - 2006.12.09
New Features:
OptimFROG support.
New mutagen.mp4 module with support for multiple data fields per atom and more compatible tag saving implementation.
Support for embedded pictures in FLAC files (new in FLAC 1.1.3).
mutagen.m4a is deprecated in favor of mutagen.mp4.
1.8 - 2006.10.02
New Features:
MonkeysAudio support. (#851, Lukáš Lalinský)
APEv2 support on Python 2.5; see API-NOTES. (#852)
1.7.1 - 2006.09.24
Bug Fixes:
Expose full ID3 tag size as .size. (#848)
New Features:
Musepack Replay Gain data is available in SV7 files.
1.7 - 2006.09.15
Bug Fixes:
Trying to save an empty tag deletes it. (#813)
The semi-public API removal mentioned in 1.6’s API-NOTES happened.
Stricter frame ID validation. (#830, Lukáš Lalinský)
Use os.path.devnull on Win32/Mac OS X. (#831, Lukáš Lalinský)
New Features:
FLAC cuesheet and seektable support. (#791, Nuutti Kotivuori)
Kwargs can be passed to ID3 constructors. (#824, Lukáš Lalinský)
mutagen.musepack: Read/tag Musepack files. (#825, Lukáš Lalinský)
Tools:
mutagen-inspect responds immediately to keyboard interrupts.
1.6 - 2006.08.09
Bug Fixes:
IOError rather than NameError is raised when File succeeds in typefinding but fails in stream parsing.
errors= kwarg is correctly interpreted for FLAC tags now.
Handle struct.pack API change in Python 2.5b2. (SF #1530559)
Metadata ‘load’ methods always reset in-memory tags.
Metadata ‘delete’ methods always clear in-memory tags.
New Features:
Vorbis comment vendor strings include the Mutagen version.
mutagen.id3: Read ASPI, ETCO, SYTC, MLLT, EQU2, and LINK frames.
mutagen.m4a: Read/tag MPEG-4 AAC audio files with iTunes tags. (#681)
mutagen.oggspeex: Read/tag Ogg Speex files.
mutagen.trueaudio: Read/tag True Audio files.
mutagen.wavpack: Read/tag WavPack files.
Tools:
mid3v2: –delete-frames. (#635)
1.5.1 - 2006.06.26
Bug Fixes:
Handle ENODEV from mmap (e.g. on fuse+sshfs).
Reduce test rerun time.
1.5 - 2006.06.20
Bug Fixes:
APEv2
Invalid Lyrics3v2 tags are ignored/overwritten.
Binary values are autodetected as documented.
OggVorbis, OggFLAC:
Write when the setup packet spans multiple pages.
Zero granule position for header packets.
New Features:
mutagen.oggtheora: Read/tag Ogg Theora files.
Test Ogg formats with ogginfo, if present.
1.4 - 2006.06.03
Bug Fixes:
EasyID3: Fix tag[“key”] = “string” handler. (#693)
APEv2:
Skip Lyrics3v2 tags. (Miguel Angel Alvarez)
Avoid infinite loop on malformed tags at the start of the file.
Proper ANSI semantics for file positioning. (#707)
New Features:
VComment: Handle malformed Vorbis comments when errors=’ignore’ or errors=’replace’ is passed to VComment.load. (Bastian Kleineidam, #696)
Test running is now controlled through setup.py (./setup.py test).
Test coverage data can be generated (./setup.py coverage).
Considerably more test coverage.
1.3 - 2006.05.29
New Features:
mutagen.File: Automatic file type detection.
mutagen.ogg: Generic Ogg stream parsing. (#612)
mutagen.oggflac: Read/tag Ogg FLAC files.
mutagen.oggvorbis no longer depends on pyvorbis.
ID3: SYLT support. (#672)
1.2 - 2006.04.23
Bug Fixes:
MP3: Load files with zeroed Xing headers. (#626)
ID3: Upgrade ID3v2.2 PIC tags to ID3v2.4 APIC tags properly.
Tests exit with non-zero status if any have failed.
Full dict protocol support for VCommentDict, FileType, and APEv2 objects.
New features:
mutagen.oggvorbis gives pyvorbis a Mutagen-like API.
mutagen.easyid3 makes simple ID3 tag changes easier.
A brief TUTORIAL was added.
Tools:
mid3iconv, a clone of id3iconv, was added by Emfox Zhou. (#605)
1.1 - 2006.04.04
ID3:
Frame and Spec objects are not hashable.
COMM, USER: Accept non-ASCII (completely invalid) language codes.
Enable redundant data length bit for compressed frames.
1.0 - 2006.03.13
mutagen.FileType, an abstract container for tags and stream information.
MP3: A new FileType subclass for MPEG audio files.
FLAC:
Add FLAC.delete.
Raise correct exception when saving to a non-FLAC file.
FLAC.vc is deprecated in favor of FLAC.tags.
VComment (used by FLAC):
VComment.clear to clear all tags.
VComment.as_dict to return a dict of the tags.
ID3:
Fix typos in PRIV._pprint, OWNE._pprint, UFID._pprint.
mutagen-pony: Try finding lengths as well as tags.
mutagen-inspect: Output stream information with tags.
0.9 - 2006.02.21
Initial release.