2008-10-21 [長年日記]
● [Ruby] mp3 の ID3 タグを機械的につける
cddb からCD情報を取得していない殺風景な mp3 が目の前にある (※1)

(※1 ネットに繋がってないPCで慌ててリッピングした)
| 問1)これをどうにかせよ
(※ なお、CDはTSUTAYAに返却済みとする)
|
ID3タグ
そもそもなぜ mp3 が曲情報を知っているか不思議だったが、
ID3タグ(アイディースリータグ、ID3 tag)は、MP3ファイルの中に 「アーティスト、作成年、曲名」などの情報を書き込むための規格。 |
| Wikipedia: ID3タグ |
という付加情報があるらしい。てことは、ID3タグを自分で修正すればOK!で、GUI で設定するツールは色々あるのだが、これを1曲ずつやっていくのは何か違う(=面倒)。必然的に、それを扱うライブラリが欲しくなる。しかも Ruby が望ましい。なければ作るまでだ!
id3lib-ruby
あった川!川、あったよー!素晴らしい!しかも gem 一発!とは osx ではいかなかったので、port で id3lib を入れる。
# port install id3lib # gem install id3lib-ruby |
これで gem が入った。あとは、
% irb -r rubygems -r id3lib
tag = ID3Lib::Tag.new("foo.mp3")
tag.artist = '℃-ute'
tag.update! |
のように ID3 タグを Ruby から簡単に操作できる!robinstocker ありがとう!
APIの詳細は、http://id3lib-ruby.rubyforge.org/
あっ、ども。おひさしぶりです。
%irb -r rubygems -r id3lib
|
変換が一瞬で完了!
iTunes で読み込み直すと・・・

爽やかなGReeeeNが地獄のようになってしまった。
なんとなく
UTF8 でだめなら SJIS にしてみる。
Dir["*.mp3"].sort.each_with_index do |mp3,i|
tag = ID3Lib::Tag.new(mp3)
tag.artist = 'GReeeeN'
tag.album = NKF.nkf('-s', 'あっ、ども。おひさしぶりです。')
tag.title = NKF.nkf('-s', titles[i])
tag.update!
end |

クゥ〜ン♪
キセキは全てが最高だが、涙空も歌詞が深くてイイネ!
参考
- [Wikipedia] ID3タグ http://ja.wikipedia.org/wiki/ID3%E3%82%BF%E3%82%B0
- id3lib-ruby http://id3lib-ruby.rubyforge.org/
- [Amazon] あっ、ども。おひさしぶりです。(通常盤) http://www.amazon.co.jp/dp/B0018X4XH4
[ツッコミを入れる]

