Java에서 REST API를 사용하여 MP3 파일의 메타데이터 추출

프로그래밍 방식으로 메타데이터 형태로 저장된 오디오 파일의 다양한 속성을 추가, 편집, 제거 또는 추출할 수 있습니다. 클라우드에서 프로그래밍 방식으로 오디오 파일에서 제목, 아티스트 및 장르와 같은 메타데이터 속성을 쉽게 추출할 수 있습니다. 이 기사에서는 Java에서 REST API를 사용하여 MP3 오디오 파일의 메타데이터를 추출하는 방법을 배웁니다.

이 문서에서는 다음 항목에 대해 설명/다룹니다.

MP3 메타데이터 추출 REST API 및 Java SDK

MP3 오디오 파일의 메타데이터를 추출하기 위해 GroupDocs.Metadata Cloud의 Java SDK API를 사용할 것입니다. 60개 이상의 문서, 이미지 및 멀티미디어 파일 형식에서 메타데이터 속성을 추가, 편집, 검색 및 제거할 수 있습니다. 검색 기준을 정의하기만 하면 API가 지원되는 파일 형식 내에서 지정된 메타데이터 작업을 처리합니다. API는 내장, XMP, EXIF, IPTC, 이미지 리소스 블록, ID3 및 사용자 지정 메타데이터 속성과 같은 가장 주목할만한 메타데이터 표준과 함께 작동합니다. 또한 Cloud 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 오디오 파일의 메타데이터를 쉽게 추출할 수 있습니다.

  1. 업로드 MP3 파일을 클라우드에
  2. 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의 인스턴스 만들기
  • ExtractOptions에 FileInfo 할당
  • 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 추출 클라우드 API에 대해 더 자세히 알아볼 수 있습니다. 또한 브라우저를 통해 직접 API를 시각화하고 상호 작용할 수 있는 API 참조 섹션을 제공합니다. 모호한 점이 있으면 언제든지 포럼으로 문의해 주십시오.

또한보십시오