Extrair metadados de arquivos MP3 usando a API REST em Java

Você pode adicionar, editar, remover ou extrair várias propriedades de arquivos de áudio armazenados na forma de metadados programaticamente. Você pode facilmente extrair propriedades de metadados, como título, artista e gênero de arquivos de áudio de forma programática na nuvem. Neste artigo, você aprenderá como extrair os metadados de arquivos de áudio MP3 usando uma API REST em Java.

Os seguintes tópicos são discutidos/cobertos neste artigo:

API REST de extração de metadados MP3 e SDK Java

Estarei usando a API Java SDK of GroupDocs.Metadata Cloud para extrair metadados de arquivos de áudio MP3. Ele permite adicionar, editar, recuperar e remover propriedades de metadados de mais de 60 tipos de documentos, imagens e formatos de arquivos multimídia. Você só precisa definir os critérios de pesquisa e a API cuidará das operações de metadados especificadas em formatos de arquivo suportados. A API funciona com os padrões de metadados mais notáveis, como integrado, XMP, EXIF, IPTC, blocos de recursos de imagem, ID3 e propriedades de metadados personalizados. Ele também fornece SDK .NET como seus membros da família de manipulação de metadados de documentos para a API Cloud.

Você pode facilmente usar GroupDocs.Metadata Cloud em seus aplicativos Java baseados em Maven adicionando a seguinte configuração 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>

Obtenha seu ID e Segredo do cliente no painel antes de seguir as etapas mencionadas. Depois de ter seu ID e segredo, adicione o código conforme mostrado abaixo:

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

Configuration configuration = new Configuration(clientId, clientSecret);

Extrair metadados de arquivos MP3 usando a API REST em Java

Você pode facilmente extrair metadados de arquivos de áudio MP3 seguindo as etapas simples abaixo:

  1. Carregar o arquivo MP3 para a nuvem
  2. Extraia metadados de arquivos de áudio MP3 usando Java

Carregar o arquivo

Em primeiro lugar, carregue o arquivo de áudio MP3 para a nuvem usando o exemplo de código abaixo:

// inicialização da API
FileApi apiInstance = new FileApi(clientId, clientSecret);

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

// criar solicitação de upload de arquivo
UploadFileRequest request = new UploadFileRequest("sample.mp3", fileStream, myStorage);

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

Como resultado, o arquivo MP3 carregado estará disponível na seção de arquivos do seu painel na nuvem.

Extrair metadados de arquivos de áudio MP3 usando Java

Você pode extrair todas as propriedades de metadados de arquivos de áudio MP3 programaticamente seguindo as etapas abaixo.

  • Crie uma instância da MetadataApi
  • Crie uma instância do FileInfo
  • Definir o caminho do arquivo MP3
  • Crie uma instância do ExtractOptions
  • Atribua o FileInfo ao ExtractOptions
  • Criar o ExtractRequest
  • Chame o método MetadataApi.extract() e obtenha os resultados

O exemplo de código a seguir mostra como extrair metadados de um arquivo MP3 usando uma API REST.

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

// definir opções de extração
ExtractOptions options = new ExtractOptions();
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// criar solicitação de extração
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 

Extração de metadados por correspondência de frase exata usando Java

Você pode extrair a propriedade de metadados de arquivos MP3 correspondentes à frase exata seguindo as etapas abaixo:

  • Crie uma instância de MetadataApi
  • Crie uma instância de MatchOptions e defina ExactPhrase como true
  • Inicialize uma instância do NameOptions
  • Forneça valor para corresponder e defina MatchOptions
  • Crie uma instância do SearchCriteria e defina NameOptions
  • Crie uma instância do FileInfo
  • Definir o caminho do arquivo MP3
  • Crie uma instância do ExtractOptions
  • Atribua o SearchCriteria definido e o FileInfo ao ExtractOptions
  • Criar o ExtractRequest
  • Chame o método MetadataApi.extract() e obtenha os resultados

O exemplo de código a seguir mostra como extrair metadados combinando a frase exata usando uma API REST.

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

// criar opção de correspondência
MatchOptions matchOptions = new MatchOptions();
matchOptions.setExactPhrase(true);

// criar opção de nome
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("MimeType");
nameOptions.setMatchOptions(matchOptions);

// definir critérios de pesquisa
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// definir opções de extração
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);

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

// criar solicitação de extração
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

Extração de metadados por expressão regular usando Java

Você pode definir critérios de pesquisa para extrair os metadados de arquivos MP3 usando a expressão regular seguindo as etapas abaixo:

  • Crie uma instância da MetadataApi
  • Inicialize uma instância de MatchOptions e defina IsRegex como true
  • Crie uma instância do NameOptions
  • Forneça expressões regulares e defina MatchOptions
  • Crie uma instância do SearchCriteria e defina NameOptions
  • Crie uma instância do FileInfo
  • Definir o caminho do arquivo MP3
  • Crie uma instância do ExtractOptions
  • Atribua o SearchCriteria definido e o FileInfo ao ExtractOptions
  • Criar o ExtractRequest
  • Chame o método MetadataApi.extract() e obtenha os resultados

O exemplo de código a seguir mostra como extrair metadados pesquisando por expressão regular usando uma API REST.

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

// criar opção de correspondência
MatchOptions matchOptions = new MatchOptions();
matchOptions.setIsRegex(true);

// criar opção de nome
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("^Co.*");
nameOptions.setMatchOptions(matchOptions);

// definir critérios de pesquisa
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// definir opções de extração
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);

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

// criar solicitação de extração
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 

Extraia metadados por nome de propriedade usando Java

Você pode definir critérios de pesquisa para extrair os metadados de arquivos MP3 para uma propriedade específica seguindo as etapas abaixo:

  • Crie uma instância da MetadataApi
  • Inicialize uma instância do NameOptions e defina o valor
  • Crie uma instância do SearchCriteria e defina NameOptions
  • Crie uma instância do FileInfo
  • Definir o caminho do arquivo MP3
  • Crie uma instância do ExtractOptions
  • Atribua o SearchCriteria definido e o FileInfo ao ExtractOptions
  • Criar o ExtractRequest
  • Chame o método MetadataApi.extract() e obtenha os resultados

O exemplo de código a seguir mostra como extrair metadados pesquisando um nome de propriedade usando uma API REST.

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

// criar opção de nome
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("Artist");

// definir critérios de pesquisa
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// fornecer arquivo de entrada
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");

// definir opções de extração
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
options.setFileInfo(fileInfo);

// criar solicitação de extração
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

Extrair metadados por valor de propriedade usando Java

Você pode definir critérios de pesquisa para extrair os metadados dos arquivos MP3 correspondentes ao valor da propriedade seguindo as etapas abaixo:

  • Crie uma instância da MetadataApi
  • Crie uma instância do ValueOptions
  • Forneça o valor para pesquisar e seu tipo
  • Crie uma instância do SearchCriteria e defina ValueOptions
  • Crie uma instância do FileInfo
  • Definir o caminho do arquivo MP3
  • Crie uma instância do ExtractOptions
  • Atribua o SearchCriteria definido e o FileInfo ao ExtractOptions
  • Criar o ExtractRequest
  • Chame o método MetadataApi.extract() e obtenha os resultados

O trecho de código a seguir mostra como extrair metadados pesquisando o valor da propriedade usando uma API REST.

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

// criar opções de valor
ValueOptions valueOptions = new ValueOptions();
valueOptions.setValue("Impact Moderato");
valueOptions.setType("string");

// definir critérios de pesquisa
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setValueOptions(valueOptions);

// fornecer arquivo de entrada
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");

// definir opções de extração
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
options.setFileInfo(fileInfo);

// criar solicitação de extração
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

Experimente on-line

Experimente a seguinte ferramenta de extração de metadados de MP3 on-line gratuita, desenvolvida usando a API acima. https://products.groupdocs.app/metadata/total

Conclusão

Neste artigo, você aprendeu como extrair os metadados de arquivos de áudio MP3 na nuvem. Você também aprendeu como extrair metadados definindo critérios de pesquisa, como correspondência de frases exatas, usando uma expressão regular e por nome ou valor de propriedade. Este artigo também explicou como carregar programaticamente um arquivo de áudio MP3 na nuvem. Você pode aprender ainda mais sobre GroupDocs. API de nuvem de extração de metadados usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.

Veja também