code-archive/id3_renamer.pl.v1

34 lines
708 B
Perl

#!/usr/bin/env perl
use v5.18;
use Data::Dumper;
opendir my $dh, '.';
my @files = readdir $dh;
closedir $dh;
for my $file (@files){
my %bag;
next unless $file =~ m/\.mp3$/i;
my $id3out = `id3 "$file"`;
for (split "\n", $id3out){
if(m/Track\: (\d+)/){
$bag{'track'} = $1;
$bag{'track'} =~ s/^(\d)$/0\1/;
};
if(m/Title\: (.+)/){$bag{'title'} = $1;
$bag{'title'} =~ s/\s*$//;
$bag{'title'} =~ tr/ /_/;
$bag{'title'} =~ tr/(/-/;
$bag{'title'} =~ tr/)//;
$bag{'title'} =~ s/\//_a.k.a._/g;
};
}
next unless defined $bag{'track'} && defined $bag{'title'};
my $newfile = sprintf "%s-%s.mp3",
$bag{'track'},
$bag{'title'}
;
printf "mv \"%s\" \"%s\"\n", $file, $newfile;
}