Trích xuất siêu dữ liệu của tệp MP3 bằng API REST trong Java

Bạn có thể thêm, chỉnh sửa, xóa hoặc trích xuất các thuộc tính khác nhau của tệp âm thanh được lưu trữ dưới dạng siêu dữ liệu theo chương trình. Bạn có thể dễ dàng trích xuất các thuộc tính siêu dữ liệu như tiêu đề, nghệ sĩ và thể loại từ các tệp âm thanh theo chương trình trên đám mây. Trong bài viết này, bạn sẽ tìm hiểu cách trích xuất siêu dữ liệu của tệp âm thanh MP3 bằng API REST trong Java.

Các chủ đề sau được thảo luận/đề cập trong bài viết này:

API REST trích xuất siêu dữ liệu MP3 và SDK Java

Tôi sẽ sử dụng Java SDK của GroupDocs.Metadata Cloud API để trích xuất siêu dữ liệu của các tệp âm thanh MP3. Nó cho phép bạn thêm, chỉnh sửa, truy xuất và xóa các thuộc tính siêu dữ liệu khỏi hơn 60 loại tài liệu, hình ảnh và định dạng tệp đa phương tiện. Bạn chỉ cần xác định tiêu chí tìm kiếm và API sẽ xử lý các thao tác siêu dữ liệu được chỉ định trong các định dạng tệp được hỗ trợ. API hoạt động với các tiêu chuẩn siêu dữ liệu đáng chú ý nhất như các thuộc tính siêu dữ liệu tùy chỉnh, XMP, EXIF, IPTC, Khối tài nguyên hình ảnh, ID3 và tùy chỉnh. Nó cũng cung cấp .NET SDK dưới dạng các thành viên gia đình thao tác siêu dữ liệu tài liệu cho Cloud API.

Bạn có thể dễ dàng sử dụng GroupDocs.Metadata Cloud trong các ứng dụng Java dựa trên Maven của mình bằng cách thêm cấu hình pom.xml sau.

<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>

Vui lòng lấy Mã khách hàng và Bí mật của bạn từ bảng điều khiển trước khi làm theo các bước được đề cập. Khi bạn có ID và bí mật của mình, hãy thêm mã như hình bên dưới:

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

Configuration configuration = new Configuration(clientId, clientSecret);

Trích xuất siêu dữ liệu của tệp MP3 bằng API REST trong Java

Bạn có thể dễ dàng trích xuất siêu dữ liệu của tệp âm thanh MP3 bằng cách thực hiện theo các bước đơn giản dưới đây:

  1. Tải lên tệp MP3 lên Đám mây
  2. Trích xuất siêu dữ liệu của tệp âm thanh MP3 bằng Java

Tải tệp lên

Đầu tiên, tải tệp âm thanh MP3 lên Đám mây bằng cách sử dụng mẫu mã được cung cấp bên dưới:

// khởi tạo api
FileApi apiInstance = new FileApi(clientId, clientSecret);

// tập tin đầu vào
File fileStream = new File("C:\\Files\\sample.mp3");

// tạo yêu cầu tải lên tập tin
UploadFileRequest request = new UploadFileRequest("sample.mp3", fileStream, myStorage);

// cập nhật dử liệu
FilesUploadResult response = apiInstance.uploadFile(request);

Do đó, tệp MP3 đã tải lên sẽ có sẵn trong phần tệp trên trang tổng quan của bạn trên đám mây.

Trích xuất siêu dữ liệu của tệp âm thanh MP3 bằng Java

Bạn có thể trích xuất tất cả các thuộc tính siêu dữ liệu của tệp âm thanh MP3 theo chương trình bằng cách làm theo các bước dưới đây.

  • Tạo một phiên bản của MetadataApi
  • Tạo một phiên bản của FileInfo
  • Đặt đường dẫn tệp MP3
  • Tạo một phiên bản của ExtractOptions
  • Gán FileInfo cho ExtractOptions
  • Tạo ExtractRequest
  • Gọi phương thức MetadataApi.extract() và nhận kết quả

Mẫu mã sau đây cho biết cách trích xuất siêu dữ liệu của tệp MP3 bằng API REST.

// khởi tạo api
MetadataApi apiInstance = new MetadataApi(configuration);

// xác định các tùy chọn trích xuất
ExtractOptions options = new ExtractOptions();
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// tạo yêu cầu trích xuất
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

// hiển thị kết quả
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 

Trích xuất siêu dữ liệu bằng cách khớp cụm từ chính xác bằng Java

Bạn có thể trích xuất thuộc tính siêu dữ liệu của các tệp MP3 khớp với cụm từ chính xác bằng cách thực hiện theo các bước dưới đây:

  • Tạo một phiên bản của MetadataApi
  • Tạo một phiên bản của MatchOptions và đặt ExactPhrase thành true
  • Khởi tạo một thể hiện của NameOptions
  • Cung cấp giá trị để khớp và đặt MatchOptions
  • Tạo một phiên bản của SearchCriteria và đặt NameOptions
  • Tạo một phiên bản của FileInfo
  • Đặt đường dẫn tệp MP3
  • Tạo một phiên bản của ExtractOptions
  • Gán SearchCriteria và FileInfo đã xác định cho ExtractOptions
  • Tạo ExtractRequest
  • Gọi phương thức MetadataApi.extract() và nhận kết quả

Mẫu mã sau đây cho biết cách trích xuất siêu dữ liệu bằng cách khớp cụm từ chính xác bằng API REST.

// khởi tạo api
MetadataApi apiInstance = new MetadataApi(configuration);

// tạo tùy chọn đối sánh
MatchOptions matchOptions = new MatchOptions();
matchOptions.setExactPhrase(true);

// tùy chọn tạo tên
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("MimeType");
nameOptions.setMatchOptions(matchOptions);

// xác định tiêu chí tìm kiếm
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// xác định các tùy chọn trích xuất
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);

// cung cấp tập tin đầu vào
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// tạo yêu cầu trích xuất
ExtractRequest request = new ExtractRequest(options);
ExtractResult response = apiInstance.extract(request);

// hiển thị kết quả
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

Trích xuất siêu dữ liệu bằng biểu thức chính quy bằng Java

Bạn có thể xác định tiêu chí tìm kiếm để trích xuất siêu dữ liệu của tệp MP3 bằng biểu thức chính quy bằng cách thực hiện theo các bước dưới đây:

  • Tạo một phiên bản của MetadataApi
  • Khởi tạo một phiên bản của MatchOptions và đặt IsRegex thành true
  • Tạo một thể hiện của NameOptions
  • Cung cấp biểu thức chính quy và đặt MatchOptions
  • Tạo một phiên bản của SearchCriteria và đặt NameOptions
  • Tạo một phiên bản của FileInfo
  • Đặt đường dẫn tệp MP3
  • Tạo một phiên bản của ExtractOptions
  • Gán SearchCriteria và FileInfo đã xác định cho ExtractOptions
  • Tạo ExtractRequest
  • Gọi phương thức MetadataApi.extract() và nhận kết quả

Mẫu mã sau đây cho biết cách trích xuất tìm kiếm siêu dữ liệu bằng cụm từ thông dụng bằng cách sử dụng API REST.

// khởi tạo api
MetadataApi apiInstance = new MetadataApi(configuration);

// tạo tùy chọn đối sánh
MatchOptions matchOptions = new MatchOptions();
matchOptions.setIsRegex(true);

// tùy chọn tạo tên
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("^Co.*");
nameOptions.setMatchOptions(matchOptions);

// xác định tiêu chí tìm kiếm
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// xác định các tùy chọn trích xuất
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);

// cung cấp tập tin đầu vào
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");
options.setFileInfo(fileInfo);

// tạo yêu cầu trích xuất
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 

Trích xuất siêu dữ liệu theo Tên thuộc tính bằng Java

Bạn có thể xác định tiêu chí tìm kiếm để trích xuất siêu dữ liệu của tệp MP3 cho một thuộc tính cụ thể bằng cách thực hiện theo các bước dưới đây:

  • Tạo một phiên bản của MetadataApi
  • Khởi tạo một thể hiện của NameOptions và đặt giá trị
  • Tạo một phiên bản của SearchCriteria và đặt NameOptions
  • Tạo một phiên bản của FileInfo
  • Đặt đường dẫn tệp MP3
  • Tạo một phiên bản của ExtractOptions
  • Gán SearchCriteria và FileInfo đã xác định cho ExtractOptions
  • Tạo ExtractRequest
  • Gọi phương thức MetadataApi.extract() và nhận kết quả

Mẫu mã sau đây cho biết cách trích xuất siêu dữ liệu bằng cách tìm kiếm tên thuộc tính bằng API REST.

// khởi tạo api
MetadataApi apiInstance = new MetadataApi(configuration);

// tạo tùy chọn tên
NameOptions nameOptions = new NameOptions();
nameOptions.setValue("Artist");

// xác định tiêu chí tìm kiếm
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setNameOptions(nameOptions);

// cung cấp tập tin đầu vào
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");

// xác định các tùy chọn trích xuất
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
options.setFileInfo(fileInfo);

// tạo yêu cầu trích xuất
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

Trích xuất siêu dữ liệu theo giá trị thuộc tính bằng Java

Bạn có thể xác định tiêu chí tìm kiếm để trích xuất siêu dữ liệu của các tệp MP3 phù hợp với giá trị thuộc tính bằng cách làm theo các bước dưới đây:

  • Tạo một phiên bản của MetadataApi
  • Tạo một phiên bản của ValueOptions
  • Cung cấp giá trị để tìm kiếm và loại của nó
  • Tạo một phiên bản của SearchCriteria và đặt ValueOptions
  • Tạo một phiên bản của FileInfo
  • Đặt đường dẫn tệp MP3
  • Tạo một phiên bản của ExtractOptions
  • Gán SearchCriteria và FileInfo đã xác định cho ExtractOptions
  • Tạo ExtractRequest
  • Gọi phương thức MetadataApi.extract() và nhận kết quả

Đoạn mã sau cho biết cách trích xuất siêu dữ liệu bằng cách tìm kiếm giá trị thuộc tính bằng API REST.

// khởi tạo api
MetadataApi apiInstance = new MetadataApi(configuration);

// tạo ra các tùy chọn giá trị
ValueOptions valueOptions = new ValueOptions();
valueOptions.setValue("Impact Moderato");
valueOptions.setType("string");

// xác định tiêu chí tìm kiếm
SearchCriteria searchCriteria = new SearchCriteria();
searchCriteria.setValueOptions(valueOptions);

// cung cấp tập tin đầu vào
FileInfo fileInfo = new FileInfo();
fileInfo.setFilePath("sample.mp3");

// xác định các tùy chọn trích xuất
ExtractOptions options = new ExtractOptions();
options.setSearchCriteria(searchCriteria);
options.setFileInfo(fileInfo);

// tạo yêu cầu trích xuất
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

Thử trực tuyến

Vui lòng dùng thử công cụ trích xuất siêu dữ liệu MP3 trực tuyến miễn phí sau đây, được phát triển bằng cách sử dụng API ở trên. https://products.groupdocs.app/metadata/total

Phần kết luận

Trong bài viết này, bạn đã học cách trích xuất Siêu dữ liệu của tệp âm thanh MP3 trên đám mây. Bạn cũng đã học cách trích xuất siêu dữ liệu bằng cách xác định các tiêu chí tìm kiếm chẳng hạn như đối sánh các cụm từ chính xác, sử dụng biểu thức chính quy và theo tên hoặc giá trị thuộc tính. Bài viết này cũng giải thích cách tải tệp âm thanh MP3 lên đám mây theo chương trình. Bạn có thể tìm hiểu thêm về API Cloud trích xuất siêu dữ liệu của GroupDocs bằng cách sử dụng tài liệu. Chúng tôi cũng cung cấp phần Tham khảo API cho phép bạn hình dung và tương tác trực tiếp với các API của chúng tôi thông qua trình duyệt. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi trên diễn đàn.

Xem thêm