---
type: bookmarks
tags: ['node', 'id3']
status: release
ctime: 2022-04-09
mtime: 2026-10-06
---

import QuoteLink from '@components/QuoteLink.astro'

<QuoteLink url="https://en.wikipedia.org/wiki/ID3">ID3</QuoteLink>

> ID3 is a metadata container most often used in conjunction with the MP3 audio file format.

![MP3 파일은 ID3v2 태그, 오디오 프레임들, ID3v1 태그 순으로 놓인다. 오디오 프레임은 각각 11비트 sync(FF Ex)로 시작하고, 디코더는 이 패턴을 찾아 재생하며 그 밖의 바이트는 건너뛴다. 그래서 태그는 오디오를 건드리지 않고 앞뒤에 붙인 바이트 덩어리다. ID3v2 는 맨 앞에 붙는 가변 길이 컨테이너다: 10바이트 헤더("ID3", 버전 2, 플래그 1, 크기 4 syncsafe) 뒤에 프레임이 반복된다. 프레임은 ID 4(TIT2 제목, TPE1 아티스트, TALB 앨범, APIC 커버), 크기 4, 플래그 2, 본문이고, 텍스트 본문의 첫 바이트가 인코딩이다(00 ISO-8859-1, 01 UTF-16 BOM, 02 UTF-16BE, 03 UTF-8). 마지막 프레임 뒤에 00 으로 채운 패딩을 둘 수 있다. ID3v1 은 맨 끝 128바이트 고정 칸이다: TAG 3, 제목 30, 아티스트 30, 앨범 30, 연도 4, 코멘트 30, 장르 번호 1. v1.1 은 코멘트를 28 로 줄이고 00 다음 1바이트에 트랙 번호를 넣는다. 인코딩을 적을 칸은 없다. 장치 셋: 크기는 바이트마다 최상위 비트를 0 으로 둔 syncsafe 정수라(7비트 × 4 = 28비트, 최대 256MB) 크기 값이 sync 로 읽히지 않는다. 본문에 거짓 sync FF Ex 가 생기면 FF 00 Ex 로 바꾼다(unsynchronisation). 태그가 패딩 안에서 커지면 태그만 고쳐 쓰고, 넘치면 오디오를 밀어 파일 전체를 다시 쓴다.](/svg/id3_layout.svg)

---

- [music-metadata](https://github.com/borewit/music-metadata)[^61-1]
- [node-taglib](https://github.com/nikhilm/node-taglib)[^61-2]
- [node-id3](https://github.com/Zazama/node-id3)[^61-3]

---

[^61-1]: MP3, MP4, OGG, FLAC 등 다양한 음악 형식을 지원. 제목, 아티스트, 앨범 등과 같은 음악 파일의 메타데이터에 액세스하기 위한 간단하고 사용하기 쉬운 API를 제공합니다.

[^61-2]: [TagLib](http://developer.kde.org/~wheeler/taglib/) 바인딩

[^61-3]: 다양한 ID3 태그 버전을 지원하며 간단하고 사용하기 쉬운 API를 제공합니다.
