-
Notifications
You must be signed in to change notification settings - Fork 251
Description
I wish to preserve all COMM frames in an id3 tag. Each frame has a different description but the same language: eng.
Here is the data away being passed to getID3 from Ampache's vainfo.php wrapper:
2025-09-19T21:26:21+00:00 [admin] (Ampache\Module\Song\Tag\SongTagWriter) -> After write_id3, $result[id3v2][COMM]: Array
(
[0] => Array
(
[frame_name] => COMM
[frame_flags_raw] => 0
[data] => POOR
[datalength] => 30
[dataoffset] => 130
[framenamelong] => Comments
[framenameshort] => comment
[flags] => Array
(
[TagAlterPreservation] =>
[FileAlterPreservation] =>
[ReadOnly] =>
[compression] =>
[Encryption] =>
[GroupingIdentity] =>
)
[description] => MusicMatch_Preference
[encodingid] => 0
[encoding] => ISO-8859-1
[language] => eng
[languagename] => English
)
[1] => Array
(
[frame_name] => COMM
[frame_flags_raw] => 0
[data] => Comment set but user to rememeber track details.
[datalength] => 49
[dataoffset] => 1234
[framenamelong] => Comments
[framenameshort] => comment
[flags] => Array
(
[TagAlterPreservation] =>
[FileAlterPreservation] =>
[ReadOnly] =>
[compression] =>
[Encryption] =>
[GroupingIdentity] =>
)
[description] =>
[encodingid] => 0
[encoding] => ISO-8859-1
[language] => eng
[languagename] => English
)
[2] => Array
(
[frame_name] => COMM
[frame_flags_raw] => 0
[data] => Excellent copy
[datalength] => 38
[dataoffset] => 1620
[framenamelong] => Comments
[framenameshort] => comment
[flags] => Array
(
[TagAlterPreservation] =>
[FileAlterPreservation] =>
[ReadOnly] =>
[compression] =>
[Encryption] =>
[GroupingIdentity] =>
)
[description] => SONGS-DB_PREFERENCE
[encodingid] => 0
[encoding] => ISO-8859-1
[language] => eng
[languagename] => English
)
)
here is what getid3 returns:
2025-09-19T21:26:21+00:00 [admin] (Ampache\Module\Util\VaInfo) -> [DynamicEncCode] Error Writing Tags: WriteID3v2() failed with message(s):
- Only one COMM tag allowed with the same Language + Description (eng + )
- Frame "COMM" is NOT allowed
- $this->GenerateID3v2FrameData() failed for "COMM"
- $this->GenerateID3v2Tag() failed
however as you can see from inspecting the data array, the data does not match the error. Each COMM frame has a different description and the same language "eng". The frames with descriptions are set by software after analyzing the mp3 structure. The COMM frame with no description is set by tagging software. I wish to keep all three as they all contain valuable data.
Why is this data set throwing this error? Is it a bug or is the error description inaccurate?