NAME
MPEG::MP3Info - Manipulate / fetch info from MP3 audio files
SYNOPSIS
#!perl -w
use MPEG::MP3Info;
my $file = 'Pearls_Before_Swine.mp3';
set_mp3tag($file, 'Pearls Before Swine', q"77's",
'Sticks and Stones', '1990', q"(c) 1990 77's LTD.", 'rock & roll');
my $tag = get_mp3tag($file) or die "No TAG info";
$tag->{GENRE} = 'rock';
set_mp3tag($file, $tag);
my $info = get_mp3info($file);
printf "$file length is %d:%d", $info->{MM}, $info->{SS};
DESCRIPTION
- use_winamp_genres()
-
Puts WinAmp genres into
@mp3_genres
and%mp3_genres
.Import the data structures with one of:
use MPEG::MP3Info qw(:genres); use MPEG::MP3Info qw(:DEFAULT :genres); use MPEG::MP3Info qw(:all);
- remove_mp3tag (FILE)
-
Removes last 128 bytes from file if those last 128 bytes begin with the text `TAG'. File will be 128 bytes shorter. Returns undef if no existing TAG found, 1 on successful removal of TAG.
- set_mp3tag (FILE, TITLE, ARTIST, ALBUM, YEAR, COMMENT, GENRE)
- set_mp3tag (FILE, $HASHREF)
-
Adds/changes tag information in an MP3 audio file. Will clobber any existing information in file. All fields have a 30-byte limit, except for YEAR, which has a four-byte limit.
GENRE is a case-insensitive text string representing a genre found in
@mp3_genres
.Will accept either a list of values, or a hashref of the type returned by
get_mp3tag
. - get_mp3tag (FILE)
-
Returns hash reference containing tag information in MP3 file. Same info as described in
set_mp3tag
. You can't change this data. - get_mp3info (FILE)
-
Returns hash reference containing file information for MP3 file.
HISTORY
- v0.52, Sunday, February 21, 1999
-
Fixed problem in
get_mp3tag
that changed value of$_
in caller (Todd Hanneken <thanneken@hds.harvard.edu>). - v0.51, Saturday, February 20, 1999
-
Fixed problem with
%winamp_genres
having the wrong numbers (Matthew Sachs). - v0.50, Friday, February 19, 1999
-
Added
remove_mp3tag
. Addeed VERSION to the hash returned byget_mp3info
, and fixed a bug where STEREO was not being set correctly.Export all genre data structures on request. Added
use_winamp_genres
to use WinAmp genres (Roland Steinbach <roland@support-system.com>).Added a
$MPEG::MP3Info::try_harder
variable that will try harder to find the MP3 header in a file. False by default. Can take a long time to fail, but should find most headers at any offets if set to true.Thanks to Matthew Sachs for his input and fixes.
mailto:matthewg@interport.net http://www.zevils.com/linux/mp3tools/
Thanks also to Peter Kovacs <kovacsp@egr.uri.edu>.
- v0.20, Saturday, October 17, 1998
-
Changed name from
MPEG::MP3Tag
toMPEG::MP3Info
, because it does more than just TAG stuff now.Made header stuff even more reliable. Lots of help and testing from Meng Weng Wong again. :-)
- v0.13, Thursday, October 8, 1998
-
Had some problems with header verification, got some code from Predrag Supurovic:
mailto:mpgtools@dv.co.yu http://www.dv.co.yu/mp3list/mpgtools.htm http://www.dv.co.yu/mp3list/mpeghdr.htm
Great stuff. Also did some looping to find a header if it is not in the "right" place. I did what I think it is a smart way to do it, since some files have the header as far down as 2 kbytes into the file. First, I look at position 0, then at position 36 (a position where I have found many headers), then I start at 0 again and jump in 128-byte chunks. Once I do that a bunch of times, I go back at the beginning and try at 0 and go ahead in 1-byte chunks for a bunch more times.
If you have an MP3 that has the header begin at an odd place like byte 761, then I suggest you strip out the junk before the header begins. :-)
- v0.12, Friday, October 2, 1998
-
Added
get_mp3info
. Thanks again to mp3tool source from Johann Lindvall, because I basically stole it straight (after converting it from C to Perl, of course).I did everything I could to find the header info, but if anyone has valid MP3 files that are not recognized, or has suggestions for improvement of the algorithms, let me know.
- v0.04, Tuesday, September 29, 1998
-
Changed a few things, replaced a regex with an
unpack
(Meng Weng Wong <mengwong@pobox.com>). - v0.03, Tuesday, September 8, 1998
-
First public release.
AUTHOR AND COPYRIGHT
Chris Nandor <pudge@pobox.com> http://pudge.net/
Copyright (c) 1999 Chris Nandor. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Please see the Perl Artistic License.
Thanks to Johann Lindvall for his mp3tool program:
http://www.dtek.chalmers.se/~d2linjo/mp3/mp3tool.html
Helped me figure it all out.
VERSION
v0.52, Sunday, February 21, 1999
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 51:
'=item' outside of any '=over'
- Around line 467:
You forgot a '=back' before '=head1'