Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

Java MP3のID3タグを編集する方法(曲名, アルバム名等)

Java の jaudiotagger を使って、MP3 の ID3タグ(曲名、アーティスト名、アルバム名など)を編集する方法を書いていきます。

バージョン

動作確認で使用した製品のバージョンは以下の通りです。

  • Java 17
  • jaudiotagger 3.0.1

1. ライブラリの追加

Maven のビルドファイルに、以下の依存関係を追加します。

<dependency>
  <groupId>net.jthink</groupId>
  <artifactId>jaudiotagger</artifactId>
  <version>3.0.1</version>
</dependency>

Gradle の場合は以下の通りです。

implementation 'net.jthink:jaudiotagger:3.0.1'

2. プログラムの作成

ID3タグを編集するプログラムの例は以下の通りです。

package org.example;

import java.io.File;

import org.jaudiotagger.audio.AudioFile;
import org.jaudiotagger.audio.AudioFileIO;
import org.jaudiotagger.tag.FieldKey;
import org.jaudiotagger.tag.id3.ID3v23Tag;

public class Main {
  public static void main(String[] args) throws Exception {
    // ID3タグの作成
    ID3v23Tag tag = new ID3v23Tag();
    tag.setField(FieldKey.TITLE, "タイトル(曲名)");
    tag.setField(FieldKey.ARTIST, "アーティスト名");
    tag.setField(FieldKey.ALBUM, "アルバム名");
    tag.setField(FieldKey.TRACK, "トラック番号");

    // MP3にID3タグを設定
    AudioFile f = AudioFileIO.read(
      new File("MP3ファイルのパス")
    );
    f.setTag(tag);
    f.commit();
  }
}

ID3v23Tag クラスを使って、タグの値を設定しています。ID3タグのバージョンは「ID3v2.3」になります。

3. 動作確認用のビルドファイル

動作確認で使用したビルドファイルは以下の通りです。

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>edit-mp3-tag</artifactId>
  <version>1.0.0</version>
  <packaging>jar</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
  </properties>
  
  <dependencies>
    <dependency>
      <groupId>net.jthink</groupId>
      <artifactId>jaudiotagger</artifactId>
      <version>3.0.1</version>
    </dependency>
  </dependencies>
</project>