PUBLIC OBJECT

Java ID3 MP3? Good luck!

Today we attempted to parse some MP3 files with Java and we ran into some frustration. We're using the latest iTunes to do ripping and require compatibility with the latest and greatest of ID3v2. Here's what I found:

  • [de.ueberdosis.mp3info](http://www.ueberdosis.de/java/id3.html) The API for this package includes a class called "TwoStrings" that has the obvious methods setOne(), setTwo(), getOne(), getTwo(). This type of genius design didn't offer much confidence. It failed to parse all the MP3s I threw at it.
  • [de.vdheide.mp3](http://www.vdheide.de/java_mp3/) This package offers a tight concise API. The API was really easy to use and I was up-and-running in minutes. But it didn't parse my files, so I just kept running.
  • [helliker.id3](http://sourceforge.net/projects/jd3lib/) The first ID3 library that partially worked. It has a nice API but has been neglected for over 2 years. It didn't work on ID3v2 but it gave some hope on ID3v1\. Still insufficient though.
  • [org.farng.mp3](http://javamusictag.sourceforge.net/) 90% of the Javadoc for this package is the phrase _DOCUMENT ME!_. They suck. I couldn't even figure out the API!
  • [javazoom.spi](http://www.javazoom.net/) The API is awkward for ID3 alone since this library is primarily for decoding MP3 audio. But it works perfectly as an ID3 tag reader! This is what I'm using, it's the best.

    Moral of story: if you wanna use open source software, be prepared to waste 4 hours on crap. But when you do find that diamond in the rough, you will love it forever as if it were your poodle or wife.