メタデータの形式で保存されているオーディオ ファイルのさまざまなプロパティをプログラムで追加、編集、削除、抽出できます。クラウド上でプログラム的にオーディオ ファイルからタイトル、アーティスト、ジャンルなどのメタデータ プロパティを簡単に抽出できます。この記事では、Java の REST API を使用して MP3 オーディオ ファイルのメタデータを抽出する方法を学習します。
この記事では次のトピックについて説明/取り上げます。
- MP3 メタデータ抽出 REST API および Java SDK
- Java の REST API を使用して MP3 ファイルのメタデータを抽出する
- Javaを使用した完全一致フレーズによるメタデータ抽出
- Javaを使用した正規表現によるメタデータ抽出
- Java を使用したプロパティ名によるメタデータの抽出
- Java を使用したプロパティ値によるメタデータの抽出
MP3 メタデータ抽出 REST API および Java SDK
MP3 オーディオ ファイルのメタデータを抽出するために、GroupDocs.Metadata Cloud の Java SDK API を使用します。 60 種類を超えるドキュメント、画像、マルチメディア ファイル形式からメタデータ プロパティを追加、編集、取得、削除できます。検索条件を定義するだけで、API が サポートされているファイル形式 内で指定されたメタデータ操作を処理します。この API は、組み込み、XMP、EXIF、IPTC、イメージ リソース ブロック、ID3、カスタム メタデータ プロパティなどの最も注目すべきメタデータ標準で動作します。また、クラウド API の ドキュメント メタデータ操作ファミリー メンバー として .NET SDK も提供します。
次の pom.xml 構成を追加することで、Maven ベースの Java アプリケーションで GroupDocs.Metadata Cloud を簡単に使用できます。
<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>
上記の手順に従う前に、ダッシュボード からクライアント ID とシークレットを取得してください。 ID とシークレットを取得したら、以下に示すようにコードを追加します。
String clientId = "da0c487d-c1c0-45ae-b7bf-43eaf53c5ad5";
String clientSecret = "479db2b01dcb93a3d4d20efb16dea971";
String myStorage = "";
Configuration configuration = new Configuration(clientId, clientSecret);
Java の REST API を使用して MP3 ファイルのメタデータを抽出する
以下の簡単な手順に従って、MP3 オーディオ ファイルのメタデータを簡単に抽出できます。
- MP3ファイルをクラウドにアップロード
- Java を使用して MP3 オーディオ ファイルのメタデータを抽出する
ファイルをアップロードする
まず、以下のコード サンプルを使用して、MP3 オーディオ ファイルをクラウドにアップロードします。
// APIの初期化
FileApi apiInstance = new FileApi(clientId, clientSecret);
// 入力ファイル
File fileStream = new File("C:\\Files\\sample.mp3");
// ファイルアップロードリクエストを作成する
UploadFileRequest request = new UploadFileRequest("sample.mp3", fileStream, myStorage);
// ファイルをアップロードする
FilesUploadResult response = apiInstance.uploadFile(request);
その結果、アップロードされた MP3 ファイルは、クラウド上のダッシュボードの ファイル セクション で利用できるようになります。
Java を使用して MP3 オーディオ ファイルのメタデータを抽出する
以下の手順に従って、MP3 オーディオ ファイルのすべてのメタデータ プロパティをプログラムで抽出できます。
- MetadataApi のインスタンスを作成する
- FileInfo のインスタンスを作成する
- MP3ファイルのパスを設定する
- ExtractOptions のインスタンスを作成する
- FileInfo を ExtractOptions に割り当てる
- ExtractRequest を作成する
- MetadataApi.extract() メソッドを呼び出して結果を取得します
次のコード サンプルは、REST API を使用して MP3 ファイルのメタデータを抽出する方法を示しています。
// APIを初期化する
MetadataApi apiInstance = new MetadataApi(configuration);
// 抽出オプションを定義する
ExtractOptions options = new ExtractOptions();
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);
// 抽出リクエストを作成する
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);
// 結果を示す
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
Javaを使用した完全一致フレーズによるメタデータ抽出
以下の手順に従って、フレーズに正確に一致する MP3 ファイルのメタデータ プロパティを抽出できます。
- MetadataApi のインスタンスを作成する
- MatchOptions のインスタンスを作成し、ExactPhrase を true に設定します。
- NameOptions のインスタンスを初期化する
- 一致する値を指定して MatchOptions を設定する
- SearchCriteria のインスタンスを作成し、NameOptions を設定します。
- FileInfo のインスタンスを作成する
- MP3ファイルのパスを設定する
- ExtractOptions のインスタンスを作成する
- 定義された SearchCriteria と FileInfo を ExtractOptions に割り当てます。
- ExtractRequest を作成する
- MetadataApi.extract() メソッドを呼び出して結果を取得します
次のコード サンプルは、REST API を使用してフレーズを完全に一致させてメタデータを抽出する方法を示しています。
// APIを初期化する
MetadataApi apiInstance = new MetadataApi(configuration);
// 一致オプションの作成
MatchOptions matchOptions = new MatchOptions();
matchOptions.setExactPhrase(true);
// 名前の作成オプション
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("MimeType");
nameOptions.setMatchOptions(matchOptions);
// 検索基準を定義する
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);
// 抽出オプションを定義する
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
// 入力ファイルを提供する
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);
// 抽出リクエストを作成する
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());
}
}
MimeType: audio/mpeg
Tag for property: name - FileFormat, category - Content
Javaを使用した正規表現によるメタデータ抽出
以下の手順に従って、正規表現を使用して MP3 ファイルのメタデータを抽出するための検索条件を定義できます。
- MetadataApi のインスタンスを作成する
- MatchOptions のインスタンスを初期化し、IsRegex を true に設定します。
- NameOptions のインスタンスを作成する
- 正規表現を指定し、MatchOptions を設定します
- SearchCriteria のインスタンスを作成し、NameOptions を設定します。
- FileInfo のインスタンスを作成する
- MP3ファイルのパスを設定する
- ExtractOptions のインスタンスを作成する
- 定義された SearchCriteria と FileInfo を ExtractOptions に割り当てます。
- ExtractRequest を作成する
- MetadataApi.extract() メソッドを呼び出して結果を取得します
次のコード サンプルは、REST API を使用して正規表現によるメタデータ検索を抽出する方法を示しています。
// APIを初期化する
MetadataApi apiInstance = new MetadataApi(configuration);
// 一致オプションの作成
MatchOptions matchOptions = new MatchOptions();
matchOptions.setIsRegex(true);
// 名前の作成オプション
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("^Co.*");
nameOptions.setMatchOptions(matchOptions);
// 検索基準を定義する
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);
// 抽出オプションを定義する
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
// 入力ファイルを提供する
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);
// 抽出リクエストを作成する
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
Java を使用したプロパティ名によるメタデータの抽出
以下の手順に従って、特定のプロパティの MP3 ファイルのメタデータを抽出するための検索条件を定義できます。
- MetadataApi のインスタンスを作成する
- NameOptions のインスタンスを初期化し、値を設定します。
- SearchCriteria のインスタンスを作成し、NameOptions を設定します。
- FileInfo のインスタンスを作成する
- MP3ファイルのパスを設定する
- ExtractOptions のインスタンスを作成する
- 定義された SearchCriteria と FileInfo を ExtractOptions に割り当てます。
- ExtractRequest を作成する
- MetadataApi.extract() メソッドを呼び出して結果を取得します
次のコード サンプルは、REST API を使用してプロパティ名を検索してメタデータを抽出する方法を示しています。
// APIを初期化する
MetadataApi apiInstance = new MetadataApi(configuration);
// 名前の作成オプション
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("Artist");
// 検索基準を定義する
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);
// 入力ファイルを提供する
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
// 抽出オプションを定義する
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
options.setFileInfo(fileInfo);
// 抽出リクエストを作成する
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
Java を使用したプロパティ値によるメタデータの抽出
以下の手順に従って、プロパティ値と一致する MP3 ファイルのメタデータを抽出するための検索条件を定義できます。
- MetadataApi のインスタンスを作成する
- ValueOptions のインスタンスを作成する
- 検索する値とその型を指定します
- SearchCriteria のインスタンスを作成し、ValueOptions を設定します。
- FileInfo のインスタンスを作成する
- MP3ファイルのパスを設定する
- ExtractOptions のインスタンスを作成する
- 定義された SearchCriteria と FileInfo を ExtractOptions に割り当てます。
- ExtractRequest を作成する
- MetadataApi.extract() メソッドを呼び出して結果を取得します
次のコード スニペットは、REST API を使用してプロパティ値を検索してメタデータを抽出する方法を示しています。
// APIを初期化する
MetadataApi apiInstance = new MetadataApi(configuration);
// 値のオプションを作成する
ValueOptions valueOptions = new ValueOptions();
valueOptions.setValue("Impact Moderato");
valueOptions.setType("string");
// 検索基準を定義する
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setValueOptions(valueOptions);
// 入力ファイルを提供する
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
// 抽出オプションを定義する
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
options.setFileInfo(fileInfo);
// 抽出リクエストを作成する
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
オンラインで試す
上記の API を使用して開発された、次の無料のオンライン MP3 メタデータ抽出ツールをお試しください。 https://products.groupdocs.app/metadata/total
結論
この記事では、クラウド上で MP3 オーディオ ファイルのメタデータを抽出する方法を学習しました。また、完全に一致するフレーズなどの検索基準を定義したり、正規表現を使用したり、プロパティ名や値によってメタデータを抽出する方法も学習しました。この記事では、MP3 オーディオ ファイルをプログラムでクラウドにアップロードする方法についても説明しました。 ドキュメント を使用すると、GroupDocs.Metadata 抽出 Cloud API についてさらに詳しく学ぶことができます。また、ブラウザーを通じて直接 API を視覚化し操作できるようにする API リファレンス セクションも提供しています。不明な点がある場合は、フォーラム でお気軽にお問い合わせください。