As variantes de metadados são anexadas a documentos de diferentes formatos de arquivo. Os arquivos MP3 geralmente contêm tags de metadados ID3. Este artigo discute como ler diferentes tags MP3 em Java. Um por um, veremos como extrair tags de metadados ID3 (IDEv1, ID3v2), Lyrics e APEv2 dos arquivos mp3 usando a API de metadados Java.

Os seguintes tópicos são abordados abaixo:

API Java para tags de metadados MP3

GroupDocs.Metadata está equipado com APIs para automatizar o gerenciamento de metadados de vários formatos de arquivo dentro de aplicativos. Sua API Java permite que você leia, atualize, adicione, limpe e remova os metadados de muitos formatos de arquivo dentro do aplicativo Java. Vamos usá-lo para trabalhar com tags de metadados MP3.

Baixe e configure

Obtenha a biblioteca de metadados na seção downloads. Para seu aplicativo Java baseado em Maven, basta adicionar a seguinte configuração pom.xml. Depois disso, você pode tentar os exemplos deste artigo, bem como muitos outros exemplos disponíveis no GitHub. Para obter detalhes, você pode visitar a Referência da 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>

Ler tags MP3 ID3 em Java - ID3v1 e ID3v2

As etapas a seguir mostram como ler as tags MP3 ID3v1 usando Java.

  • Carregue o arquivo MP3 usando a classe Metadata.
  • Recupere o MP3RootPackage usando o método getRootPackageGeneric().
  • Do pacote raiz, recupere cada uma das propriedades ID3v1.

O código-fonte Java a seguir lê algumas das tags MP3 ID3v1 do arquivo MP3.

// Leia as tags ID3V1 do arquivo MP3
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());
		// ...
	}
}

Você pode extrair as tags ID3v2 de maneira semelhante. As etapas a seguir mostram como recuperar as tags MP3 ID3v2 em Java.

  • Carregue o arquivo MP3 usando a classe Metadata.
  • Obtenha o pacote raiz.
  • A partir da raiz, você pode recuperar facilmente todas as tags ID3v2, como Artista, Compositores, Editora, Título etc.
  • Os detalhes das imagens anexadas podem ser recuperados nas propriedades de Attached Picture Frames.

O exemplo de código-fonte Java a seguir lê algumas das tags MP3 ID3v2 e detalhes de imagens anexadas do arquivo MP3.

// Leia as tags ID3V2 do arquivo MP3
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()); 
            }
        }
    }
}

Ler Tags de Letras MP3 em Java

As etapas a seguir orientam como ler as tags MP3 Lyrics em Java.

  • Carregue o arquivo MP3 usando a classe Metadata.
  • Recupere o pacote raiz.
  • A partir da raiz, você pode obter tags de letras e suas propriedades, como Letra, artista, faixa etc.

O trecho de código Java a seguir recupera as tags de letras de MP3 e algumas das propriedades do arquivo MP3.

// Ler tags de letras de arquivos 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());
		// ...

    // Da mesma forma, você pode percorrer os campos de tag
		for (LyricsField field : root.getLyrics3V2().toList()) {
			System.out.println(String.format("%s = %s", field.getID(), field.getData()));
		}
	}
}

Leia as tags MP3 APEv2 em Java

As etapas a seguir mostram como podemos extrair as tags MP3 APEv2 dentro do aplicativo Java.

  • Carregue o arquivo MP3 usando a classe Metadata.
  • Recupere o pacote raiz usando o método getRootPackageGeneric().
  • A partir da raiz, você pode recuperar as tags APEv2 como Álbum, Gênero, Direitos Autorais, Idioma, etc.

Os exemplos de código Java a seguir leem algumas das propriedades das tags MP3 APE de um arquivo MP3.

// Leia as tags APE do arquivo MP3
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());
		// ...
	}

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar a API sem as limitações de avaliação.

Conclusão

Para resumir, aprendemos como extrair tags de metadados dos arquivos MP3 em Java. Um por um, lemos as tags ID3v1, ID3v2, Lyrics e APE e suas propriedades dos arquivos MP3. Pense em construir seu próprio editor de tags online MP3 e visualizador de metadados, assim como Online Metadata App.

Saiba mais sobre a API na documentação e entre em contato conosco para consultas por meio do fórum.

Veja também