JID3 - A JavaTM ID3 Class Library Implementation

Copyright 2003-2005 Paul Grebenc

JID3 is a class library, written in Java and licensed under the LGPL, which provides the required functionality for editing ID3 tags commonly used in MP3 media files.

Version History

0.46 (2005/12/10) 0.45 (2005/11/21) 0.44 (2005/10/26) 0.43 (2005/09/20) 0.42 (2005/05/10) 0.41 (2005/05/05) 0.40 (2005/04/19) 0.39 (2005/03/10) 0.38 (2005/02/06) 0.37 (2005/01/29)
  • Finish support for unknown v2.3.0 frames (call getUnknownFrames() in ID3V2_3_0Tags).
  • Support for frames with invalid IDs (in particular, because iTunes inserts a frame with an invalid frame ID). When reading in non-strict mode, these frames are read as UnknownID3V2Frame objects. An exception is thrown when an invalid frame ID is encountered, in strict mode.
  • Fix bug in getArtist() in ID3V2_3_0Tags, in cases where more than one lead performer is specified.
  • Cleaned up constructors for frames that require a byte array as argument.
  • Thanks to Paul Lamere for reporting the iTunes and getArtist() bugs.
0.36 (2005/01/15)
  • Provide support for using the visitor pattern to visit v1 and v2 tags, and v2 frames.
0.35 (2005/01/12)
  • Add toString() method to ContentType.Genre.
  • Use buffered streams where helpful.
  • Use streams instead of readers/writers when copying/comparing files.
  • Comment field in v1.1 tag should be a maximum of 28 bytes followed by a null, not 29 bytes without null.
  • getAlbum(), getGenre() and getComment() in ID3V2_3_0Tags return null if not set instead of throwing an exception.
  • Thanks to Vladimir A. Democh for this patch.
0.34 (2005/01/08)
  • Add tag display option to command line utility.
  • Add padding to v2.3.0 tags by default, to prevent Winamp from missing the last frame in the tag.
  • Add methods to set and get the default padding length adding to new v2.3.0 frames. (The default is 16 bytes.)
  • Change toString() method of ID3V1Tags to represent the genre as its descriptive string, when known.
  • Minor additions to the toString() method of the ID3V2Tags class.
0.33 (2004/12/30)
  • Add code to enforce restrictions on updates to frames where specified (ie. each AENC frame in a tag must have a unique owner identifier).
  • Add new set methods to some frames.
  • Various minor improvements.
0.32 (2004/12/23)
  • Add V2 support for encryption of frames.
  • Fix typo in V1 "Hip-Hop" genre.
0.31 (2004/11/07)
  • Add removeTags, removeID3V1Tags and removeID3V2Tags methods to MediaFile.
  • Fix rewriting of V2 tag.
  • Do not throw an exception in non-strict mode if duplicate frames are encountered where not allowed. Ignore all but the last duplicate read.
0.30 (2004/11/06)
  • Make getID3V1Tags and getID3V2Tags methods public.
  • Fix several problems with empty strings in frame fields.
0.29 (2004/10/13)
  • Add toString method to v1 Genre class.
  • Add useStrict and usingStrict methods to ID3Tags class. When in strict mode, reading a tag with a corrupt frame generates an exception. When in non-strict mode, corrupt frames are ignored where possible.
  • Better exception handling.
  • Fix handling of v1 track numbers over 127.
  • Fix frame length encoding in v2 tags.
0.28 (2004/09/28)
  • Finish support for a command line utility to set MP3 tag values.
  • Accept null short description in constructor of v2.3.0 COMM frames.
0.27 (2004/09/28)
  • Fix bug in v1 and v1.1 tags when not all tag values were set.
  • Add utility method to v1 Genre to allow parsing of genre strings where supported.
  • Partial support for a command line utility to set MP3 tag values.
0.26 (2004/09/26)
  • Add support for Unicode text encoding.
  • Require that v2 tags contain at least one frame to be written.
  • Add missing support for USLT V2.3.0 frames.
0.25 (2004/09/23)
  • Fix extended header code.
0.24 (2004/09/23)
  • Add ability to support extended header with CRC value.
0.23 (2004/09/16)
  • Add missing accessor methods to TRCKTextInformationID3V2Frame class.
  • Add convenience methods to easily set/get v1-equivalent attributes in v2 tags.
0.22 (2004/09/14)
  • Added support for unsynchronization in v2.3.0 tags.
0.21 (2004/09/13)
  • More efficient file copy methods when sync'ing files.
  • Fill in v2.3.0 tag method javadocs.
0.2 (2004/09/11)
  • First versioned release.


  • Tim Boldt
  • Vladimir A. Democh
  • Eish Dhillon
  • Andreas Grunewald
  • Henning Koch
  • Paul Lamere
  • Andreas Mandel
  • Kyle Morse
  • Gerard Naude
  • Andrew Newman
  • Simon Raaf
  • Aaron St. John
  • Artur Siurdyban
  • Matt Todd

Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems,Inc. in the United States and other countries.