Las variantes de metadatos se adjuntan con documentos de diferentes formatos de archivo. Los archivos MP3 suelen contener etiquetas de metadatos ID3. Este artículo analiza cómo leer diferentes etiquetas MP3 en Java. Uno por uno, veremos cómo extraer etiquetas de metadatos ID3 (IDEv1, ID3v2), Letras y APEv2 de los archivos mp3 utilizando la API de metadatos de Java.

Los siguientes temas se tratan a continuación:

API de Java para etiquetas de metadatos de MP3

GroupDocs.Metadata está equipado con API para automatizar la gestión de metadatos de varios formatos de archivo dentro de las aplicaciones. Su API de Java le permite leer, actualizar, agregar, limpiar y eliminar los metadatos para muchos formatos de archivo dentro de la aplicación Java. Lo usaremos para trabajar con etiquetas de metadatos MP3.

Descargar y configurar

Obtenga la biblioteca de metadatos de la sección descargas. Para su aplicación Java basada en Maven, simplemente agregue la siguiente configuración pom.xml. Después de esto, puede probar los ejemplos de este artículo, así como muchos más ejemplos disponibles en GitHub. Para obtener más información, puede visitar la Referencia de la 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>

Leer etiquetas MP3 ID3 en Java - ID3v1 e ID3v2

Los siguientes pasos muestran cómo leer las etiquetas MP3 ID3v1 usando Java.

  • Cargue el archivo MP3 usando la clase Metadata.
  • Recupere el MP3RootPackage mediante el método getRootPackageGeneric().
  • Desde el paquete raíz, recupere cada una de las propiedades ID3v1.

El siguiente código fuente de Java lee algunas de las etiquetas MP3 ID3v1 del archivo MP3.

// Lea las etiquetas ID3V1 del archivo 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());
		// ...
	}
}

Puede extraer las etiquetas ID3v2 de forma similar. Los siguientes pasos muestran cómo recuperar las etiquetas MP3 ID3v2 en Java.

  • Cargue el archivo MP3 usando la clase Metadata.
  • Obtenga el paquete raíz.
  • Desde la raíz, puede recuperar fácilmente todas las etiquetas ID3v2 como Artista, Compositores, Editor, Título, etc.
  • Los detalles de las imágenes adjuntas se pueden recuperar de las propiedades de Marcos de imágenes adjuntos.

El siguiente ejemplo de código fuente de Java lee algunas de las etiquetas MP3 ID3v2 y los detalles de las imágenes adjuntas del archivo MP3.

// Leer etiquetas ID3V2 de archivos 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()); 
            }
        }
    }
}

Leer etiquetas de letras MP3 en Java

Los siguientes pasos guían cómo leer las etiquetas MP3 Lyrics en Java.

  • Cargue el archivo MP3 usando la clase Metadata.
  • Recuperar el paquete raíz.
  • Desde la raíz, puede obtener etiquetas de letras y sus propiedades como Letras, artista, pista, etc.

El siguiente fragmento de código Java recupera etiquetas de letras de canciones MP3 y algunas de las propiedades del archivo MP3.

// Leer etiquetas de letras de archivo 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());
		// ...

    // Del mismo modo, puede recorrer los campos de etiqueta
		for (LyricsField field : root.getLyrics3V2().toList()) {
			System.out.println(String.format("%s = %s", field.getID(), field.getData()));
		}
	}
}

Leer etiquetas MP3 APEv2 en Java

Los siguientes pasos muestran cómo podemos extraer las etiquetas MP3 APEv2 dentro de la aplicación Java.

  • Cargue el archivo MP3 usando la clase Metadata.
  • Recupere el paquete raíz usando el método getRootPackageGeneric().
  • Desde la raíz, puede recuperar las etiquetas APEv2 como Álbum, Género, Derechos de autor, Idioma, etc.

Los siguientes ejemplos de código Java leen algunas de las propiedades de las etiquetas MP3 APE de un archivo MP3.

// Leer etiquetas APE de archivos 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());
		// ...
	}

Obtenga una licencia de API gratuita

Puede obtener una licencia temporal gratuita para usar la API sin las limitaciones de evaluación.

Conclusión

En resumen, aprendimos cómo extraer etiquetas de metadatos de los archivos MP3 en Java. Una por una, leemos las etiquetas ID3v1, ID3v2, Lyrics y APE y sus propiedades de los archivos MP3. Piense en crear su propio editor de etiquetas MP3 en línea y visor de metadatos como aplicación de metadatos en línea.

Obtenga más información sobre la API en la documentación y contáctenos para consultas a través del foro.

Ver también