Extraiga metadatos de archivos MP3 usando REST API en Java

Puede agregar, editar, eliminar o extraer varias propiedades de los archivos de audio almacenados en forma de metadatos mediante programación. Puede extraer fácilmente propiedades de metadatos como el título, el artista y el género de los archivos de audio mediante programación en la nube. En este artículo, aprenderá a extraer metadatos de archivos de audio MP3 utilizando una API REST en Java.

Los siguientes temas se discuten/tratan en este artículo:

API REST de extracción de metadatos MP3 y SDK de Java

Usaré la API Java SDK de GroupDocs.Metadata Cloud para extraer metadatos de archivos de audio MP3. Le permite agregar, editar, recuperar y eliminar propiedades de metadatos de más de 60 tipos de documentos, imágenes y formatos de archivos multimedia. Solo necesita definir los criterios de búsqueda y la API se encargará de las operaciones de metadatos especificadas dentro de formatos de archivo admitidos. La API funciona con los estándares de metadatos más notables, como XMP, EXIF, IPTC, bloques de recursos de imágenes, ID3 y propiedades de metadatos personalizados. También proporciona .NET SDK como sus miembros de la familia de manipulación de metadatos de documentos para la API de Cloud.

Puede usar fácilmente GroupDocs.Metadata Cloud en sus aplicaciones Java basadas en Maven agregando la siguiente configuración pom.xml.

<repository>
    <id>groupdocs-artifact-repository</id>
    <name>GroupDocs Artifact Repository</name>
    <url>http://repository.groupdocs.cloud/repo</url>
</repository>
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-metadata-cloud</artifactId>
    <version>20.4</version>
    <scope>compile</scope>
</dependency>

Obtenga su ID de cliente y secreto del panel de control antes de seguir los pasos mencionados. Una vez que tenga su ID y secreto, agregue el código como se muestra a continuación:

String clientId = "da0c487d-c1c0-45ae-b7bf-43eaf53c5ad5";
String clientSecret = "479db2b01dcb93a3d4d20efb16dea971";
String myStorage = "";

Configuration configuration = new Configuration(clientId, clientSecret);

Extraiga metadatos de archivos MP3 usando REST API en Java

Puede extraer fácilmente metadatos de archivos de audio MP3 siguiendo los sencillos pasos que se indican a continuación:

  1. Subir el archivo MP3 a la Nube
  2. Extraer metadatos de archivos de audio MP3 usando Java

Sube el archivo

En primer lugar, cargue el archivo de audio MP3 en la nube utilizando el ejemplo de código que se proporciona a continuación:

// inicialización de la API
FileApi apiInstance = new FileApi(clientId, clientSecret);

// fichero de entrada
File fileStream = new File("C:\\Files\\sample.mp3");

// crear solicitud de carga de archivo
UploadFileRequest request = new UploadFileRequest("sample.mp3", fileStream, myStorage);

// subir archivo
FilesUploadResult response = apiInstance.uploadFile(request);

Como resultado, el archivo MP3 cargado estará disponible en la sección de archivos de su tablero en la nube.

Extraiga metadatos de archivos de audio MP3 usando Java

Puede extraer todas las propiedades de metadatos de los archivos de audio MP3 mediante programación siguiendo los pasos que se indican a continuación.

  • Crear una instancia de MetadataApi
  • Crear una instancia de FileInfo
  • Establecer la ruta del archivo MP3
  • Cree una instancia de ExtractOptions
  • Asigne FileInfo a ExtractOptions
  • Crear la solicitud de extracción
  • Llame al método MetadataApi.extract() y obtenga resultados

El siguiente ejemplo de código muestra cómo extraer metadatos de un archivo MP3 mediante una API REST.

// inicializar API
MetadataApi apiInstance = new MetadataApi(configuration);

// definir opciones de extracción
ExtractOptions options = new ExtractOptions();
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// crear solicitud de extracción
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

// mostrar resultados
for (MetadataPackage metaPackage : response.getMetadataTree().getInnerPackages()) {
  for(MetadataProperty entry : metaPackage.getPackageProperties()) {
    System.out.println(entry.getName() + ": " + entry.getValue());
    if (entry.getTags() == null)
      continue;
   for (Tag tagItem : entry.getTags()) {
      System.out.println(
          "Tag for property: name - " + tagItem.getName() + ", category - " + tagItem.getCategory());
    }
  }
}
FileFormat: 21
Tag for property: name - FileFormat, category - Content
MimeType: audio/mpeg
Tag for property: name - FileFormat, category - Content
HeaderPosition: 2402
MpegAudioVersion: 3
Layer: 3
HasCrc: True
Bitrate: 224
Frequency: 32000
PaddingBit: 0
PrivateBit: False
Channel: 0
ModeExtensionBits: 0
Copyright: False
Original: True
Emphasis: 0
Version: ID3v1.1
Genre: 255
Album: YouTube Audio Library
Artist: Kevin MacLeod
Comment: This is sample comment.
Tag for property: name - Comment, category - Content
Title: Impact Moderato
Tag for property: name - Title, category - Content
Year: 2021
Tag for property: name - IntellectualContentCreated, category - Time
TrackNumber: 1
Version: ID3v2.3.0
TagSize: 2402
TALB: null
TPE1: null
TPE2: null
COMM: null
Tag for property: name - Comment, category - Content
TCOM: null
TPOS: null
TCON: null
TIT2: null
Tag for property: name - Title, category - Content
TRCK: null
TYER: null
Tag for property: name - IntellectualContentCreated, category - Time
title: Impact Moderato
Tag for property: name - Title, category - Content
artist: Kevin MacLeod
album: YouTube Audio Library
year: 2021
track: 1
genre: Cinematic
Tag for property: name - Type, category - Content
comment: This is sample comment.
Tag for property: name - Comment, category - Content
albumartist: MacLeod Kevin
composer: Kevin
discnumber: 101 

Extracción de metadatos haciendo coincidir la frase exacta usando Java

Puede extraer la propiedad de metadatos de los archivos MP3 que coincidan con la frase exacta siguiendo los pasos que se indican a continuación:

  • Crear una instancia de MetadataApi
  • Cree una instancia de MatchOptions y establezca ExactPhrase en verdadero
  • Inicializar una instancia de NameOptions
  • Proporcione valor para hacer coincidir y establecer MatchOptions
  • Cree una instancia de SearchCriteria y configure NameOptions
  • Crear una instancia de FileInfo
  • Establecer la ruta del archivo MP3
  • Cree una instancia de ExtractOptions
  • Asigne los criterios de búsqueda y la información de archivo definidos a las opciones de extracción.
  • Crear la solicitud de extracción
  • Llame al método MetadataApi.extract() y obtenga resultados

El siguiente ejemplo de código muestra cómo extraer metadatos haciendo coincidir la frase exacta mediante una API REST.

// inicializar API
MetadataApi apiInstance = new MetadataApi(configuration);

// crear opción de coincidencia
MatchOptions matchOptions = new MatchOptions();
matchOptions.setExactPhrase(true);

// crear opción de nombre
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("MimeType");
nameOptions.setMatchOptions(matchOptions);

// definir criterios de búsqueda
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// definir opciones de extracción
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);

// proporcionar archivo de entrada
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// crear solicitud de extracción
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

// mostrar resultados
for (MetadataProperty entry : response.getProperties()) {
  System.out.println(entry.getName() + ": " + entry.getValue());
  if (entry.getTags() == null)
    continue;
 for (Tag tagItem : entry.getTags()) {
    System.out.println(
        "Tag for property: name - " + tagItem.getName() + ", category - " + tagItem.getCategory());
  }
}
MimeType: audio/mpeg
Tag for property: name - FileFormat, category - Content

Extracción de Metadatos por Expresión Regular usando Java

Puede definir los criterios de búsqueda para extraer los metadatos de los archivos MP3 utilizando la expresión regular siguiendo los pasos que se indican a continuación:

  • Crear una instancia de MetadataApi
  • Inicialice una instancia de MatchOptions y establezca IsRegex en verdadero
  • Crear una instancia de NameOptions
  • Proporcione una expresión regular y establezca MatchOptions
  • Cree una instancia de SearchCriteria y configure NameOptions
  • Crear una instancia de FileInfo
  • Establecer la ruta del archivo MP3
  • Cree una instancia de ExtractOptions
  • Asigne los criterios de búsqueda y la información de archivo definidos a las opciones de extracción.
  • Crear la solicitud de extracción
  • Llame al método MetadataApi.extract() y obtenga resultados

El siguiente ejemplo de código muestra cómo extraer metadatos buscando por expresión regular usando una API REST.

// inicializar API
MetadataApi apiInstance = new MetadataApi(configuration);

// crear opción de coincidencia
MatchOptions matchOptions = new MatchOptions();
matchOptions.setIsRegex(true);

// crear opción de nombre
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("^Co.*");
nameOptions.setMatchOptions(matchOptions);

// definir criterios de búsqueda
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// definir opciones de extracción
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);

// proporcionar archivo de entrada
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// crear solicitud de extracción
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

for (MetadataProperty entry : response.getProperties()) {
  System.out.println(entry.getName() + ": " + entry.getValue());
  if (entry.getTags() == null)
    continue;
 for (Tag tagItem : entry.getTags()) {
    System.out.println(
        "Tag for property: name - " + tagItem.getName() + ", category - " + tagItem.getCategory());
  }
}
Copyright: False
Comment: This is sample comment.
Tag for property: name - Comment, category - Content
COMM: GroupDocs.Metadata.Formats.Audio.ID3V2CommentFrame
Tag for property: name - Comment, category - Content
CommEncoding: 1
CommLanguage: eng
CommShortContentDescription: 
CommText: This is sample comment.
comment: This is sample comment.
Tag for property: name - Comment, category - Content
composer: Kevin 

Extraer metadatos por nombre de propiedad usando Java

Puede definir criterios de búsqueda para extraer los metadatos de archivos MP3 para una propiedad específica siguiendo los pasos que se detallan a continuación:

  • Crear una instancia de MetadataApi
  • Inicializar una instancia de NameOptions y establecer el valor
  • Cree una instancia de SearchCriteria y configure NameOptions
  • Crear una instancia de FileInfo
  • Establecer la ruta del archivo MP3
  • Cree una instancia de ExtractOptions
  • Asigne los criterios de búsqueda y la información de archivo definidos a las opciones de extracción.
  • Crear la solicitud de extracción
  • Llame al método MetadataApi.extract() y obtenga resultados

El siguiente ejemplo de código muestra cómo extraer metadatos mediante la búsqueda de un nombre de propiedad mediante una API REST.

// inicializar API
MetadataApi apiInstance = new MetadataApi(configuration);

// crear opción de nombre
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("Artist");

// definir criterios de búsqueda
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// proporcionar archivo de entrada
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");

// definir opciones de extracción
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
options.setFileInfo(fileInfo);

// crear solicitud de extracción
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

for (MetadataProperty entry : response.getProperties()) {
  System.out.println(entry.getName() + ": " + entry.getValue());
  if (entry.getTags() == null)
    continue;
 for (Tag tagItem : entry.getTags()) {
    System.out.println(
        "Tag for property: name - " + tagItem.getName() + ", category - " + tagItem.getCategory());
  }
}
Artist: Kevin MacLeod
artist: Kevin MacLeod
albumartist: MacLeod Kevin

Extraer metadatos por valor de propiedad usando Java

Puede definir los criterios de búsqueda para extraer los metadatos de los archivos MP3 que coincidan con el valor de la propiedad siguiendo los pasos que se indican a continuación:

  • Crear una instancia de MetadataApi
  • Crear una instancia de ValueOptions
  • Proporcione el valor a buscar y su tipo
  • Cree una instancia de SearchCriteria y configure ValueOptions
  • Crear una instancia de FileInfo
  • Establecer la ruta del archivo MP3
  • Cree una instancia de ExtractOptions
  • Asigne los criterios de búsqueda y la información de archivo definidos a las opciones de extracción.
  • Crear la solicitud de extracción
  • Llame al método MetadataApi.extract() y obtenga resultados

El siguiente fragmento de código muestra cómo extraer metadatos buscando el valor de la propiedad mediante una API REST.

// inicializar API
MetadataApi apiInstance = new MetadataApi(configuration);

// crear opciones de valor
ValueOptions valueOptions = new ValueOptions();
valueOptions.setValue("Impact Moderato");
valueOptions.setType("string");

// definir criterios de búsqueda
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setValueOptions(valueOptions);

// proporcionar archivo de entrada
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");

// definir opciones de extracción
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
options.setFileInfo(fileInfo);

// crear solicitud de extracción
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

for (MetadataProperty entry : response.getProperties()) {
  System.out.println(entry.getName() + ": " + entry.getValue());
  if (entry.getTags() == null)
    continue;
 for (Tag tagItem : entry.getTags()) {
    System.out.println(
        "Tag for property: name - " + tagItem.getName() + ", category - " + tagItem.getCategory());
  }
}
Title: Impact Moderato
Tag for property: name - Title, category - Content
TextValue: Impact Moderato

Prueba en línea

Pruebe la siguiente herramienta gratuita de extracción de metadatos MP3 en línea, que se desarrolla utilizando la API anterior. https://products.groupdocs.app/metadata/total

Conclusión

En este artículo, ha aprendido cómo extraer los metadatos de los archivos de audio MP3 en la nube. También aprendió a extraer metadatos definiendo criterios de búsqueda, como hacer coincidir frases exactas, usar una expresión regular y por nombre o valor de propiedad. Este artículo también explicó cómo cargar mediante programación un archivo de audio MP3 en la nube. Puede aprender aún más sobre GroupDocs. API de extracción de metadatos en la nube usando la documentación. También proporcionamos una sección Referencia de API que le permite visualizar e interactuar con nuestras API directamente a través del navegador. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también