[c++] Taglib으로 MP3 파일 처리하기

Taglib은 MP3, Ogg Vorbis, FLAC, MPC 등 다양한 오디오 파일 형식의 태그(metadata)를 읽고 쓸 수 있는 C++ 라이브러리입니다.

1. Taglib 설치

먼저, Taglib을 설치해야 합니다.

Ubuntu/Debian

sudo apt-get install libtag1-dev

macOS

brew install taglib

Windows

Windows에서는 소스 코드를 다운로드 받아 직접 빌드해야 합니다.

2. MP3 파일에서 메타데이터 읽기

다음은 C++로 작성된 간단한 예제 코드입니다. 이 코드는 MP3 파일의 제목, 아티스트, 앨범, 년도 등의 메타데이터를 출력합니다.

#include <taglib/fileref.h>
#include <iostream>

int main() {
  TagLib::FileRef file("song.mp3");

  if(!file.isNull() && file.tag()) {
    TagLib::Tag *tag = file.tag();
    std::cout << "Title: " << tag->title().toCString(true) << std::endl;
    std::cout << "Artist: " << tag->artist().toCString(true) << std::endl;
    std::cout << "Album: " << tag->album().toCString(true) << std::endl;
    std::cout << "Year: " << tag->year() << std::endl;
  }
}

위 코드에서 fileref.h 헤더 파일은 파일에 접근하고 메타데이터를 읽어오는 데 사용되며, tag.h 헤더 파일은 Taglib의 태그 클래스에 대한 선언을 포함합니다.

3. MP3 파일에서 메타데이터 쓰기

Taglib을 사용하면 MP3 파일에 메타데이터를 쓸 수도 있습니다. 아래 예제 코드는 새로운 제목과 아티스트 메타데이터를 MP3 파일에 추가하는 방법을 보여줍니다.

#include <taglib/fileref.h>

int main() {
  TagLib::FileRef file("song.mp3");
  
  if (!file.isNull() && file.tag()) {
      TagLib::Tag *tag = file.tag();
      tag->setTitle("New Title");
      tag->setArtist("New Artist");
      file.save();
  }
}

결론

Taglib 라이브러리를 사용하면 C++로 MP3 파일의 메타데이터를 읽고 쓸 수 있습니다. 또한, Taglib은 다른 오디오 파일 형식에도 적용할 수 있으므로 다양한 형식의 오디오 파일을 처리할 때 유용하게 사용할 수 있습니다.

Taglib 공식 홈페이지: Taglib