MP3::Ta...v2_Data(3)
π NAME π
okay so bestie, this is the manual page for MP3::Tag::ID3v2_Data β literally get_frame() data format and supported frames. That's the whole vibe. π
π SYNOPSIS π
The flow is giving main character energy:
$mp3 = MP3::Tag->new($filename);
$mp3->get_tags();
$id3v2 = $mp3->{ID3v2} if exists $mp3->{id3v2};
($info, $long) = $id3v2->get_frame($id); # or
($info, $long) = $id3v2->get_frame($id, 'raw');
β¨ DESCRIPTION β¨
This doc is your cheat sheet for using what the get_frame function of MP3::Tag::ID3v2 gives back β aka the data format of frames retrieved with MP3::Tag::ID3v2::get_frame().
It also contains a list of all supported ID3v2-Frames. slay. π
π«Ά get_frame() π«Ά
($info, $long) = $id3v2->get_frame($id); # or
($info, $long) = $id3v2->get_frame($id, 'raw');
$id has to be a name of a frame like "APIC". For more variants of calling, see get_frame().
The names of all frames found in a tag can be retrieved with the get_frame_ids() function.
π§ Using the returned data π§
In the ID3v2.3 specifications, 73 frames are defined, and they can contain very different information. That means get_frame returns the information of different frames in different ways too. no cap, it's multi-dimensional. π¦
πΈ Simple Frames πΈ
A lot of the tags contain only a text string and encoding information. If you call ($info, $long) = $id3v2->get_frame($id) for such a frame, $info will contain the text string and $long will contain the English name of the frame.
Example:
get_frame("TIT2"); # returns
("Birdhouse In Your Soul", "Title/songname/content description")
π¦ Complex Frames π¦
For more complex frames, the returned $info is a reference to a hash, where each entry of the hash describes a part of the information found in the frame. The key of a hash entry contains the name of this part, and the according value contains the information itself.
Example:
get_frame("APIC"); # returns
( { "Description" => "Flood",
"MIME Type" => "/image/jpeg",
"Picture Type" => "Cover (front)",
"_Data" => "..data of jpeg picture (binary).."
},
"Attached Picture");
π Other Frames π
Some frames are not supported at the moment β meaning the data found in the frame is not returned in a descriptive way. But you can read the data of these frames (and also of all other frames too) in raw mode. Then the complete data field of the frame is returned without any modifications. This means the returned data will be almost binary data. careful bestie, it's giving raw bytes. π
Example:
get_frame("TIT2", 'raw'); # returns
("\x00Birdhouse In Your Soul", "Title/songname/content description")
The frames which (in addition to "Text"/"URL") contain only "Description" and "Language" fields are in some intermediate position between "simple" and "complex" frames. They can be handled very similarly to "simple" frames by using "long names", such as "COMM[description]" or "COMM(LANG)[description]", and the corresponding "quick" API such as frame_select().
π List of Simple Frames π
Following Frames are supported and return a single string (text). In the List you can find the frame IDs and the long names of the frames as returned by $id3v2->get_frame():
IPLSβ Involved people listMCDIβ Music CD identifierPCNTβ Play counterTALBβ Album/Movie/Show titleTBPMβ BPM (beats per minute)TCOMβ ComposerTCONβ Content typeTCOPβ Copyright messageTDATβ DateTDLYβ Playlist delayTDRCβ Recording timeTENCβ Encoded byTEXTβ Lyricist/Text writerTFLTβ File typeTIMEβ TimeTIPLβ Involved people listTIT1β Content group descriptionTIT2β Title/songname/content descriptionTIT3β Subtitle/Description refinementTKEYβ Initial keyTLANβ Language(s)TLENβ LengthTMCLβ Musician credits listTMEDβ Media typeTOALβ Original album/movie/show titleTOFNβ Original filenameTOLYβ Original lyricist(s)/text writer(s)TOPEβ Original artist(s)/performer(s)TORYβ Original release yearTOWNβ File owner/licenseeTPE1β Lead performer(s)/Soloist(s)TPE2β Band/orchestra/accompanimentTPE3β Conductor/performer refinementTPE4β Interpreted, remixed, or otherwise modified byTPOSβ Part of a setTPUBβ PublisherTRCKβ Track number/Position in setTRDAβ Recording datesTRSNβ Internet radio station nameTRSOβ Internet radio station ownerTSIZβ SizeTSRCβ ISRC (international standard recording code)TSSEβ Software/Hardware and settings used for encodingTYERβ YearWCOMβ Commercial informationWCOPβ Copyright/Legal informationWOAFβ Official audio file webpageWOARβ Official artist/performer webpageWOASβ Official audio source webpageWORSβ Official internet radio station homepageWPAYβ PaymentWPUBβ Publishers official webpage
π List of Complex Frames π
Following frames are supported and return a reference to a hash. The list shows which keys can be found in the returned hash:
AENCβ Audio encryption. Keys:URL,Preview start,Preview length,_DataAPICβ Attached picture. Keys:MIME type,Picture Type,Description,_DataCOMMβ Comments. Keys:Language,Description,TextCOMRβ Commercial frame. Keys:Price,Valid until,URL,Received as,Name of Seller,Description,MIME type,_LogoENCRβ Encryption method registration. Keys:Owner ID,Method symbol,_DataGEOBβ General encapsulated object. Keys:MIME type,Filename,Description,_DataGRIDβ Group identification registration. Keys:Owner,Symbol,_DataLINKβ Linked information. Keys:ID,URL,TextOWNEβ Ownership frame. Keys:Price payed,Date of purchase,TextPOPMβ Popularimeter. Keys:URL,Rating,CounterPRIVβ Private frame. Keys:Text,_DataRBUFβ Recommended buffer size. Keys:Buffer size,Embedded info flag,Offset to next tagRVRBβ Reverb. Keys:Reverb left (ms),Reverb right (ms),Reverb bounces (left),Reverb bounces (right),Reverb feedback (left to left),Reverb feedback (left to right),Reverb feedback (right to right),Reverb feedback (right to left),Premix left to right,Premix right to leftSYTCβ Synchronized tempo codes. Keys:Time Stamp Format,_DataTXXXβ User defined text information frame. Keys:Description,TextUFIDβ Unique file identifier. Keys:Text,_DataUSERβ Terms of use. Keys:Language,TextUSLTβ Unsychronized lyric/text transcription. Keys:Language,Description,TextWXXXβ User defined URL link frame. Keys:Description,URL
π List of Other Frames π
Following frames are only supported in raw mode:
CRMβ Encrypted meta frameEQUAβ EqualizationETCOβ Event timing codesLNKβ Linked informationMLLTβ MPEG location lookup tablePICβ Attached picturePOSSβ Position synchronisation frameRVADβ Relative volume adjustmentSYLTβ Synchronized lyric/text
π SEE ALSO π
Go check out MP3::Tag and MP3::Tag::ID3v2 β bestie reading, fr fr. π«Ά
π okay that's the whole page β shipped with perl v5.42.3, dated 2022-11-25. byeee, go tag some MP3s π«Ά
π¦ where this page comes from
- nixos 26.05: perl5.42.3-MP3-Tag 1.16
- nixpkgs unstable: perl5.42.3-MP3-Tag 1.16
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms