#!/usr/bin/perl use MP3::Tag; $prettyfile = $ARGV[0]; $prettyfile =~ s{^/home/phil/music}{...}; $prettyfile =~ s{^/var/lib/mpd/music/phil}{...}; while (length($prettyfile) > 80) { $prettyfile =~ s{^\.\.\./}{}; $prettyfile =~ s{^[^/]+/}{.../}; } print "$prettyfile:\n"; $mp3 = MP3::Tag->new($ARGV[0]); if (defined $mp3) { $mp3->get_tags; if (exists $mp3->{ID3v2}) { $id3v2 = $mp3->{ID3v2}; for $t (qw(TALB TPOS TSST TRCK TIT1 TIT2 TIT3 TCOM TPE1 TPE2 TPE3 TPE4 TOAL)) { my ($info, $name) = $id3v2->get_frame($t); if (defined $info) { print "$t $info\n"; } } my ($info, $name) = $id3v2->get_frame('TLEN'); if (defined $info) { $min = int($info/1000/60); printf("TLEN \%d:\%02d\n", $min, $info / 1000 - $min * 60 + 0.5); } } elsif (exists $mp3->{ID3v1}) { $id3v1 = $mp3->{ID3v1}; print " Album: ", $id3v1->album, "\n"; print " Track: ", $id3v1->track, "\n"; print " Song: ", $id3v1->song, "\n"; print "Artist: ", $id3v1->artist, "\n"; } }