はちゅにっき

こっちのブログはまったり更新

mp3 の ID3 Tag をファイルパスに基づいて更新する

アーティスト名/アルバム名/01-曲名.mp3

というファイルパスのルールで保存してある mp3 に対して、ファイルパスに基づいて適切な ID3 タグを一括で設定する Script を Rubytaglib-ruby を使って書いてみました。

taglib-rubyC++ で書かれた ID3 Tag 編集用のライブラリ TagLibRuby バインディングなので、別途 TagLib 本体をインストールする必要があります。
インストール方法は上記 taglib-ruby のページに OS 別に記載されていますので割愛。
あとは、bundler 用に以下のような Gemfile を書いてインストールすれば OK。

できあがったプログラムはこんな感じ。

あとは、対象のディレクトリを指定して (複数指定可) 実行するだけ。

$ ./updid3.rb /path/to/artist/album /other/artist ./music

これで指定したディレクトリ以下の拡張子が ".mp3" のファイルを探し出し、ファイルパスに基づいた ID3 Tag を設定します。
適当に --dry-run オプションも実装していて、これを渡すと ID3 Tag がどう設定されるかの表示だけを行い、実際の処理は行いません。

$ ./updid3.rb --dry-run /path/to/artist
Artist: アーティスト名
 Album: アルバム名
 Title: 曲名
 Track: 1
--------------------------------------------------
(...略...)

そんなわけで、無事に古い CD に対しても ID3 タグを埋め込むことができました。
やったね。