ID3
1. 개요
ID3는 MP3 파일을 비롯한 디지털 오디오 파일에 메타데이터를 저장하기 위한 태그 형식이다. 1996년 에릭 켐프가 제안한 ID3v1은 파일 끝에 128바이트를 사용하여 음악 제목, 아티스트, 앨범, 장르 등의 정보를 저장했다. 이후 ID3v1.1, ID3v1.2 버전이 등장했으며, 1998년에는 가변 크기의 ID3v2가 개발되어 파일 시작 부분에 위치하며 다양한 정보를 프레임 형태로 저장할 수 있게 되었다. ID3v2는 ID3v2.2, ID3v2.3, ID3v2.4 버전이 있으며, 유니코드 지원, 256MB까지의 태그 크기, 다양한 정보 저장 등의 특징을 가진다. ID3 태그는 태그 편집기를 통해 편집할 수 있으며, MP3 외에도 AIFF, WAV, MP4 파일 등에서 사용된다.
| 종류 | 메타데이터 컨테이너 |
|---|---|
| 용도 | 오디오 파일에 메타데이터 저장 |
| 최초 디자인 | 에릭 켐프 (ID3v1.0), 미하엘 무츨러 (ID3v1.1), 마틴 닐손 외 (ID3v2 계열) |
| 공식 웹사이트 | ID3 공식 웹사이트 |
| 기능 | 오디오 파일 (주로 MP3 파일)에 제목, 아티스트, 앨범, 트랙 번호, 기타 정보 등의 메타데이터를 저장하는 데 사용됨 |
|---|---|
| 버전 | ID3v1 ID3v2 (ID3v2.2, ID3v2.3, ID3v2.4) |
| 호환성 | 대부분의 미디어 플레이어 및 오디오 편집 소프트웨어에서 지원 |
| 장점 | 오디오 파일 관리 및 식별 용이, 음악 라이브러리 구성에 유용 |
| 단점 | ID3v1: 저장 용량 제한 (128바이트), UTF-8 지원 안 함 ID3v2: 복잡한 구조, 파싱 오류 발생 가능성 |
| 특징 | 파일 내 특정 위치에 메타데이터 저장 다양한 프레임 (태그)을 사용하여 정보 저장 (예: 제목, 아티스트, 앨범 아트) |
| 역사 | ID3v1: 1996년 에릭 켐프에 의해 개발 ID3v2: ID3v1의 단점 보완, 다양한 버전으로 발전 |
2. ID3v1
ID3v1은 1996년에 에릭 켐프(Eric Kemp)가 제안한 초기 버전으로, MP3 파일 끝에 128 바이트의 고정된 크기로 메타데이터를 저장하는 방식이다. 'TAG'라는 문자열로 시작하여 미디어 플레이어가 쉽게 인식할 수 있도록 하였다. 초기 MP3 재생기들은 이러한 태그 데이터에 제대로 대응하지 못해 재생 중단이나 잡음 등의 문제가 발생하기도 했기 때문에, 태그는 주로 파일 끝에 삽입되었다.
ID3v1은 제목, 아티스트, 앨범, 코멘트, 연도, 장르 등의 정보를 저장할 수 있지만, 각 정보에 할당된 공간이 제한적이기 때문에 많은 정보를 담기에는 어려움이 있었다. 특히 문자열의 경우 ISO 8859-1 인코딩을 사용하도록 규정되어 있어, 일본어와 같이 다른 인코딩을 사용하는 언어에서는 호환성 문제가 발생할 수 있었다.
2.1. ID3v1.1
1997년 미하엘 무췰러(Michael Mutschler)가 ID3v1의 확장으로 제안한 것으로, ID3v1의 128 바이트를 유지하면서 곡 번호 정보를 추가했다. 이 새 필드는 비고 필드의 끝에서 두 번째 바이트에 위치한다.
| 오프셋 | 길이 | 설명 |
|---|---|---|
| 0 | 3 | "TAG" 인식 문자열 |
| 3 | 30 | 음악 제목 문자열 |
| 33 | 30 | 가수(음악가) 문자열 |
| 63 | 30 | 음반 문자열 |
| 93 | 4 | 음반 출시년도 문자열 |
| 97 | 28 | 비고 문자열 |
| 125 | 1 | 바이트 분리자 (항상 0) |
| 126 | 1 | 곡 번호 바이트 |
| 127 | 1 | 장르 바이트 |
ID3v1.1은 비고란을 2바이트 줄여 트랙 번호를 기록할 수 있도록 한 형식이다. 단축된 2바이트 중 앞의 1바이트에는 반드시 0(NULL)을 저장하고, 나머지 1바이트에 트랙 번호를 기록한다. ID3v1 형식으로 29바이트 이상의 비고가 입력된 파일과의 호환성은 완전히 유지되지 않으며, 트랙 번호를 기록하고 ID3v1.1 형식으로 이행한 시점에서 비고의 29, 30번째 바이트의 데이터가 소실된다.
2.2. ID3v1.2
2002년 또는 2003년, BirdCage Software는 ID3v1.2를 제안했다. 이 버전은 여러 필드의 크기를 30바이트에서 60바이트로 늘리고 하위 장르 필드를 추가했으며, 표준 v1.1 태그 앞에 새로운 "향상된" 태그를 배치하여 v1.1과의 하위 호환성을 유지했다. ID3v1.2의 채택은 제한적이었다.
2.3. 구조 (ID3v1, ID3v1.1)
ID3v1은 1996년에 에릭 켐프(Eric Kemp)가 고안한 방식으로, 파일 끝에 128 바이트를 추가하여 메타데이터를 저장한다. 이 방식은 'TAG'라는 문자열로 시작하여 미디어 플레이어가 쉽게 인식할 수 있도록 했다. 초기 MP3 재생기들은 이러한 태그 데이터에 제대로 대응하지 못해 재생 중단이나 잡음 등의 문제가 발생하기도 했기 때문에, 태그는 주로 파일 끝에 삽입되었다.
ID3v1.1은 1997년에 미하엘 무췰러(Michael Mutschler)가 ID3v1을 확장하여 고안한 것으로, 곡 번호 정보를 추가했다. 이 정보는 비고 필드의 끝에서 두 번째 바이트에 위치한다.
| 오프셋 | 길이 | 설명 |
|---|---|---|
| 0 | 3 | "TAG" 인식 문자열 |
| 3 | 30 | 음악 제목 문자열 |
| 33 | 30 | 가수(음악가) 문자열 |
| 63 | 30 | 음반 문자열 |
| 93 | 4 | 음반 출시년도 문자열 |
| 97 | 28 | 비고 문자열 |
| 125 | 1 | 바이트 분리자 (항상 0) |
| 126 | 1 | 곡 번호 바이트 |
| 127 | 1 | 장르 바이트 |
ID3v1과 ID3v1.1은 모든 문자열이 ISO 8859-1로 부호화(인코딩)된 것으로 간주한다. 그러나 많은 프로그램들이 시스템 기본 인코딩을 사용하기 때문에, 서로 다른 인코딩을 사용하는 시스템 간에는 호환성 문제가 발생할 수 있다. 특히, 일본어와 같이 ISO 8859-1을 사용하지 않는 언어의 경우 문제가 발생할 수 있다. 또한, ID3v1 규격은 문자열 끝에 남는 공간에 널 문자를 채우도록 되어 있지만, 윈앰프와 같은 일부 프로그램들은 다른 문자를 채우기도 한다.
2.4. 장르 목록 (ID3v1)
| # | 장르명 | # | 장르명 | # | 장르명 |
|---|---|---|---|---|---|
| 0 | 블루스 | 80 | 포크송 | 160 | 일렉트로클래시 |
| 1 | 클래식 록 | 81 | 포크 록 | 161 | 이모 |
| 2 | 컨트리 음악 | 82 | {{lang|en|Folk music#North America 2|미국 민요|} | } || 162 || 실험 음악