あけましておめでとうございます。
そんなわけで元旦中ひたすらMP3をWMAに変換し続けて、やっと2日に終了したのだけれど、いざWindows Media Player 11に読み込んではじめて気がついたのは、変換の過程でMP3のID3タグの情報が一切合財なくなっているということだった(笑)。これならまだもとのMP3の方がましだな。
でもまぁ問題はタグの情報だけなんだから、なんとかしてMP3のID3タグの情報を読み込んで、対応する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がサポートするメディアファイルのタグの情報を操作できる。MP3もWMAも同じようにやれるはず、だったのだけど、やってみたら、日本語がうまく通らない(苦笑)。ソースもついているので、デバッグすればいいのかもしれないが、その気力がなかった。
ただ、MetadataEditは2つバージョンがあって、ひとつはC++からビルドされる昔ながらのWindowsアプリで、もうひとつはC#からビルドされる。付属のexeはC++版なので、ひょっとするとC#版なら日本語もうまく行くかと思い、Visual C# 2005 Express Editionを入れてビルドしてみた。WMFSDK 11のサンプルはなぜかうまくビルドできなかったが、WMFSDK 9.5のサンプルを使ったらビルドできて日本語も使えた!イェーイ。
ということで、あとはこいつを各MP3/WMAファイルに対して実行し、MP3のタグの情報をWMAに移すようなスクリプトを書いて、流せばよい。めでたし、めでたし。
そんなわけで、長い道のりだったが、わたしのSanDisk Sansa m250でもアーティスト・アルバム・曲情報が全部ちゃんと出るようになった。ごくろうさま>自分
で、これ、やってて一番思ったのは、
次はiPodを買おう
ということだった(笑)。
(注)ぢつはまだちょっと化けてる文字があるのだが、そういうのはまた個別に修正するなり、再リップするなりして対応したい(もうきりがないので…)。