Estrai i metadati dei file MP3 utilizzando l'API REST in Java

È possibile aggiungere, modificare, rimuovere o estrarre varie proprietà dei file audio archiviati sotto forma di metadati in modo programmatico. Puoi facilmente estrarre le proprietà dei metadati come titolo, artista e genere dai file audio in modo programmatico sul cloud. In questo articolo imparerai come estrarre i metadati dei file audio MP3 utilizzando un’API REST in Java.

I seguenti argomenti sono discussi/trattati in questo articolo:

API REST per l’estrazione di metadati MP3 e Java SDK

Userò l’API Java SDK of GroupDocs.Metadata Cloud per estrarre i metadati dei file audio MP3. Ti consente di aggiungere, modificare, recuperare e rimuovere le proprietà dei metadati da oltre 60 tipi di documenti, immagini e formati di file multimediali. Devi solo definire i criteri di ricerca e l’API si occuperà delle operazioni sui metadati specificate all’interno di formati di file supportati. L’API funziona con gli standard di metadati più importanti come built-in, XMP, EXIF, IPTC, Image Resource Blocks, ID3 e proprietà di metadati personalizzate. Fornisce inoltre .NET SDK come membri della famiglia di manipolazione dei metadati del documento per l’API Cloud.

Puoi utilizzare facilmente GroupDocs.Metadata Cloud nelle tue applicazioni Java basate su Maven aggiungendo la seguente configurazione 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>

Si prega di ottenere l’ID cliente e il segreto dalla dashboard prima di seguire i passaggi menzionati. Una volta che hai il tuo ID e segreto, aggiungi il codice come mostrato di seguito:

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

Configuration configuration = new Configuration(clientId, clientSecret);

Estrai i metadati dei file MP3 utilizzando l’API REST in Java

Puoi estrarre facilmente i metadati dei file audio MP3 seguendo i semplici passaggi indicati di seguito:

  1. Carica il file MP3 sul Cloud
  2. Estrai metadati da file audio MP3 utilizzando Java

Carica il file

Innanzitutto, carica il file audio MP3 sul Cloud utilizzando l’esempio di codice fornito di seguito:

// inizializzazione dell'API
FileApi apiInstance = new FileApi(clientId, clientSecret);

// file di input
File fileStream = new File("C:\\Files\\sample.mp3");

// creare richiesta di caricamento file
UploadFileRequest request = new UploadFileRequest("sample.mp3", fileStream, myStorage);

// caricare un file
FilesUploadResult response = apiInstance.uploadFile(request);

Di conseguenza, il file MP3 caricato sarà disponibile nella sezione file della dashboard sul cloud.

Estrai i metadati dei file audio MP3 utilizzando Java

È possibile estrarre tutte le proprietà dei metadati dei file audio MP3 in modo programmatico seguendo i passaggi indicati di seguito.

  • Crea un’istanza di MetadataApi
  • Crea un’istanza di FileInfo
  • Imposta il percorso del file MP3
  • Crea un’istanza di ExtractOptions
  • Assegna FileInfo a ExtractOptions
  • Crea la richiesta di estrazione
  • Chiama il metodo MetadataApi.extract() e ottieni i risultati

L’esempio di codice seguente mostra come estrarre i metadati di un file MP3 usando un’API REST.

// inizializza l'API
MetadataApi apiInstance = new MetadataApi(configuration);

// definire le opzioni di estrazione
ExtractOptions options = new ExtractOptions();
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// creare richiesta di estrazione
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

// mostra i risultati
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 

Estrazione dei metadati mediante corrispondenza della frase esatta utilizzando Java

Puoi estrarre la proprietà dei metadati dei file MP3 che corrispondono alla frase esatta seguendo i passaggi indicati di seguito:

  • Crea un’istanza di MetadataApi
  • Crea un’istanza di MatchOptions e imposta ExactPhrase su true
  • Inizializza un’istanza di NameOptions
  • Fornire il valore da abbinare e impostare MatchOptions
  • Crea un’istanza di SearchCriteria e imposta NameOptions
  • Crea un’istanza di FileInfo
  • Imposta il percorso del file MP3
  • Crea un’istanza di ExtractOptions
  • Assegna i SearchCriteria e FileInfo definiti a ExtractOptions
  • Crea la richiesta di estrazione
  • Chiama il metodo MetadataApi.extract() e ottieni i risultati

L’esempio di codice seguente mostra come estrarre i metadati abbinando la frase esatta utilizzando un’API REST.

// inizializza l'API
MetadataApi apiInstance = new MetadataApi(configuration);

// crea un'opzione di corrispondenza
MatchOptions matchOptions = new MatchOptions();
matchOptions.setExactPhrase(true);

// crea l'opzione nome
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("MimeType");
nameOptions.setMatchOptions(matchOptions);

// definire i criteri di ricerca
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// definire le opzioni di estrazione
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);

// fornire il file di input
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// creare richiesta di estrazione
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

// mostra i risultati
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

Estrazione di metadati tramite espressioni regolari utilizzando Java

È possibile definire i criteri di ricerca per estrarre i metadati dei file MP3 utilizzando l’espressione regolare seguendo i passaggi indicati di seguito:

  • Crea un’istanza di MetadataApi
  • Inizializza un’istanza di MatchOptions e imposta IsRegex su true
  • Creare un’istanza di NameOptions
  • Fornisci un’espressione regolare e imposta MatchOptions
  • Crea un’istanza di SearchCriteria e imposta NameOptions
  • Crea un’istanza di FileInfo
  • Imposta il percorso del file MP3
  • Crea un’istanza di ExtractOptions
  • Assegna i SearchCriteria e FileInfo definiti a ExtractOptions
  • Crea la richiesta di estrazione
  • Chiama il metodo MetadataApi.extract() e ottieni i risultati

L’esempio di codice seguente mostra come estrarre i metadati effettuando una ricerca tramite espressione regolare usando un’API REST.

// inizializza l'API
MetadataApi apiInstance = new MetadataApi(configuration);

// crea un'opzione di corrispondenza
MatchOptions matchOptions = new MatchOptions();
matchOptions.setIsRegex(true);

// crea l'opzione nome
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("^Co.*");
nameOptions.setMatchOptions(matchOptions);

// definire i criteri di ricerca
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// definire le opzioni di estrazione
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);

// fornire il file di input
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// creare richiesta di estrazione
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 

Estrai i metadati in base al nome della proprietà utilizzando Java

È possibile definire i criteri di ricerca per estrarre i metadati dei file MP3 per una proprietà specifica seguendo i passaggi indicati di seguito:

  • Crea un’istanza di MetadataApi
  • Inizializza un’istanza di NameOptions e imposta il valore
  • Crea un’istanza di SearchCriteria e imposta NameOptions
  • Crea un’istanza di FileInfo
  • Imposta il percorso del file MP3
  • Crea un’istanza di ExtractOptions
  • Assegna i SearchCriteria e FileInfo definiti a ExtractOptions
  • Crea la richiesta di estrazione
  • Chiama il metodo MetadataApi.extract() e ottieni i risultati

L’esempio di codice seguente mostra come estrarre i metadati cercando un nome di proprietà utilizzando un’API REST.

// inizializza l'API
MetadataApi apiInstance = new MetadataApi(configuration);

// crea l'opzione nome
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("Artist");

// definire i criteri di ricerca
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// fornire il file di input
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");

// definire le opzioni di estrazione
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
options.setFileInfo(fileInfo);

// creare richiesta di estrazione
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

Estrai i metadati in base al valore della proprietà utilizzando Java

È possibile definire i criteri di ricerca per estrarre i metadati dei file MP3 corrispondenti al valore della proprietà seguendo i passaggi indicati di seguito:

  • Crea un’istanza di MetadataApi
  • Creare un’istanza di ValueOptions
  • Fornire il valore da cercare e il relativo tipo
  • Crea un’istanza di SearchCriteria e imposta ValueOptions
  • Crea un’istanza di FileInfo
  • Imposta il percorso del file MP3
  • Crea un’istanza di ExtractOptions
  • Assegna i SearchCriteria e FileInfo definiti a ExtractOptions
  • Crea la richiesta di estrazione
  • Chiama il metodo MetadataApi.extract() e ottieni i risultati

Il frammento di codice seguente mostra come estrarre i metadati cercando il valore della proprietà utilizzando un’API REST.

// inizializza l'API
MetadataApi apiInstance = new MetadataApi(configuration);

// creare opzioni di valore
ValueOptions valueOptions = new ValueOptions();
valueOptions.setValue("Impact Moderato");
valueOptions.setType("string");

// definire i criteri di ricerca
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setValueOptions(valueOptions);

// fornire il file di input
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");

// definire le opzioni di estrazione
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
options.setFileInfo(fileInfo);

// creare richiesta di estrazione
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

Prova in linea

Prova il seguente strumento di estrazione di metadati MP3 online gratuito, sviluppato utilizzando l’API di cui sopra. https://products.groupdocs.app/metadata/total

Conclusione

In questo articolo, hai imparato come estrarre i metadati dei file audio MP3 sul cloud. Hai anche imparato come estrarre i metadati definendo criteri di ricerca come la corrispondenza di frasi esatte, utilizzando un’espressione regolare e in base al nome o al valore della proprietà. Questo articolo spiega anche come caricare in modo programmatico un file audio MP3 sul cloud. Puoi saperne di più su GroupDocs.Metadata Extraction Cloud API utilizzando la documentazione. Forniamo anche una sezione Riferimento API che ti consente di visualizzare e interagire con le nostre API direttamente attraverso il browser. In caso di ambiguità, non esitate a contattarci sul forum.

Guarda anche