2017-02-25 23:38 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0004649MPDMetadatapublic2017-02-17 22:49
Reportertungol 
Assigned Tocirrus 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionwon't fix 
Platformx86_64OSFreeBSDOS Version11.0
Product Version0.20 
Target VersionFixed in Version 
Summary0004649: multi-value tags not reading correctly for MP3s
DescriptionThe tags MUSICBRAINZ_ALBUMARTISTID and MUSICBRAINZ_ARTISTID tags can contain multiple values. FLAC files are read correctly into the database:

lsinfo "artists by genre/Indie Folk/Mount Eerie with Julie Doiron & Fred Squire/2008-10-07 Lost Wisdom/01 Lost Wisdom.flac"
file: artists by genre/Indie Folk/Mount Eerie with Julie Doiron & Fred Squire/2008-10-07 Lost Wisdom/01 Lost Wisdom.flac
Last-Modified: 2017-02-17T01:03:40Z
Time: 267
duration: 267.160
Title: Lost Wisdom
MUSICBRAINZ_ALBUMARTISTID: e5306b29-16c0-4520-bb05-6b21f041b2f0
MUSICBRAINZ_ALBUMARTISTID: 44727d86-a37c-449f-aa91-4a8554127336
MUSICBRAINZ_ALBUMARTISTID: 25fcd6b4-981f-40c8-908f-24b15d3c0401
Date: 2008-10-07
Disc: 1
AlbumArtistSort: Mount Eerie with Doiron, Julie & Squire, Frederick
MUSICBRAINZ_ALBUMID: ed6393d5-4258-44c9-a11d-a22ee9de33b8
AlbumArtist: Mount Eerie with Julie Doiron & Fred Squire
MUSICBRAINZ_RELEASETRACKID: 22316df1-413e-355e-bf9a-bf8c6bd80c85
Album: Lost Wisdom
MUSICBRAINZ_ARTISTID: e5306b29-16c0-4520-bb05-6b21f041b2f0
MUSICBRAINZ_ARTISTID: 44727d86-a37c-449f-aa91-4a8554127336
MUSICBRAINZ_ARTISTID: 25fcd6b4-981f-40c8-908f-24b15d3c0401
Performer: Julie Doiron (guest)
Artist: Mount Eerie with Julie Doiron & Fred Squire
MUSICBRAINZ_TRACKID: 8067d50e-8057-432f-9802-120f337402ca
ArtistSort: Mount Eerie with Doiron, Julie & Squire, Frederick
Track: 1
OK

but mp3 files are not, returning only the first value (in this case just for MUSICBRAINZ_ALBUMARTISTID):

lsinfo "artists by genre/Indie Folk/Belly Boat _ Sneakypines _ Mount Eerie _ Thanksgiving/EPs/2006 Four Band Split/01 Belly Boat - Give Me a Pot to Piss in and I'll Give You Something to Drink.mp3"
file: artists by genre/Indie Folk/Belly Boat _ Sneakypines _ Mount Eerie _ Thanksgiving/EPs/2006 Four Band Split/01 Belly Boat - Give Me a Pot to Piss in and I'll Give You Something to Drink.mp3
Last-Modified: 2016-11-26T07:57:32Z
Time: 243
duration: 242.544
Artist: Belly Boat
AlbumArtist: Belly Boat / Sneakypines / Mount Eerie / Thanksgiving
ArtistSort: Belly Boat
AlbumArtistSort: Belly Boat / Sneakypines / Mount Eerie / Thanksgiving
Title: Give Me a Pot to Piss in and I'll Give You Something to Drink
Album: Four Band Split
Track: 1/4
Date: 2006
Disc: 1/1
MUSICBRAINZ_ALBUMARTISTID: 5760730d-6386-446c-9806-7dabd7b29779
MUSICBRAINZ_ARTISTID: 5760730d-6386-446c-9806-7dabd7b29779
MUSICBRAINZ_RELEASETRACKID: 353e9631-738b-4d5b-88f5-9803e92183b8
MUSICBRAINZ_ALBUMID: de29078f-5ee7-4486-9a2f-903ad316d8a2
MUSICBRAINZ_TRACKID: ed64ff37-e68a-4ce6-874c-c546767e33d3
OK

This example should show multiple entries for MUSICBRAINZ_RELEASETRACKID. It looks like Picard (the musicbrainz tagger and usual source for these tags) is embedding the values with null bytes between each, here's hexdump -C:

00000110 70 65 00 65 70 54 58 58 58 00 00 01 30 00 00 03 |pe.epTXXX...0...|
00000120 4d 75 73 69 63 42 72 61 69 6e 7a 20 41 6c 62 75 |MusicBrainz Albu|
00000130 6d 20 41 72 74 69 73 74 20 49 64 00 35 37 36 30 |m Artist Id.5760|
00000140 37 33 30 64 2d 36 33 38 36 2d 34 34 36 63 2d 39 |730d-6386-446c-9|
00000150 38 30 36 2d 37 64 61 62 64 37 62 32 39 37 37 39 |806-7dabd7b29779|
00000160 00 62 64 30 32 61 33 34 30 2d 36 63 64 32 2d 34 |.bd02a340-6cd2-4|
00000170 37 61 34 2d 39 62 65 63 2d 30 34 63 33 36 34 33 |7a4-9bec-04c3643|
00000180 62 65 39 30 37 00 65 35 33 30 36 62 32 39 2d 31 |be907.e5306b29-1|
00000190 36 63 30 2d 34 35 32 30 2d 62 62 30 35 2d 36 62 |6c0-4520-bb05-6b|
000001a0 32 31 66 30 34 31 62 32 66 30 00 63 66 30 36 66 |21f041b2f0.cf06f|
000001b0 36 64 37 2d 61 32 31 66 2d 34 37 63 38 2d 61 32 |6d7-a21f-47c8-a2|
000001c0 33 31 2d 61 61 31 63 35 30 64 66 33 31 37 33 54 |31-aa1c50df3173T|
000001d0 58 58 58 00 00 00 3b 00 00 03 4d 75 73 69 63 42 |XXX...;...MusicB|
Steps To Reproduceenable MUSICBRAINZ_* tags in mpd
Tag an mp3 file with multiple artists or multiple album artists using picard
update mpd database
query the database for the file's metadata
Additional Informationrelated to https://bugs.musicpd.org/view.php?id=4281 but for database supported tags, not readcomments
TagsNo tags attached.
Attached Files

-Relationships
+Relationships

-Notes

~0010362

cirrus (administrator)

I need an example file.

~0010369

tungol (reporter)

I uploaded example.mp3 which is tagged with multiple artists and multiple album artists.

~0010371

cirrus (administrator)

The file you uploaded violates the ID3v2.4 standard, see http://id3.org/id3v2.4.0-frames.

While "Text information frames" (section 4.2) "supports multiple strings, stored as a null separated list", the "User defined text information frame" (section 4.2.6) is excluded; its definition:

"This frame is intended for one-string text information"

Note that this, and the technical description below explicitly disallows multiple values!

"Value <text string according to encoding>"

"Text string" is singular, while section 4.2 says "text string(s)" (plural)

Note the following text in 4.2.6:

"There may be more than one "TXXX" frame in each tag, but only one with the same description."

This not only disallows multiple values in one TXXX frame, but also disallows specifying more values in other TXXX frames. According to the ID3v2.4 standard, it is impossible to have more than one MusicBrainz artist.

I'm sorry, but that's how it is. And it's not even a limitation implemented by MPD; MPD would happily parse multiple TXXX frames, and would not discard them.

Just multiple values in one TXXX frame (what this ticket is about) is not understood by MPD, not due to standard lawyering, but due to libid3tag being unable to access them.
+Notes

-Issue History
Date Modified Username Field Change
2017-02-17 02:51 tungol New Issue
2017-02-17 02:51 tungol Status new => assigned
2017-02-17 02:51 tungol Assigned To => cirrus
2017-02-17 08:52 cirrus Note Added: 0010362
2017-02-17 20:25 tungol File Added: example.mp3
2017-02-17 20:26 tungol Note Added: 0010369
2017-02-17 22:49 cirrus Status assigned => closed
2017-02-17 22:49 cirrus Resolution open => won't fix
2017-02-17 22:49 cirrus Note Added: 0010371
+Issue History