-
Notifications
You must be signed in to change notification settings - Fork 3
/
id3v2.3.0.txt
2024 lines (1584 loc) · 77.4 KB
/
id3v2.3.0.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Informal standard M. Nilsson
Document: id3v2.3.0.txt 3rd February 1999
ID3 tag version 2.3.0
Status of this document
This document is an informal standard and replaces the ID3v2.2.0
standard [ID3v2]. The informal standard is released so that
implementors could have a set standard before a formal standard is
set. The formal standard will use another version or revision number
if not identical to what is described in this document. The contents
in this document may change for clarifications but never for added or
altered functionallity.
Distribution of this document is unlimited.
Abstract
This document describes the ID3v2.3.0, which is a more developed
version of the ID3v2 informal standard [ID3v2] (version 2.2.0),
evolved from the ID3 tagging system. The ID3v2 offers a flexible way
of storing information about an audio file within itself to determine
its origin and contents. The information may be technical
information, such as equalisation curves, as well as related meta
information, such as title, performer, copyright etc.
1. Table of contents
2. Conventions in this document
3. ID3v2 overview
3.1. ID3v2 header
3.2. ID3v2 extended header
3.3. ID3v2 frames overview
3.3.1. Frame header flags
3.3.2. Default flags
4. Declared ID3v2 frames
4.1. Unique file identifier
4.2. Text information frames
4.2.1. Text information frames - details
4.2.2. User defined text information frame
4.3. URL link frames
4.3.1. URL link frames - details
4.3.2. User defined URL link frame
4.4. Involved people list
4.5. Music CD Identifier
4.6. Event timing codes
4.7. MPEG location lookup table
4.8. Synced tempo codes
4.9. Unsychronised lyrics/text transcription
4.10. Synchronised lyrics/text
4.11. Comments
4.12. Relative volume adjustment
4.13. Equalisation
4.14. Reverb
4.15. Attached picture
4.16. General encapsulated object
4.17. Play counter
4.18. Popularimeter
4.19. Recommended buffer size
4.20. Audio encryption
4.21. Linked information
4.22. Position synchronisation frame
4.23. Terms of use
4.24. Ownership frame
4.25. Commercial frame
4.26. Encryption method registration
4.27. Group identification registration
4.28. Private frame
5. The 'unsynchronisation scheme'
6. Copyright
7. References
8. Appendix
A. Appendix A - Genre List from ID3v1
9. Author's Address
2. Conventions in this document
In the examples, text within "" is a text string exactly as it
appears in a file. Numbers preceded with $ are hexadecimal and
numbers preceded with % are binary. $xx is used to indicate a byte
with unknown content. %x is used to indicate a bit with unknown
content. The most significant bit (MSB) of a byte is called 'bit 7'
and the least significant bit (LSB) is called 'bit 0'.
A tag is the whole tag described in this document. A frame is a block
of information in the tag. The tag consists of a header, frames and
optional padding. A field is a piece of information; one value, a
string etc. A numeric string is a string that consists of the
characters 0-9 only.
3. ID3v2 overview
The two biggest design goals were to be able to implement ID3v2
without disturbing old software too much and that ID3v2 should be
as flexible and expandable as possible.
The first criterion is met by the simple fact that the MPEG [MPEG]
decoding software uses a syncsignal, embedded in the audiostream, to
'lock on to' the audio. Since the ID3v2 tag doesn't contain a valid
syncsignal, no software will attempt to play the tag. If, for any
reason, coincidence make a syncsignal appear within the tag it will
be taken care of by the 'unsynchronisation scheme' described in
section 5.
The second criterion has made a more noticeable impact on the design
of the ID3v2 tag. It is constructed as a container for several
information blocks, called frames, whose format need not be known to
the software that encounters them. At the start of every frame there
is an identifier that explains the frames' format and content, and a
size descriptor that allows software to skip unknown frames.
If a total revision of the ID3v2 tag should be needed, there is a
version number and a size descriptor in the ID3v2 header.
The ID3 tag described in this document is mainly targeted at files
encoded with MPEG-1/2 layer I, MPEG-1/2 layer II, MPEG-1/2 layer III
and MPEG-2.5, but may work with other types of encoded audio.
The bitorder in ID3v2 is most significant bit first (MSB). The
byteorder in multibyte numbers is most significant byte first (e.g.
$12345678 would be encoded $12 34 56 78).
It is permitted to include padding after all the final frame (at the
end of the ID3 tag), making the size of all the frames together
smaller than the size given in the head of the tag. A possible
purpose of this padding is to allow for adding a few additional
frames or enlarge existing frames within the tag without having to
rewrite the entire file. The value of the padding bytes must be $00.
3.1. ID3v2 header
The ID3v2 tag header, which should be the first information in the
file, is 10 bytes as follows:
ID3v2/file identifier "ID3"
ID3v2 version $03 00
ID3v2 flags %abc00000
ID3v2 size 4 * %0xxxxxxx
The first three bytes of the tag are always "ID3" to indicate that
this is an ID3v2 tag, directly followed by the two version bytes. The
first byte of ID3v2 version is it's major version, while the second
byte is its revision number. In this case this is ID3v2.3.0. All
revisions are backwards compatible while major versions are not. If
software with ID3v2.2.0 and below support should encounter version
three or higher it should simply ignore the whole tag. Version and
revision will never be $FF.
The version is followed by one the ID3v2 flags field, of which
currently only three flags are used.
a - Unsynchronisation
Bit 7 in the 'ID3v2 flags' indicates whether or not
unsynchronisation is used (see section 5 for details); a set bit
indicates usage.
b - Extended header
The second bit (bit 6) indicates whether or not the header is
followed by an extended header. The extended header is described in
section 3.2.
c - Experimental indicator
The third bit (bit 5) should be used as an 'experimental
indicator'. This flag should always be set when the tag is in an
experimental stage.
All the other flags should be cleared. If one of these undefined
flags are set that might mean that the tag is not readable for a
parser that does not know the flags function.
The ID3v2 tag size is encoded with four bytes where the most
significant bit (bit 7) is set to zero in every byte, making a total
of 28 bits. The zeroed bits are ignored, so a 257 bytes long tag is
represented as $00 00 02 01.
The ID3v2 tag size is the size of the complete tag after
unsychronisation, including padding, excluding the header but not
excluding the extended header (total tag size - 10). Only 28 bits
(representing up to 256MB) are used in the size description to avoid
the introducuction of 'false syncsignals'.
An ID3v2 tag can be detected with the following pattern:
$49 44 33 yy yy xx zz zz zz zz
Where yy is less than $FF, xx is the 'flags' byte and zz is less than
$80.
3.2. ID3v2 extended header
The extended header contains information that is not vital to the
correct parsing of the tag information, hence the extended header is
optional.
Extended header size $xx xx xx xx
Extended Flags $xx xx
Size of padding $xx xx xx xx
Where the 'Extended header size', currently 6 or 10 bytes, excludes
itself. The 'Size of padding' is simply the total tag size excluding
the frames and the headers, in other words the padding. The extended
header is considered separate from the header proper, and as such is
subject to unsynchronisation.
The extended flags are a secondary flag set which describes further
attributes of the tag. These attributes are currently defined as
follows
%x0000000 00000000
x - CRC data present
If this flag is set four bytes of CRC-32 data is appended to the
extended header. The CRC should be calculated before
unsynchronisation on the data between the extended header and the
padding, i.e. the frames and only the frames.
Total frame CRC $xx xx xx xx
3.3. ID3v2 frame overview
As the tag consists of a tag header and a tag body with one or more
frames, all the frames consists of a frame header followed by one or
more fields containing the actual information. The layout of the
frame header:
Frame ID $xx xx xx xx (four characters)
Size $xx xx xx xx
Flags $xx xx
The frame ID made out of the characters capital A-Z and 0-9.
Identifiers beginning with "X", "Y" and "Z" are for experimental use
and free for everyone to use, without the need to set the
experimental bit in the tag header. Have in mind that someone else
might have used the same identifier as you. All other identifiers are
either used or reserved for future use.
The frame ID is followed by a size descriptor, making a total header
size of ten bytes in every frame. The size is calculated as frame
size excluding frame header (frame size - 10).
In the frame header the size descriptor is followed by two flags
bytes. These flags are described in section 3.3.1.
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: UFID, TIT2, MCDI, TRCK ...
A tag must contain at least one frame. A frame must be at least 1
byte big, excluding the header.
If nothing else is said a string is represented as ISO-8859-1
[ISO-8859-1] 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 Unicode strings [UNICODE] 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.
All numeric strings and URLs [URL] are always encoded as ISO-8859-1.
Terminated strings are terminated with $00 if encoded with ISO-8859-1
and $00 00 if encoded as unicode. If nothing else is said newline
character is forbidden. In ISO-8859-1 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 ISO-8859-1 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
Unicode strings which are NULL-terminated may have the Unicode BOM
followed by a Unicode NULL ($FF FE 00 00 or $FE FF 00 00).
The three byte language field is used to describe the language of the
frame's content, according to ISO-639-2 [ISO-639-2].
All URLs [URL] may be relative, e.g. "picture.png", "../doc.txt".
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.
3.3.1. Frame header flags
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.
%abc00000 %ijk00000
a - Tag alter preservation
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.
0 Frame should be preserved.
1 Frame should be discarded.
b - File alter preservation
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.
0 Frame should be preserved.
1 Frame should be discarded.
c - Read only
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.
i - Compression
This flag indicates whether or not the frame is compressed.
0 Frame is not compressed.
1 Frame is compressed using zlib [zlib] with 4 bytes for
'decompressed size' appended to the frame header.
j - Encryption
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 section 4.26. for more
information about encryption method registration.
0 Frame is not encrypted.
1 Frame is encrypted.
k - Grouping identity
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.
0 Frame does not contain group information
1 Frame contains group information
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.
3.3.2. Default flags
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.
1. Discarded if tag is altered, discarded if file is altered.
None.
2. Discarded if tag is altered, preserved if file is altered.
None.
3. Preserved if tag is altered, discarded if file is altered.
AENC, ETCO, EQUA, MLLT, POSS, SYLT, SYTC, RVAD, TENC, TLEN, TSIZ
4. Preserved if tag is altered, preserved if file is altered.
The rest of the frames.
4. Declared ID3v2 frames
The following frames are declared in this draft.
4.21 AENC Audio encryption
4.15 APIC Attached picture
4.11 COMM Comments
4.25 COMR Commercial frame
4.26 ENCR Encryption method registration
4.13 EQUA Equalization
4.6 ETCO Event timing codes
4.16 GEOB General encapsulated object
4.27 GRID Group identification registration
4.4 IPLS Involved people list
4.21 LINK Linked information
4.5 MCDI Music CD identifier
4.7 MLLT MPEG location lookup table
4.24 OWNE Ownership frame
4.28. PRIV Private frame
4.17 PCNT Play counter
4.18 POPM Popularimeter
4.22 POSS Position synchronisation frame
4.19 RBUF Recommended buffer size
4.12 RVAD Relative volume adjustment
4.14 RVRB Reverb
4.10 SYLT Synchronized lyric/text
4.8 SYTC Synchronized tempo codes
4.2.1 TALB Album/Movie/Show title
4.2.1 TBPM BPM (beats per minute)
4.2.1 TCOM Composer
4.2.1 TCON Content type
4.2.1 TCOP Copyright message
4.2.1 TDAT Date
4.2.1 TDLY Playlist delay
4.2.1 TENC Encoded by
4.2.1 TEXT Lyricist/Text writer
4.2.1 TFLT File type
4.2.1 TIME Time
4.2.1 TIT1 Content group description
4.2.1 TIT2 Title/songname/content description
4.2.1 TIT3 Subtitle/Description refinement
4.2.1 TKEY Initial key
4.2.1 TLAN Language(s)
4.2.1 TLEN Length
4.2.1 TMED Media type
4.2.1 TOAL Original album/movie/show title
4.2.1 TOFN Original filename
4.2.1 TOLY Original lyricist(s)/text writer(s)
4.2.1 TOPE Original artist(s)/performer(s)
4.2.1 TORY Original release year
4.2.1 TOWN File owner/licensee
4.2.1 TPE1 Lead performer(s)/Soloist(s)
4.2.1 TPE2 Band/orchestra/accompaniment
4.2.1 TPE3 Conductor/performer refinement
4.2.1 TPE4 Interpreted, remixed, or otherwise modified by
4.2.1 TPOS Part of a set
4.2.1 TPUB Publisher
4.2.1 TRCK Track number/Position in set
4.2.1 TRDA Recording dates
4.2.1 TRSN Internet radio station name
4.2.1 TRSO Internet radio station owner
4.2.1 TSIZ Size
4.2.1 TSRC ISRC (international standard recording code)
4.2.1 TSSE Software/Hardware and settings used for encoding
4.2.1 TYER Year
4.2.2 TXXX User defined text information frame
4.1 UFID Unique file identifier
4.23 USER Terms of use
4.9 USLT Unsychronized lyric/text transcription
4.3.1 WCOM Commercial information
4.3.1 WCOP Copyright/Legal information
4.3.1 WOAF Official audio file webpage
4.3.1 WOAR Official artist/performer webpage
4.3.1 WOAS Official audio source webpage
4.3.1 WORS Official internet radio station homepage
4.3.1 WPAY Payment
4.3.1 WPUB Publishers official webpage
4.3.2 WXXX User defined URL link frame
4.1. Unique file identifier
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 URL [URL]
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 URL
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'.
<Header for 'Unique file identifier', ID: "UFID">
Owner identifier <text string> $00
Identifier <up to 64 bytes binary data>
4.2. Text information frames
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
begin with "T". Only text frame identifiers begin with "T", with the
exception of the "TXXX" frame. All the text information frames have
the following format:
<Header for 'Text information frame', ID: "T000" - "TZZZ",
excluding "TXXX" described in 4.2.2.>
Text encoding $xx
Information <text string according to encoding>
4.2.1. Text information frames - details
TALB
The 'Album/Movie/Show title' frame is intended for the title of the
recording(/source of sound) which the audio in the file is taken
from.
TBPM
The 'BPM' frame contains the number of beats per minute in the
mainpart of the audio. The BPM is an integer and represented as a
numerical string.
TCOM
The 'Composer(s)' frame is intended for the name of the composer(s).
They are seperated with the "/" character.
TCON
The 'Content type', which previously was stored as a one byte numeric
value only, is now a numeric string. You may use one or several of
the types as ID3v1.1 did or, since the category list would be
impossible to maintain with accurate and up to date categories,
define your own.
References to the ID3v1 genres can be made by, as first byte, enter
"(" followed by a number from the genres list (appendix A.) and
ended with a ")" character. This is optionally followed by a
refinement, e.g. "(21)" or "(4)Eurodisco". Several references can be
made in the same frame, e.g. "(51)(39)". If the refinement should
begin with a "(" character it should be replaced with "((", e.g. "((I
can figure out any genre)" or "(55)((I think...)". The following new
content types is defined in ID3v2 and is implemented in the same way
as the numerig content types, e.g. "(RX)".
RX Remix
CR Cover
TCOP
The 'Copyright message' frame, which must begin with a year and a
space character (making five characters), is intended for the
copyright holder of the original sound, not the audio file itself.
The absence of this frame means only that the copyright information
is unavailable or has been removed, and must not be interpreted to
mean that the sound is public domain. Every time this field is
displayed the field must be preceded with "Copyright " (C) " ", where
(C) is one character showing a C in a circle.
TDAT
The 'Date' frame is a numeric string in the DDMM format containing
the date for the recording. This field is always four characters
long.
TDLY
The 'Playlist delay' defines the numbers of milliseconds of silence
between every song in a playlist. The player should use the "ETC"
frame, if present, to skip initial silence and silence at the end of
the audio to match the 'Playlist delay' time. The time is represented
as a numeric string.
TENC
The 'Encoded by' frame contains the name of the person or
organisation that encoded the audio file. This field may contain a
copyright message, if the audio file also is copyrighted by the
encoder.
TEXT
The 'Lyricist(s)/Text writer(s)' frame is intended for the writer(s)
of the text or lyrics in the recording. They are seperated with the
"/" character.
TFLT
The 'File type' frame indicates which type of audio this tag defines.
The following type and refinements are defined:
MPG MPEG Audio
/1 MPEG 1/2 layer I
/2 MPEG 1/2 layer II
/3 MPEG 1/2 layer III
/2.5 MPEG 2.5
/AAC Advanced audio compression
VQF Transform-domain Weighted Interleave Vector Quantization
PCM Pulse Code Modulated audio
but other types may be used, not for these types though. This is used
in a similar way to the predefined types in the "TMED" frame, but
without parentheses. If this frame is not present audio type is
assumed to be "MPG".
TIME
The 'Time' frame is a numeric string in the HHMM format containing
the time for the recording. This field is always four characters
long.
TIT1
The 'Content group description' frame is used if the sound belongs to
a larger category of sounds/music. For example, classical music is
often sorted in different musical sections (e.g. "Piano Concerto",
"Weather - Hurricane").
TIT2
The 'Title/Songname/Content description' frame is the actual name of
the piece (e.g. "Adagio", "Hurricane Donna").
TIT3
The 'Subtitle/Description refinement' frame is used for information
directly related to the contents title (e.g. "Op. 16" or "Performed
live at Wembley").
TKEY
The 'Initial key' frame contains the musical key in which the sound
starts. It is represented as a string with a maximum length of three
characters. The ground keys are represented with "A","B","C","D","E",
"F" and "G" and halfkeys represented with "b" and "#". Minor is
represented as "m". Example "Cbm". Off key is represented with an "o"
only.
TLAN
The 'Language(s)' frame should contain the languages of the text or
lyrics spoken or sung in the audio. The language is represented with
three characters according to ISO-639-2. If more than one language is
used in the text their language codes should follow according to
their usage.
TLEN
The 'Length' frame contains the length of the audiofile in
milliseconds, represented as a numeric string.
TMED
The 'Media type' frame describes from which media the sound
originated. This may be a text string or a reference to the
predefined media types found in the list below. References are made
within "(" and ")" and are optionally followed by a text refinement,
e.g. "(MC) with four channels". If a text refinement should begin
with a "(" character it should be replaced with "((" in the same way
as in the "TCO" frame. Predefined refinements is appended after the
media type, e.g. "(CD/A)" or "(VID/PAL/VHS)".
DIG Other digital media
/A Analog transfer from media
ANA Other analog media
/WAC Wax cylinder
/8CA 8-track tape cassette
CD CD
/A Analog transfer from media
/DD DDD
/AD ADD
/AA AAD
LD Laserdisc
/A Analog transfer from media
TT Turntable records
/33 33.33 rpm
/45 45 rpm
/71 71.29 rpm
/76 76.59 rpm
/78 78.26 rpm
/80 80 rpm
MD MiniDisc
/A Analog transfer from media
DAT DAT
/A Analog transfer from media
/1 standard, 48 kHz/16 bits, linear
/2 mode 2, 32 kHz/16 bits, linear
/3 mode 3, 32 kHz/12 bits, nonlinear, low speed
/4 mode 4, 32 kHz/12 bits, 4 channels
/5 mode 5, 44.1 kHz/16 bits, linear
/6 mode 6, 44.1 kHz/16 bits, 'wide track' play
DCC DCC
/A Analog transfer from media
DVD DVD
/A Analog transfer from media
TV Television
/PAL PAL
/NTSC NTSC
/SECAM SECAM
VID Video
/PAL PAL
/NTSC NTSC
/SECAM SECAM
/VHS VHS
/SVHS S-VHS
/BETA BETAMAX
RAD Radio
/FM FM
/AM AM
/LW LW
/MW MW
TEL Telephone
/I ISDN
MC MC (normal cassette)
/4 4.75 cm/s (normal speed for a two sided cassette)
/9 9.5 cm/s
/I Type I cassette (ferric/normal)
/II Type II cassette (chrome)
/III Type III cassette (ferric chrome)
/IV Type IV cassette (metal)
REE Reel
/9 9.5 cm/s
/19 19 cm/s
/38 38 cm/s
/76 76 cm/s
/I Type I cassette (ferric/normal)
/II Type II cassette (chrome)
/III Type III cassette (ferric chrome)
/IV Type IV cassette (metal)
TOAL
The 'Original album/movie/show title' frame is intended for the title
of the original recording (or source of sound), if for example the
music in the file should be a cover of a previously released song.
TOFN
The 'Original filename' frame contains the preferred filename for the
file, since some media doesn't allow the desired length of the
filename. The filename is case sensitive and includes its suffix.
TOLY
The 'Original lyricist(s)/text writer(s)' frame is intended for the
text writer(s) of the original recording, if for example the music in
the file should be a cover of a previously released song. The text
writers are seperated with the "/" character.
TOPE
The 'Original artist(s)/performer(s)' frame is intended for the
performer(s) of the original recording, if for example the music in
the file should be a cover of a previously released song. The
performers are seperated with the "/" character.
TORY
The 'Original release year' frame is intended for the year when the
original recording, if for example the music in the file should be a
cover of a previously released song, was released. The field is
formatted as in the "TYER" frame.
TOWN
The 'File owner/licensee' frame contains the name of the owner or
licensee of the file and it's contents.
TPE1
The 'Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group' is
used for the main artist(s). They are seperated with the "/"
character.
TPE2
The 'Band/Orchestra/Accompaniment' frame is used for additional
information about the performers in the recording.
TPE3
The 'Conductor' frame is used for the name of the conductor.
TPE4
The 'Interpreted, remixed, or otherwise modified by' frame contains
more information about the people behind a remix and similar
interpretations of another existing piece.
TPOS
The 'Part of a set' frame is a numeric string that describes which
part of a set the audio came from. This frame is used if the source
described in the "TALB" frame is divided into several mediums, e.g. a
double CD. The value may be extended with a "/" character and a
numeric string containing the total number of parts in the set. E.g.
"1/2".
TPUB
The 'Publisher' frame simply contains the name of the label or
publisher.
TRCK
The 'Track number/Position in set' frame is a numeric string
containing the order number of the audio-file on its original
recording. This may be extended with a "/" character and a numeric
string containing the total numer of tracks/elements on the original
recording. E.g. "4/9".
TRDA
The 'Recording dates' frame is a intended to be used as complement to
the "TYER", "TDAT" and "TIME" frames. E.g. "4th-7th June, 12th June"
in combination with the "TYER" frame.
TRSN
The 'Internet radio station name' frame contains the name of the
internet radio station from which the audio is streamed.
TRSO
The 'Internet radio station owner' frame contains the name of the
owner of the internet radio station from which the audio is
streamed.
TSIZ
The 'Size' frame contains the size of the audiofile in bytes,
excluding the ID3v2 tag, represented as a numeric string.
TSRC
The 'ISRC' frame should contain the International Standard Recording
Code [ISRC] (12 characters).
TSSE
The 'Software/Hardware and settings used for encoding' frame
includes the used audio encoder and its settings when the file was
encoded. Hardware refers to hardware encoders, not the computer on
which a program was run.
TYER
The 'Year' frame is a numeric string with a year of the recording.
This frames is always four characters long (until the year 10000).
4.2.2. User defined text information frame
This frame is intended for one-string text information concerning the
audiofile in a similar way to the other "T"-frames. The frame body
consists of a description of the string, represented as a terminated
string, followed by the actual string. There may be more than one
"TXXX" frame in each tag, but only one with the same description.
<Header for 'User defined text information frame', ID: "TXXX">
Text encoding $xx
Description <text string according to encoding> $00 (00)
Value <text string according to encoding>
4.3. URL link frames
With these frames dynamic data such as webpages with touring
information, price information or plain ordinary news can be added to
the tag. There may only be one URL [URL] link frame of its kind in an
tag, except when stated otherwise in the frame description. If the
textstring is followed by a termination ($00 (00)) all the following
information should be ignored and not be displayed. All URL link
frame identifiers begins with "W". Only URL link frame identifiers
begins with "W". All URL link frames have the following format:
<Header for 'URL link frame', ID: "W000" - "WZZZ", excluding "WXXX"
described in 4.3.2.>
URL <text string>
4.3.1. URL link frames - details
WCOM
The 'Commercial information' frame is a URL pointing at a webpage
with information such as where the album can be bought. There may be
more than one "WCOM" frame in a tag, but not with the same content.
WCOP
The 'Copyright/Legal information' frame is a URL pointing at a
webpage where the terms of use and ownership of the file is
described.
WOAF
The 'Official audio file webpage' frame is a URL pointing at a file
specific webpage.
WOAR
The 'Official artist/performer webpage' frame is a URL pointing at
the artists official webpage. There may be more than one "WOAR" frame
in a tag if the audio contains more than one performer, but not with
the same content.
WOAS
The 'Official audio source webpage' frame is a URL pointing at the
official webpage for the source of the audio file, e.g. a movie.
WORS
The 'Official internet radio station homepage' contains a URL
pointing at the homepage of the internet radio station.
WPAY
The 'Payment' frame is a URL pointing at a webpage that will handle
the process of paying for this file.
WPUB
The 'Publishers official webpage' frame is a URL pointing at the
official wepage for the publisher.
4.3.2. User defined URL link frame
This frame is intended for URL [URL] links concerning the audiofile
in a similar way to the other "W"-frames. The frame body consists
of a description of the string, represented as a terminated string,
followed by the actual URL. The URL is always encoded with ISO-8859-1
[ISO-8859-1]. There may be more than one "WXXX" frame in each tag,
but only one with the same description.
<Header for 'User defined URL link frame', ID: "WXXX">
Text encoding $xx
Description <text string according to encoding> $00 (00)
URL <text string>
4.4. Involved people list
Since there might be a lot of people contributing to an audio file in
various ways, such as musicians and technicians, the 'Text
information frames' are often insufficient to list everyone involved
in a project. The 'Involved people list' is a frame containing the
names of those involved, and how they were involved. The body simply
contains a terminated string with the involvement directly followed
by a terminated string with the involvee followed by a new
involvement and so on. There may only be one "IPLS" frame in each
tag.
<Header for 'Involved people list', ID: "IPLS">
Text encoding $xx
People list strings <text strings according to encoding>
4.5. Music CD identifier
This frame is intended for music that comes from a CD, so that the CD
can be identified in databases such as the CDDB [CDDB]. The frame
consists of a binary dump of the Table Of Contents, TOC, from the CD,
which is a header of 4 bytes and then 8 bytes/track on the CD plus 8
bytes for the 'lead out' making a maximum of 804 bytes. The offset to
the beginning of every track on the CD should be described with a
four bytes absolute CD-frame address per track, and not with absolute
time. This frame requires a present and valid "TRCK" frame, even if
the CD's only got one track. There may only be one "MCDI" frame in
each tag.
<Header for 'Music CD identifier', ID: "MCDI">
CD TOC <binary data>
4.6. Event timing codes
This frame allows synchronisation with key events in a song or sound.
The header is:
<Header for 'Event timing codes', ID: "ETCO">
Time stamp format $xx
Where time stamp format is:
$01 Absolute time, 32 bit sized, using MPEG [MPEG] frames as unit
$02 Absolute time, 32 bit sized, using milliseconds as unit
Abolute time means that every stamp contains the time from the
beginning of the file.
Followed by a list of key events in the following format:
Type of event $xx
Time stamp $xx (xx ...)
The 'Time stamp' is set to zero if directly at the beginning of the
sound or after the previous event. All events should be sorted in
chronological order. The type of event is as follows: