M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2009年12月28日 02:21

mp3ファイルのファイル名をタグのタイトルに設定するPerlスクリプト

このエントリーをはてなブックマークに追加 mixiチェック

SONYのICレコーダ ICD-UX300FっていうUSBにざっくりさせるICレコーダがありまして、これでラジオをエアチェックしたMP3ファイルを再生しようと思ったのですが、僕はファイル名に曲名を入れていたのでこれでいいと思っていたんですが、MP3のTag的には曲名のところが空欄になっていまして、ICレコーダの液晶上では「Unknown」と表示される残念な事態になっていましたので、早速ファイル名と同じものをタイトルとして設定するPerlスクリプトを作りました。LinuxのUTF-8ボリュームですよ。でもなんだかCP932とかにしているからiTunes上で化けそうな気がします。あれ、化けるのってID3v1の日本語のやつでしたっけ。とりあえずWindows Vistaのファイルのプロパティだとこれでちゃんと表示される。

mp3ファイルを書き換えますので、mp3ファイルをコピーしてから使いましょう。僕の場合は、このスクリプトはport 445で接続できるLinuxで実行していますから、必要なmp3ファイルをLinuxボリュームにコピーして実行しています。

filename: f.pl

#!/usr/bin/perl
 
use strict;
use warnings;
use MP3::Tag;
use Encode;
use utf8;
 
while ( my $file = shift @ARGV ) {
  print "$file\n";
  my $mp3 = MP3::Tag->new($file);
  $mp3->get_tags();
  my $res = $mp3->parse("%t.mp3", $mp3->filename_nodir);
  $mp3->title_set(encode('cp932', decode_utf8( $res->{title} )));
  $mp3->{ID3v2}->write_tag;
  $mp3->close();
}
 
exit;
 
__END__

今日の30分プログラミングでした。

あと、冒頭で紹介したICレコーダ、スピーカ出力小さいのであまりお勧めできませぬ。ちょっと残念。

投稿 大野 義貴 [Perl] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3082

コメントする