At 09:21 -0400 2001.10.19, Drew Taylor wrote: >I have some free time on my hands (layoffs suck!) and I would like to play >around with my MP3 collection a bit, specifically make sure all tags are >set and files properly named. My question is, which module should I use? > From my search, I found several that look interesting: MPEG::ID3v2Tag, >MP3::Info (hi Chris!), MP3::ID3v1Tag and MP3::Tag. I'm leaning towards >MP3::Info or MP3::Tag since they appear to be more generalized. > >Other than Chris's obvious bias ( JK :-) ), what are other's experiences >with the above modules? Like I said, I have some time and I plan to >embrace, extend, and contribute as needed.
MP3::Info is more widely used, and does a lot more than MP3::Tag. MP3::Tag reads ID3v1 and ID3v2, and writes ID3v1. It does some writing of ID3v2. It does not say which versions of ID3v2 it supports (ID3v2.2 and ID3v2.3 are the most widely used, but ID3v2.4 is the most recent, and perhaps final, version). It supports ID3v1.1. MP3::Info reads and writes ID3v1 and ID3v1.1, and reads ID3v2.2 and ID3v2.3. There are no plans to support ID3v2.4 because no one seems to care. It does not support writing ID3v2 because no one seems to care, and it is a pain in the butt. It also gets all the info out of the MP3 header, including bitrate, frequency, etc. (and handles variable bitrate), making it more all-purpose. MP3::Tag is OOP, while MP3::Info is functional (but supports a basic OOP interface for weirdos who want it). As to MP3::ID3v1Tag and MPEG::ID3v2Tag, they were written by blokes from mp3.com. I have considered extending MP3::Info to use MPEG::ID3v2Tag for its ID3v2 support, but it cannot modify existing ID3v2 tags, and I lost interest. :-) This would still be an eminently worthwhile project if there were interest in it; my priorities are all related to Slash and MacPerl these days, though. But again, since most people don't care much about ID3v2, it is low priority. I think ID3v2 suffers from lack of support in clients and too much complexity. Most clients can't handle ID3v2 contents beyond what ID3v1 provides (except for longer field length), so why bother? MP3::ID3v1Tag isn't anything really special, it is very basic and does nothing the two modules above don't do. HTH, -- Chris Nandor [EMAIL PROTECTED] http://pudge.net/ Open Source Development Network [EMAIL PROTECTED] http://osdn.com/
