NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
Incompatible artwork (Score:1)
I also spent some frustrated time trying to use your perl script [perl.org] for extracting artwork before I decided that the ID3 tags must be different. I'm still a Perl noob, how can I use 'keys' with the hash reference get_mp3tag returns so I know what all the keys are? B
Re:Incompatible artwork (Score:1)
my @nonhumans = keys %{ $hash_ref };
Re:Incompatible artwork (Score:1)
Key 0: YEAR
Key 1: ARTIST
Key 2: COMMENT
Key 3: ALBUM
Key 4: TITLE
Key 5: GENRE
Key 6: TRACKNUM
Key 7: TAGVERSION
I'm interested in using Perl to access the art because I'd really like a script which can remove the art from an mp3. We're using MusicMatch to rip a bunch of CDs and its pretty good but one bug is you can't tell it not to add the album art to a ripped track if it finds some. The problem with album art is when we use Apache::MP3 to steam files containing album art, some clients won't play the t
Re:Incompatible artwork (Score:1)
#-------------------------------
# Artwork: artwork.pl v.1 2007-02-18 14:52:09
# Pull album art from id3v2 tags
# Copyright (c) 2007 William Galway. All Rights Reserved.
#
#-------------------------------
$VERSION = '.1';
use MP3::Tag;
use File::Find;
open( LOGF, ">>logfile.txt" ) || die "$!";
print LOGF `date`;
print LOGF "The follwing directories are w/o ablum art.\n";
# MP3 Dirctory
print "Type the path to your mp3s and press Enter. \n";
$mp3dir = <STDIN>;
chomp $mp3dir;
print "\n";
# Album Art File Name
print "Type the name of the album art file you\n";
print "would like extracted to your mp3 folder and press Enter.\n";
print "For example cover.jpg\n";
$cover = <STDIN>;
chomp $cover;
print "\n";
if ( -e $mp3dir ) {
print "Checking $mp3dir for mp3s.\n";
}
else {
print("MP3 directory does not exist\n");
exit;
}
find( \&ExtractTagInfo, $mp3dir );
sub ExtractTagInfo {
if (/\.mp3$/) {
my $art;
$mp3 = MP3::Tag->new($_);
$mp3->get_tags();
if ( exists $mp3->{ID3v2} ) {
$id3v2_tagdata = $mp3->{ID3v2};
$info = $id3v2_tagdata->get_frame("APIC");
$mp3->close();
while ( my ( $key, $value ) = each(%$info) ) {
if ( $key eq "_Data" ) {
$art = $value;
}
}
}
if ( -e "$File::Find::dir/$cover" ) {
#print "$File::Find::dir/$cover already exists \n";
}
# write the art to file
elsif ($art) {
open ARTWORK, ">$cover"
or die "Could not open \n$File::Find::dir/$cover\n Check your permissions.\n";
binmode(ARTWORK);
print ARTWORK $art;
print "Pulling Art From $File::Find::name\n";
close ARTWORK;
}
else {
print LOGF "$File::Find::dir\n";
}
}
}
close(LOGF);
print(
"All Done! Open logfile.txt for a list of mp3 directories w/o album art information.\n"
);
exit
Reply to This
Parent