大量のコンピレーションなアルバムとかのせいで、wma なファイルが散らかって困ったことになっている。
なので、タグを読んで、アルバムごとにディレクトリを作って放り込む方法を考えたい。
ffmpeg とかをライブラリとして使うか、もしくはソース切り出してきて使うか、マウスで一つずつ処理していった方が時間かからないんじゃないか、どうしようって悩んでいたのだけど、cpan 探したら「Audio::WMA - Perl extension for reading WMA/ASF Metadata 」と、まさに私がいまやりたいことができるものがあった。しかも pure perl。
ということで、さっそくテストしてみる。
UTF-8 で簡単に取り出せることがわかったので、お片づけしたい。
#!/usr/bin/perl
use strict;
use Audio::WMA;
Audio::WMA::setConvertTagsToUTF8(undef, 1);
my $top = "/var/music/wma/つじあやの/COVER GIRL";
opendir(D, $top) or die $!;
for my $f (readdir(D)) {
next if /^\./;
my $wma = Audio::WMA->new($top . "/" . $f);
my $tags = $wma->tags();
print "$f\n"
print "$_: $tags->{$_}\n" for keys %$tags;
}
以下のような感じで、タグの一覧が得られる。
つじあやの - 結婚しようよ.wma
ALBUMTITLE: COVER GIRL
AUTHOR: つじあやの
TITLE: 結婚しようよ
...

Leave a comment