メタデータバリアントは、さまざまなファイル形式のドキュメントに添付されています。 MP3ファイルには通常ID3メタデータタグが含まれています。この記事では、JavaでさまざまなMP3タグを読み取る方法について説明します。 JavaメタデータAPIを使用して、mp3ファイルからID3(IDEv1、ID3v2) 、歌詞、およびAPEv2メタデータタグを抽出する方法を1つずつ見ていきます。

以下のトピックについて説明します。

MP3メタデータタグ用のJavaAPI

GroupDocs.Metadata には、さまざまなファイル形式 のメタデータ管理を自動化するAPIが搭載されています。 アプリケーション内。 Java APIを使用すると、Javaアプリケーション内の多くのファイル形式のメタデータを読み取り、更新、追加、クリーンアップ、および削除できます。これを使用して、MP3メタデータタグを操作します。

ダウンロードして構成する

ダウンロード セクションからメタデータライブラリを取得します。 MavenベースのJavaアプリケーションの場合は、次のpom.xml構成を追加するだけです。この後、この記事の例と、GitHub で入手できる他の多くの例を試すことができます。詳細については、APIリファレンス をご覧ください。

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-metadata</artifactId>
        <version>22.2</version> 
</dependency>

JavaでMP3ID3タグを読む-ID3v1&ID3v2

次の手順は、Javaを使用してMP3ID3v1タグを読み取る方法を示しています。

  • Metadata クラスを使用してMP3ファイルをロードします。
  • getRootPackageGeneric() メソッドを使用して、MP3RootPackage を取得します。
  • ルートパッケージから、ID3v1の各プロパティを取得します。

次のJavaソースコードは、MP3ファイルのMP3ID3v1タグの一部を読み取ります。

// MP3ファイルID3V1タグを読む
try (Metadata metadata = new Metadata("path/audio-ID3V1.mp3")) {
	MP3RootPackage root = metadata.getRootPackageGeneric();
	if (root.getID3V1() != null) {

		System.out.println(root.getID3V1().getAlbum());
		System.out.println(root.getID3V1().getArtist());
		System.out.println(root.getID3V1().getTitle());
		System.out.println(root.getID3V1().getVersion());
		System.out.println(root.getID3V1().getComment());
		// ..。
	}
}

同様の方法でID3v2タグを抽出できます。次の手順は、JavaでMP3ID3v2タグを取得する方法を示しています。

  • Metadata クラスを使用してMP3ファイルをロードします。
  • ルートパッケージ を取得します。
  • ルートから、Artist、Composers、Publisher、TitleなどのすべてのID3v2タグを簡単に取得できます。
  • 添付画像の詳細は、添付画像フレーム のプロパティから取得できます。

次のJavaソースコードの例では、MP3ID3v2タグの一部とMP3ファイルの添付画像の詳細を読み取ります。

// MP3ファイルID3V2タグを読む
try (Metadata metadata = new Metadata("path/audio-ID3V2.mp3")) {
    MP3RootPackage root = metadata.getRootPackageGeneric();
 
    if (root.getID3V2() != null) {
        System.out.println(root.getID3V2().getAlbum());
        System.out.println(root.getID3V2().getArtist());
        System.out.println(root.getID3V2().getBand());
        System.out.println(root.getID3V2().getTitle());
        System.out.println(root.getID3V2().getComposers());
        System.out.println(root.getID3V2().getCopyright());
        System.out.println(root.getID3V2().getPublisher());
        System.out.println(root.getID3V2().getOriginalAlbum());
        System.out.println(root.getID3V2().getMusicalKey());
 
        if (root.getID3V2().getAttachedPictures() != null) {
            for (ID3V2AttachedPictureFrame attachedPicture : root.getID3V2().getAttachedPictures()) {
                System.out.println(attachedPicture.getAttachedPictureType());
                System.out.println(attachedPicture.getMimeType());
                System.out.println(attachedPicture.getDescription()); 
            }
        }
    }
}

JavaでMP3歌詞タグを読む

次の手順は、JavaでMP3歌詞タグを読み取る方法を示しています。

  • Metadata クラスを使用してMP3ファイルをロードします。
  • ルートパッケージ を取得します。
  • ルートから、歌詞タグと、歌詞、アーティスト、トラックなどのプロパティを取得できます。

次のJavaコードスニペットは、MP3ファイルからMP3歌詞タグといくつかのプロパティを取得します。

// MP3ファイルを読む歌詞タグ
try (Metadata metadata = new Metadata("path/audio-Lyrics.mp3")) {
	MP3RootPackage root = metadata.getRootPackageGeneric();
	if (root.getLyrics3V2() != null) {
		System.out.println(root.getLyrics3V2().getLyrics());
		System.out.println(root.getLyrics3V2().getAlbum());
		System.out.println(root.getLyrics3V2().getArtist());
		System.out.println(root.getLyrics3V2().getTrack());
		// ..。

    // 同様に、タグフィールドをトラバースできます
		for (LyricsField field : root.getLyrics3V2().toList()) {
			System.out.println(String.format("%s = %s", field.getID(), field.getData()));
		}
	}
}

JavaでMP3APEv2タグを読む

次の手順は、Javaアプリケーション内でMP3APEv2タグを抽出する方法を示しています。

  • Metadata クラスを使用してMP3ファイルをロードします。
  • getRootPackageGeneric() メソッドを使用して ルートパッケージ を取得します。
  • ルートから、アルバム、ジャンル、著作権、言語などのAPEv2タグを取得できます。

次のJavaコード例は、MP3ファイルのMP3APEタグのプロパティの一部を読み取ります。

// MP3ファイルのAPEタグを読み取る
try (Metadata metadata = new Metadata("path/audio-APE.mp3")) {
	MP3RootPackage root = metadata.getRootPackageGeneric();

	if (root.getApeV2() != null) {
		System.out.println(root.getApeV2().getAlbum());
		System.out.println(root.getApeV2().getTitle());
		System.out.println(root.getApeV2().getArtist());
		System.out.println(root.getApeV2().getComposer());
		System.out.println(root.getApeV2().getCopyright());
		System.out.println(root.getApeV2().getGenre());
		System.out.println(root.getApeV2().getLanguage());
		// ..。
	}

無料のAPIライセンスを取得する

無料の一時ライセンスを取得 して、評価の制限なしにAPIを使用できます。

結論

要約すると、JavaでMP3ファイルからメタデータタグを抽出する方法を学びました。 ID3v1、ID3v2、Lyrics、APEタグとそれらのプロパティをMP3ファイルから1つずつ読み取ります。 Online Metadata App のように、独自のMP3オンラインタグエディターとメタデータビューアーを構築することを検討してください。

ドキュメント からAPIの詳細を確認し、フォーラム を介してクエリについてお問い合わせください。

関連項目