MetadataEdit

あけましておめでとうございます。

そんなわけで元旦中ひたすらMP3WMAに変換し続けて、やっと2日に終了したのだけれど、いざWindows Media Player 11に読み込んではじめて気がついたのは、変換の過程でMP3ID3タグの情報が一切合財なくなっているということだった。これならまだもとのMP3の方がましだな。

でもまぁ問題はタグの情報だけなんだから、なんとかしてMP3ID3タグの情報を読み込んで、対応するWMAに追加してやれば、また40時間かけて変換する必要はないはずだ。そういうセンで解決策がないか調べてみた。

もちろんGUIベースのタグエディターを使って、地道に手で直してもいいんだけど、7000ファイル以上あるから、できればプログラムで一括処理したい。かと言って、一回だけしか必要ないんだから、あんまし本格的なプログラムも書きたくない。

MP3だけだったら、どうもCDDBControlというCOMオブジェクトを使うとうまくいくようだった。CDDBControlはフリーではないのだけれど、なんかわたしのマシンにはCDDBControlRoxioというのが入っていた。たぶんRoxio Easy CD Creatorについていたみたいだ。それを使うスクリプトを(Ruby + WIN32OLEなんかで)書いてやると比較的簡単にMP3のタグの操作はできるようだった。が、WMAは駄目。

WMAについてはWindows Media Format(WMF) SDKというのを使うらしいことがわかってきて、WMF 11 SDKというのをダウンロードした。これにはMetadataEdit.exeというツールがついていて、それを使えば、Windowsがサポートするメディアファイルのタグの情報を操作できる。MP3WMAも同じようにやれるはず、だったのだけど、やってみたら、日本語がうまく通らない(苦笑)。ソースもついているので、デバッグすればいいのかもしれないが、その気力がなかった。

ただ、MetadataEditは2つバージョンがあって、ひとつはC++からビルドされる昔ながらのWindowsアプリで、もうひとつはC#からビルドされる。付属のexeC++版なので、ひょっとするとC#版なら日本語もうまく行くかと思い、Visual C# 2005 Express Editionを入れてビルドしてみた。WMFSDK 11のサンプルはなぜかうまくビルドできなかったが、WMFSDK 9.5のサンプルを使ったらビルドできて日本語も使えた!イェーイ。

ということで、あとはこいつを各MP3/WMAファイルに対して実行し、MP3のタグの情報をWMAに移すようなスクリプトを書いて、流せばよい。めでたし、めでたし。

そんなわけで、長い道のりだったが、わたしのSanDisk Sansa m250でもアーティスト・アルバム・曲情報が全部ちゃんと出るようになった。ごくろうさま>自分

で、これ、やってて一番思ったのは、

次はiPodを買おう

ということだった

()ぢつはまだちょっと化けてる文字があるのだが、そういうのはまた個別に修正するなり、再リップするなりして対応したい(もうきりがないので)。

Leave a comment