mp3 の ID3 Tag をファイルパスに基づいて更新する
アーティスト名/アルバム名/01-曲名.mp3
というファイルパスのルールで保存してある mp3 に対して、ファイルパスに基づいて適切な ID3 タグを一括で設定する Script を Ruby の taglib-ruby を使って書いてみました。
taglib-ruby は C++ で書かれた ID3 Tag 編集用のライブラリ TagLib の Ruby バインディングなので、別途 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 タグを埋め込むことができました。
やったね。