Sunday, March 10, 2013

Using PERL's MP3::Tag to manipulate the ID3 tags on music files

Argument is a directory




#!/usr/bin/perl

use MP3::Tag; # import module

if(!defined($ARGV[0])) { "die: usage <mp3 dir>"; }

my $dir = $ARGV[0];

@files = <$dir/*.mp3>; # find MP3 files in current directory

# loop over file list
# print tag information

foreach (@files) {

        $mp3 = MP3::Tag->new($_);
        $mp3->get_tags();

        if (exists $mp3->{ID3v2} && exists $mp3->{ID3v1}) {

        #       print $_, "\t", $mp3->{ID3v1}->artist, "\t", $mp3->{ID3v1}->title, "\n";

                print "--------- ID3v2 File: $_ ---------\n";
                print "Artist:\t" . $mp3->{ID3v2}->artist . "\n";
                print "Title:\t" . $mp3->{ID3v2}->title . "\n";
                print "Comment:\t" . $mp3->{ID3v2}->comment . "\n";
                print "Genre:\t" . $mp3->{ID3v2}->genre . "\n";
                print "+++++++++ ID3v1\n";
                print "Artist:\t" . $mp3->{ID3v1}->artist . "\n";
                print "Title:\t" . $mp3->{ID3v1}->title . "\n";
                print "Comment:\t" . $mp3->{ID3v1}->comment . "\n";
                print "Genre:\t" . $mp3->{ID3v1}->genre . "\n";


        }

        $mp3->close();
}

No comments:

Post a Comment