MP3ファイルのタグ情報には、タイトル・アーティスト・アルバム・ジャンル・・・、などがあります。このタグ情報を一括で編集したくて、Javaでやってみることにしました。今回は、そのときのメモを書いていきます。
ID3タグについて
MP3のタグ情報は、ID3タグという規格に従っているようです。
ID3には色々なバージョンがあるみたいです。自分の端末(Windows 7)の場合、バージョン「ID3v2.3」で情報を書き込むと良さそうでした。
Java のライブラリ
ID3タグのJava実装は、ID3.org の Implementations で紹介されていました。
その中でも、jaudiotagger、Beaglebuddy は、2015年も更新・リリースが行われていました。
jaudiotagger を採用
今回は、MP3に保存されている既存のタグを削除して、バージョン「ID3v2.3」でタグ情報を書き込みたいと思っていました。色々調べていくと、jaudiotagger はそれを実現できそうでした。
Beaglebuddy は、既存のタグが削除できなさそうでした。でも、使いやすくて、ドキュメントも読みやすかったです。こういったプロダクトを作る人は、ID3の仕様を深く理解していて本当にスゴイです。
jaudiotagger のサンプルコード
jaudiotagger を使って、既存のタグを削除するのはこんな感じでした。
AudioFile f = AudioFileIO.read(file); AudioFileIO.getDefaultAudioFileIO().deleteTag(f);
次のコードは、新しいタグ(ID3v2.3)に情報を設定して、MP3に書き込む例になります。
ID3v23Tag t = new ID3v23Tag(); t.setField(FieldKey.ARTIST,"Artist"); // ... 省略 AudioFile f = AudioFileIO.read(file); f.setTag(t); f.commit();
AudioFileIO.read(file)
で読み込む file を増やせば、一括編集が実現できそうでした。