ID3 is a metadata container most often used in conjunction with the MP3 audio file format. It allows information such as the title, artist, album, track number, and other information about the file to be stored in the file itself.

ID3 is a de facto standard for metadata in MP3 files; no standardization body was involved in its creation nor has such an organization given it a formal approval status. It competes with the APE tag in this area.

There are two unrelated versions of ID3: ID3v1 and ID3v2. In ID3v1, the metadata is stored in a 128-byte segment at the end of the file. In ID3v2, an extensible set of "frames" located at the start of the file are used. Subvariants of both versions exist.

ID3v1
When the MP3 standard was published in 1995, it did not include a method for storing file metadata. In 1996 Eric Kemp proposed adding a 128-byte suffix to MP3 files in which useful information such as an artist's name or a related album title could be stored. Kemp deliberately placed the tag data (which is demarcated with the 3-byte string ) at the end of the file as it would cause a short burst of static to be played by older  media players that did not support the tag. The method, now known as ID3v1, quickly became the de facto standard for storing metadata in MP3s despite internationalization and localization weaknesses arising from the standard's use of ISO-8859-1 system of encoding rather than the more globally compatible Unicode.

The v1 tag allows 30 bytes each for the title, artist, album, and a "comment", 4 bytes for the year, and 1 byte to identify the genre of the song from  a predefined list of values.

ID3v1.1
In 1997, a modification to ID3v1 was proposed by Michael Mutschler in which two bytes formerly allocated to the comment field were used instead to store a track number so that albums stored across multiple files could be correctly ordered. The modified format became known as ID3v1.1.

ID3v1.2 
In 2002 or 2003, BirdCage Software proposed ID3v1.2, which enlarged many of the fields from 30 to 60 bytes and added a subgenre field while retaining backward compatibility with v1.1 by placing its new "enhanced" tag in front of a standard v1.1 tag. Adoption of ID3v1.2 was limited.

ID3v2 

In 1998, a new specification called ID3v2 was created by multiple contributors. Although it bears the name ID3, its structure is completely distinct from that of ID3v1. ID3v2 tags are of variable size and are usually placed at the start of the file, which enables metadata to load immediately, even when the file as a whole is loading incrementally during streaming. 

A ID3v2 tag consists of a number of optional frames, each of which contains a piece of metadata up to 16 MB in size. For example, a  frame may be included to contain a title. The entire tag may be as large as 256 MB, and strings may be encoded in Unicode.

ID3v2.2
The first public variant of v2, ID3v2.2, replaced three-characters frame identifiers (e.g., ) with four-character frame identifiers (e.g., ) in order to avoid confusion between similar codes. Most of the common v2.3 and v2.4 frames have direct analogues in v2.2, but v2.2 is now considered obsolete.

ID3v2.3
ID3v2.3 is the most widely used version of ID3v2 tags and is widely supported by Windows Explorer and Windows Media Player. Notably it introduced the ability to embed an image such as an album cover.

ID3v2.4
ID3v2.4 was published on November 1, 2000. It defines 83 frame types, allows text frames to contain multiple values separated with a null byte, and permits the tag to be stored at either the beginning or the end of the file.

Notable features

Chapters
An ID3v2 Chapter Addendum was published in December 2005. It allows users to jump easily to specific locations or chapters within an audio file and can provide a synchronized slide show of images and titles during playback. Typical use-cases include Enhanced podcasts and it can be used in ID3v2.3 or ID3v2.4 tags.

Lyrics
Lyrics3v1 and Lyrics3v2 were tag standards implemented before ID3v2, for adding lyrics to mp3 files. The difference with ID3v2 is that Lyrics3 is always at the end of an MP3 file, before the ID3v1 tag.

Editing ID3 tags 

ID3 tags may be edited in a variety of ways. Specialized applications, called tag editors, enable precise editing of all fields or frames and permit sophisticated batch editing, but many audio players provide native editing of common fields or frames.  Some file managers also provide tag editing capabilities.

Non-MP3 implementation 
ID3 tags were designed for the MP3 format, but the tagsets are an independent part of the MP3 file and can be used elsewhere. ID3v2 tags are sometimes used with AIFF and WAV files,  and 
MP4 allows the embedding of an ID3 tag.

See also 
 CD-Text
 APE tag (Can be used in MP3 files, but less compatible with player software than ID3.)
 Vorbis comment
 Standard Architecture for Universal Comment Extensions (SAUCE)
 XBin (eXtended Binary)

References

External links 
 
 List of genres in ID3v1
 ID3v1 Specification
 Side-by-side Comparison of ID3 Versions and Frames
 

Computer file formats
Metadata standards
ID3는 MP3 파일에서 사용하는 메타데이터 포맷으로, 음악의 제목, 음악가 이름 등의 음악 파일에 관련된 정보를 담는다.

ID3에는 ID3v1과 ID3v2 두 가지의 버전이 있으며, 이들은 서로 호환성이 없으며 하나의 파일 안에 동시에 존재할 수도 있다.

ID3v1과 ID3v1.1 
ID3v1은 1996년에 에릭 켐프(Eric Kemp)에 의해 고안되어 사실상의 표준이 되었다. ID3v1은 파일 끝에 128 바이트를 덧붙이는데, ‘TAG’라는 문자열로 시작되므로 미디어 플레이어가 쉽게 인식할 수 있다. 초기의 MP3 재생기는 때때로 MPEG 스트림 사이에 삽입된 데이터에 적절히 대응하지 못하고, 재생을 멈추거나 잡음이 튀는 등의 문제가 있었고, 심지어 재생을 못하기도 했다(태그가 파일의 첫 부분에 있는 경우). 이 같은 문제 때문에 태그는 보통 파일의 첫 부분보다는 끝에 삽입됐다.

ID3v1.1은 1997년에 미하엘 무췰러(Michael Mutschler)에 의해 ID3v1의 확장으로 고안된 것으로, ID3v1의 128 바이트를 유지하면서 곡 번호 정보를 추가했다. 이 새 필드는 비고 필드의 끝에서 두 번째 바이트에 위치한다.

ID3v1과 ID3v1.1의 규격은 모든 문자열이 ISO 8859-1로 부호화(인코딩)된 것으로 간주한다. 그러나 많은 프로그램들이 서유럽 외의 언어를 지원하기 위해 시스템의 기본 인코딩을 사용한다. 규격상 인코딩에 대한 공통적인 처리 방식이 없기 때문에, 서로 다른 인코딩을 사용하는 시스템 간에는 인식을 제대로 하지 못하는 문제가 생길 수 있다. 또한 ID3v1 규격에는 모든 문자열의 끝에 남는 공간에는 널 문자를 채우도록 되어 있지만, 윈앰프와 같은 일부 프로그램들은 공백 문자와 같은 다른 문자를 채우기도 한다.

ID3v2 

ID3v1은 그 크기가 128바이트로 정해졌기 때문에, 추가적인 정보를 넣는 것이 거의 불가능했다. 이 문제를 해결하기 위해 Lyric3과 같은 다른 포맷이 제안되기도 하였으며, 마틴 닐슨(Martin Nilsson)이 제안한 ID3v2 태그 포맷도 이런 문제를 극복하였다. ID3v2 태그 포맷은 다음과 같은 특징을 가지고 있다.

 파일의 첫 부분에 큰 데이터 블록으로 삽입되며, ID3v1과의 호환성이 없다. (ID3v2.4부터는 선택적으로 파일의 끝에 삽입할 수 있다)
 프로그램이 파일의 끝까지 읽어 들이기 전에 태그 정보를 얻을 수 있기 때문에 스트리밍 파일을 재생할 때 이득이 된다.
 태그의 길이가 변경될 경우 전체 파일이 재작성되어야 하기 때문에 태그를 쓸 때 효율성 면에서 불리할 수 있다. 이런 이유 때문에 ID3v2 태그 뒤에 적당한 공백을 넣어서, 태그의 길이가 어느 이상 커지지 않으면 전체 파일을 재작성하지 않는 방법을 사용하는 경우도 있다.
 몇 개의 고정된 필드를 제공했던 ID3v1과는 달리, ID3v2 태그는 포맷이 정형화된 태그 프레임들로 이루어져 있기 때문에 확장하기 용이하다.
 작사자, 지휘자, 매체 종류, BPM, 가사, 이미지, 볼륨, 잔향 설정, 암호화된 정보 등과 같은 다양한 정보를 넣을 수 있다.
 태그에 가짜 동기 신호가 삽입되는 것을 방지하기 위한 비동기화(unsynchronisation) 옵션을 제공하기 때문에, ID3v2 태그가 삽입된 MP3 파일은 ID3v2를 지원하지 않는 프로그램에서도 안전하게 재생할 수 있다.
 태그 전체의 크기는 256MB까지 허용되며 프레임 하나의 크기는 16MB까지 허용된다.
 유니코드를 지원하므로 국제화된 태그를 이용할 수 있다. 기본적으로 UTF-16 인코딩을 지원하며, 또한 ID3v2.4부터는 UTF-8을 지원한다.

ID3v2에는 다음과 같은 세 가지 버전이 있다. 각 버전들은 구조가 비슷하지만 서로 호환성은 없다.
 ID3v2.2 (1998년): ID3v2 태그의 첫 버전으로, 현재는 거의 사용되지 않는다.
 ID3v2.3 (1999년): 태그 프레임의 속성을 나타내는 필드가 추가되었으며 확장된 헤더를 제공한다.
 ID3v2.4 (2000년): 확장된 헤더의 구조가 바뀌었고, 푸터를 지원하므로 파일의 끝에도 삽입할 수 있다. 또한 UTF-8 인코딩을 지원한다.

ID3v2는 너무 많은 정보를 하나의 메타데이터 포맷에 담기 때문에 구현이 힘들다는 단점을 갖고 있다. 예를 들어, 오디오의 길이를 저장하는 TLEN 프레임과 오디오의 인코딩 방법을 저장하는 AENC 프레임 등은 메타데이터가 담긴 파일을 분석해도 알아 낼 수 있는 정보이며(다만 경우에 따라서 오디오의 길이를 쉽게 알 수 없는 경우는 있다), ID3v2.4에 있는 84개의 프레임이 각각 서로 다른 내부 구조를 갖고 있으며 버전마다 구조가 다른 경우도 있기 때문에 일괄적인 처리가 힘들어진다. APEv2와 같이 나중에 만들어진 메타데이터 포맷은 내부 구조를 통일하여 이런 문제를 해결한다.

같이 보기 
 APEv2
 보비스 코멘트

외부 링크 
  ID3v2 공식 웹사이트
  초기 ID3v2 규격
  ID3v1에서 정의된 음악 장르 목록
  ID3 code
메타데이터