Сдобих се със една колекция от български парчета, на които имената на файловете бяха направени като хората, обаче таговете ги нямаше никакви. Затова реших да напише едно скриптче дето взима името на файла във формат „trackN artist – song.mp3″, конвертира от латиница на кирилица и пише таговете.
Може лесно да се смени формата на файла от regex-а и могат и да се добавят още много тагове по желание. Аз знаех предварително, че компилацията е от 500 парчета затова има $track/500. За момента е доста специфичен, но може лесно да се модифицира за различни нужди.
Конвертирането към кирилица не е перфектно, но ме мързи да го оправям , щото не е фатално.
#!/usr/bin/perl -wuse Data::Dumper;use MP3::Tag;use Encode;my $filename = $ARGV[0];my $artist;my $track;my $song;print "Working on $filename\n";@cyr = ('ч','щ','ш','ю','а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ъ','ь','я','у','Ч','Щ','Ш','Ю','А','Б','В', 'Г','Д','Е','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ъ','Ь','Я','У');@lat = ('ch','sht','sh','iu','a','b','v','g','d','e','j','z','i','j','k','l','m','n','o','p','r','s','t','u','f','h','c','y','y','q','w','Ch','Sht','Sh','Iu','A','B','V', 'G','D','E','J','Z','I','J','K','L','M','N','O','P','R','S','T','U','F','H','C','Y','Y','Q','W');sub trim($){my $string = shift;$string =~ s/^\s+//;$string =~ s/\s+$//;return $string;}$temp=$filename;$temp=~s/\.mp3//gi;if ($temp =~ m/([\d]{3})\s+(.+\s*.+)\s?-\s?(.+\s?.+)/){$track = $1;$artist = $2;$song = $3;}my $retext = "$track $artist - $song";print $retext."\t";$i = 0;while($i < @lat) {$l = $lat[$i];$c = $cyr[$i];$artist=~s/$l/$c/g;$song=~s/$l/$c/g;#print $l."\t".$c."\n";$i++;}$songname = "$track ".trim($artist)." - ".trim($song);print $songname."\n";$mp3 = MP3::Tag->new($filename);$mp3->get_tags;my $id3v2 = $mp3->new_tag("ID3v2");$id3v2->add_frame('TRCK', "$track/500");$id3v2->add_frame('TIT2', decode('UTF-8',$song));$id3v2->add_frame('TPE1', decode('UTF-8',$artist));$id3v2->write_tag;
