[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