📄 id3v2.3.0.html
字号:
size of ten bytes in every frame. The size is calculated as frame
size excluding frame header (frame size - 10).
</p><p class=t>
In the frame header the size descriptor is followed by two flags
bytes. These flags are described in <a href="#sec3.3.1">section 3.3.1.</a>
</p><p class=t>
There is no fixed order of the frames' appearance in the tag,
although it is desired that the frames are arranged in order of
significance concerning the recognition of the file. An example of
such order: <a href="#sec4.1">UFID</a>, <a href="#TIT2">TIT2</a>, <a href="#sec4.5">MCDI</a>, <a href="#TRCK">TRCK</a> ...
</p><p class=t>
A tag must contain at least one frame. A frame must be at least 1
byte big, excluding the header.
</p><p class=t>
If nothing else is said a string is represented as
<a href="#ISO-8859-1">ISO-8859-1</a> characters in the range $20 - $FF. Such strings are
represented as <text string>, or <full text string> if newlines are
allowed, in the frame descriptions. All <a href="#UNICODE">Unicode</a> strings use
16-bit unicode 2.0 (ISO/IEC 10646-1:1993, UCS-2). Unicode strings
must begin with the Unicode BOM ($FF FE or $FE FF) to identify the
byte order.
</p><p class=t>
All numeric strings and <a href="#URL">URLs</a> are always encoded as <a href="#ISO-8859-1">ISO-8859-1</a>.
Terminated strings are terminated with $00 if encoded with <a href="#ISO-8859-1">ISO-8859-1</a>
and $00 00 if encoded as unicode. If nothing else is said newline
character is forbidden. In <a href="#ISO-8859-1">ISO-8859-1</a> a new line is represented, when
allowed, with $0A only. Frames that allow different types of text
encoding have a text encoding description byte directly after the
frame size. If <a href="#ISO-8859-1">ISO-8859-1</a> is used this byte should be $00, if Unicode
is used it should be $01. Strings dependent on encoding is
represented as <text string according to encoding>, or <full text
string according to encoding> if newlines are allowed. Any empty
<a href="#UNICODE">Unicode</a> strings which are NULL-terminated may have the Unicode BOM
followed by a Unicode NULL ($FF FE 00 00 or $FE FF 00 00).
</p><p class=t>
The three byte language field is used to describe the language of the
frame's content, according to <a href="#ISO-639-2">ISO-639-2</a>.
</p><p class=t>
All <a href="#URL">URLs</a> may be relative, e.g. "picture.png", "../doc.txt".
</p><p class=t>
If a frame is longer than it should be, e.g. having more fields than
specified in this document, that indicates that additions to the
frame have been made in a later version of the ID3v2 standard. This
is reflected by the revision number in the header of the tag.
</p>
<a name="sec3.3.1"> </a>
<h3>3.3.1.Frame header flags</h3>
<p class=t>
In the frame header the size descriptor is followed by two flags
bytes. All unused flags must be cleared. The first byte is for
'status messages' and the second byte is for encoding purposes. If an
unknown flag is set in the first byte the frame may not be changed
without the bit cleared. If an unknown flag is set in the second byte
it is likely to not be readable. The flags field is defined as
follows.
</p><p class=ind>
%abc00000 %ijk00000
</p>
<p class=t>
a - Tag alter preservation
</p><p class=ind>
This flag tells the software what to do with this frame if it is
unknown and the tag is altered in any way. This applies to all
kinds of alterations, including adding more padding and reordering
the frames.</p>
<p><center><table border=0 width="70%">
<tr><td>0 </td><td>Frame should be preserved.</td></tr>
<tr><td>1</td><td>Frame should be discarded.</td></tr>
</table></center>
</p>
<p class=t>
b - File alter preservation
</p><p class=ind>
This flag tells the software what to do with this frame if it is
unknown and the file, excluding the tag, is altered. This does not
apply when the audio is completely replaced with other audio data.</p>
<p><center><table border=0 width="70%">
<tr><td>0 </td><td>Frame should be preserved.</td></tr>
<tr><td>1</td><td>Frame should be discarded.</td></tr>
</table></center>
</p>
<p class=t>
c - Read only
</p><p class=ind>
This flag, if set, tells the software that the contents of this
frame is intended to be read only. Changing the contents might
break something, e.g. a signature. If the contents are changed,
without knowledge in why the frame was flagged read only and
without taking the proper means to compensate, e.g. recalculating
the signature, the bit should be cleared.
</p>
<p class=t>
i - Compression
</p>
<p class=ind>This flag indicates whether or not the frame is compressed.</p>
<p><center><table border=0 width="70%">
<tr><td>0 </td><td>Frame is not compressed.</td></tr>
<tr><td>1</td><td>Frame is compressed using <a href="#ZLIB">zlib</a> with 4 bytes for 'decompressed size' appended to the frame header.</td></tr>
</table></center>
</p>
<p class=t>
j - Encryption
</p><p class=ind>
This flag indicates wether or not the frame is enrypted. If set
one byte indicating with which method it was encrypted will be
appended to the frame header. See <a href="#sec4.26">section 4.26.</a> for more
information about encryption method registration.
</p><p><center><table border=0 width="70%">
<tr><td>0 </td><td>Frame is not encrypted.</td></tr>
<tr><td>1</td><td>Frame is encrypted.</td></tr>
</table></center>
</p>
<p class=t>
k - Grouping identity
</p><p class=ind>
This flag indicates whether or not this frame belongs in a group
with other frames. If set a group identifier byte is added to the
frame header. Every frame with the same group identifier belongs
to the same group.
</p><p><center><table border=0 width="70%">
<tr><td>0 </td><td>Frame does not contain group information</td></tr>
<tr><td>1</td><td>Frame contains group information</td></tr>
</table></center>
</p>
<p class=t>
Some flags indicates that the frame header is extended with
additional information. This information will be added to the frame
header in the same order as the flags indicating the additions. I.e.
the four bytes of decompressed size will preceed the encryption
method byte. These additions to the frame header, while not included
in the frame header size but are included in the 'frame size' field,
are not subject to encryption or compression.
</p>
<a name="sec3.3.2"> </a>
<h3>3.3.2.Default flags</h3>
<p class=t>
The default settings for the frames described in this document can be
divided into the following classes. The flags may be set differently
if found more suitable by the software.
</p><p class=t>
1. Discarded if tag is altered, discarded if file is altered.
</p><p class=ind>
None.
</p><p class=t>
2. Discarded if tag is altered, preserved if file is altered.
</p><p class=ind>
None.
</p><p class=t>
3. Preserved if tag is altered, discarded if file is altered.
</p><p class=ind>
<a href="#sec4.21>AENC</a>, <a href="#sec4.6">ETCO</a>, <a href="#sec4.13">EQUA</a>, <a href="#sec4.7">MLLT</a>, <a href="#sec4.22">POSS</a>, <a href="#4.10">SYLT</a>, <a href="#sec4.8">SYTC</a>, <a href="#4.12">RVAD</a>, <a href="#TENC">TENC</a>, <a href="#TLEN">TLEN</a>, <a href="#TSIZ">TSIZ</a>
</p><p class=t>
4. Preserved if tag is altered, preserved if file is altered.
</p><p class=ind>
The rest of the frames.
</p>
<a name="sec4"> </a>
<h3>4.Declared ID3v2 frames</h3>
</p><p class=t>
The following frames are declared in this draft.
</p><p><center><table border=0 width="70%">
<tr><td>4.20</td><td>AENC</td><td width="100%"><a href="#sec4.20"> Audio encryption</a></td></tr>
<tr><td>4.15</td><td>APIC</td><td><a href="#sec4.15">Attached picture</a></td></tr>
<tr><td>4.11</td><td>COMM</td><td><a href="#sec4.11">Comments</a></td></tr>
<tr><td>4.25</td><td>COMR</td><td><a href="#sec4.25">Commercial frame</a></td></tr>
<tr><td>4.26</td><td>ENCR</td><td><a href="#sec4.26">Encryption method registration</a></td></tr>
<tr><td>4.13</td><td>EQUA</td><td><a href="#sec4.13">Equalization</a></td></tr>
<tr><td>4.6 </td><td>ETCO</td><td><a href="#sec4.6">Event timing codes</a></td></tr>
<tr><td>4.16</td><td>GEOB</td><td><a href="#sec4.16">General encapsulated object</a></td></tr>
<tr><td>4.27</td><td>GRID</td><td><a href="#sec4.27">Group identification registration</a></td></tr>
<tr><td>4.4 </td><td>IPLS</td><td><a href="#sec4.4">Involved people list</a></td></tr>
<tr><td>4.21</td><td>LINK</td><td><a href="#sec4.21">Linked information</a></td></tr>
<tr><td>4.5 </td><td>MCDI</td><td><a href="#sec4.5">Music CD identifier</a></td></tr>
<tr><td>4.7 </td><td>MLLT</td><td><a href="#sec4.7">MPEG location lookup table</a></td></tr>
<tr><td>4.24</td><td>OWNE</td><td><a href="#sec4.24">Ownership frame</a></td></tr>
<tr><td>4.28</td><td>PRIV</td><td><a href="#sec4.28">Private frame</a></td></tr>
<tr><td>4.17</td><td>PCNT</td><td><a href="#sec4.17">Play counter</a></td></tr>
<tr><td>4.18</td><td>POPM</td><td><a href="#sec4.18">Popularimeter</a></td></tr>
<tr><td>4.22</td><td>POSS</td><td><a href="#sec4.22">Position synchronisation frame</a></td></tr>
<tr><td>4.19</td><td>RBUF</td><td><a href="#sec4.19">Recommended buffer size</a></td></tr>
<tr><td>4.12</td><td>RVAD</td><td><a href="#sec4.12">Relative volume adjustment</a></td></tr>
<tr><td>4.14</td><td>RVRB</td><td><a href="#sec4.14">Reverb</a></td></tr>
<tr><td>4.10</td><td>SYLT</td><td><a href="#sec4.10">Synchronized lyric/text</a></td></tr>
<tr><td>4.8 </td><td>SYTC</td><td><a href="#sec4.8">Synchronized tempo codes</a></td></tr>
<tr><td>4.2.1</td><td>TALB</td><td><a href="#TALB">Album/Movie/Show title</a></td></tr>
<tr><td>4.2.1</td><td>TBPM</td><td><a href="#TBPM">BPM (beats per minute)</a></td></tr>
<tr><td>4.2.1</td><td>TCOM</td><td><a href="#TCOM">Composer</a></td></tr>
<tr><td>4.2.1</td><td>TCON</td><td><a href="#TCON">Content type</a></td></tr>
<tr><td>4.2.1</td><td>TCOP</td><td><a href="#TCOP">Copyright message</a></td></tr>
<tr><td>4.2.1</td><td>TDAT</td><td><a href="#TDAT">Date</a></td></tr>
<tr><td>4.2.1</td><td>TDLY</td><td><a href="#TDLY">Playlist delay</a></td></tr>
<tr><td>4.2.1</td><td>TENC</td><td><a href="#TENC">Encoded by</a></td></tr>
<tr><td>4.2.1</td><td>TEXT</td><td><a href="#TEXT">Lyricist/Text writer</a></td></tr>
<tr><td>4.2.1</td><td>TFLT</td><td><a href="#TFLT">File type</a></td></tr>
<tr><td>4.2.1</td><td>TIME</td><td><a href="#TIME">Time</a></td></tr>
<tr><td>4.2.1</td><td>TIT1</td><td><a href="#TIT1">Content group description</a></td></tr>
<tr><td>4.2.1</td><td>TIT2</td><td><a href="#TIT2">Title/songname/content description</a></td></tr>
<tr><td>4.2.1</td><td>TIT3</td><td><a href="#TIT3">Subtitle/Description refinement</a></td></tr>
<tr><td>4.2.1</td><td>TKEY</td><td><a href="#TKEY">Initial key</a></td></tr>
<tr><td>4.2.1</td><td>TLAN</td><td><a href="#TLAN">Language(s)</a></td></tr>
<tr><td>4.2.1</td><td>TLEN</td><td><a href="#TLEN">Length</a></td></tr>
<tr><td>4.2.1</td><td>TMED</td><td><a href="#TMED">Media type</a></td></tr>
<tr><td>4.2.1</td><td>TOAL</td><td><a href="#TOAL">Original album/movie/show title</a></td></tr>
<tr><td>4.2.1</td><td>TOFN</td><td><a href="#TOFN">Original filename</a></td></tr>
<tr><td>4.2.1</td><td>TOLY</td><td><a href="#TOLY">Original lyricist(s)/text writer(s)</a></td></tr>
<tr><td>4.2.1</td><td>TOPE</td><td><a href="#TOPE">Original artist(s)/performer(s)</a></td></tr>
<tr><td>4.2.1</td><td>TORY</td><td><a href="#TORY">Original release year</a></td></tr>
<tr><td>4.2.1</td><td>TOWN</td><td><a href="#TOWN">File owner/licensee</a></td></tr>
<tr><td>4.2.1</td><td>TPE1</td><td><a href="#TPE1">Lead performer(s)/Soloist(s)</a></td></tr>
<tr><td>4.2.1</td><td>TPE2</td><td><a href="#TPE2">Band/orchestra/accompaniment</a></td></tr>
<tr><td>4.2.1</td><td>TPE3</td><td><a href="#TPE3">Conductor/performer refinement</a></td></tr>
<tr><td>4.2.1</td><td>TPE4</td><td><a href="#TPE4">Interpreted, remixed, or otherwise modified by</a></td></tr>
<tr><td>4.2.1</td><td>TPOS</td><td><a href="#TPOS">Part of a set</a></td></tr>
<tr><td>4.2.1</td><td>TPUB</td><td><a href="#TPUB">Publisher</a></td></tr>
<tr><td>4.2.1</td><td>TRCK</td><td><a href="#TRCK">Track number/Position in set</a></td></tr>
<tr><td>4.2.1</td><td>TRDA</td><td><a href="#TRDA">Recording dates</a></td></tr>
<tr><td>4.2.1</td><td>TRSN</td><td><a href="#TRSN">Internet radio station name</a></td></tr>
<tr><td>4.2.1</td><td>TRSO</td><td><a href="#TRSO">Internet radio station owner</a></td></tr>
<tr><td>4.2.1</td><td>TSIZ</td><td><a href="#TSIZ">Size</a></td></tr>
<tr><td>4.2.1</td><td>TSRC</td><td><a href="#TSRC">ISRC (international standard recording code)</a></td></tr>
<tr><td>4.2.1</td><td>TSSE</td><td><a href="#TSSE">Software/Hardware and settings used for encoding</a></td></tr>
<tr><td>4.2.1</td><td>TYER</td><td><a href="#TYER">Year</a></td></tr>
<tr><td>4.2.2</td><td>TXXX</td><td><a href="#TXXX">User defined text information frame</a></td></tr>
<tr><td>4.1 </td><td>UFID</td><td><a href="#sec4.1">Unique file identifier</td></tr>
<tr><td>4.23</td><td>USER</td><td><a href="#sec4.23">Terms of use</td></tr>
<tr><td>4.9 </td><td>USLT</td><td><a href="#sec4.9">Unsychronized lyric/text transcription</td></tr>
<tr><td>4.3.1</td><td>WCOM</td><td><a href="#WCOM">Commercial information</a></td></tr>
<tr><td>4.3.1</td><td>WCOP</td><td><a href="#WCOP">Copyright/Legal information</a></td></tr>
<tr><td>4.3.1</td><td>WOAF</td><td><a href="#WOAF">Official audio file webpage</a></td></tr>
<tr><td>4.3.1</td><td>WOAR</td><td><a href="#WOAR">Official artist/performer webpage</a></td></tr>
<tr><td>4.3.1</td><td>WOAS</td><td><a href="#WOAS">Official audio source webpage</a></td></tr>
<tr><td>4.3.1</td><td>WORS</td><td><a href="#WORS">Official internet radio station homepage</a></td></tr>
<tr><td>4.3.1</td><td>WPAY</td><td><a href="#WPAY">Payment</a></td></tr>
<tr><td>4.3.1</td><td>WPUB</td><td><a href="#WPUB">Publishers official webpage</a></td></tr>
<tr><td>4.3.2</td><td>WXXX</td><td><a href="#WXXX">User defined URL link frame</a></td></tr>
</table></center>
</p>
<a name="sec4.1"> </a>
<h3>4.1.Unique file identifier</h3>
<p class=t>
This frame's purpose is to be able to identify the audio file in a
database that may contain more information relevant to the content.
Since standardisation of such a database is beyond this document, all
frames begin with a null-terminated string with a <a href="#URL">URL</a>
containing an email address, or a link to a location where an email
address can be found, that belongs to the organisation responsible
for this specific database implementation. Questions regarding the
database should be sent to the indicated email address. The <a href="#URL">URL</a>
should not be used for the actual database queries. The string
"http://www.id3.org/dummy/ufid.html" should be used for tests.
Software that isn't told otherwise may safely remove such frames. The
'Owner identifier' must be non-empty (more than just a termination).
The 'Owner identifier' is then followed by the actual identifier,
which may be up to 64 bytes. There may be more than one "UFID" frame
in a tag, but only one with the same 'Owner identifier'.
</p>
<p><center><table border=0 width="70%">
<tr><td colspan=2><Header for 'Unique file identifier', ID: "UFID"></td></tr>
<tr><td>Owner identifier</td><td width="80%"><text string> $00</td></tr>
<tr><td>Identifier</td><td><up to 64 bytes binary data></td></tr>
</table></center></p>
<a name="sec4.2"> </a>
<h3>4.2.Text information frames</h3>
<p class=t>
The text information frames are the most important frames, containing
information like artist, album and more. There may only be one text
information frame of its kind in an tag. If the textstring is
followed by a termination ($00 (00)) all the following information
should be ignored and not be displayed. All text frame identifiers
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -