Plex server doesn't recognize multiple genres in music AAC files unless separated by semicolons

Server Version#: 1.41.0.8994

When using AAC music files Plex doesn’t recognizes multiple genres as actually separate genres, unless the filed is written using semicolons as separator.

I can write genres separating them with a null character using \\ as separator in Mp3Tag, or With Yate, which allows to choose which character(s) use as multiple values separator in the preferences.

Using MP3 files works both using a null separator, and using ;, multiple genres are recognized correctly by Plex server.
Below some tests done Tagging with YATE anf Mp3Tag.

Yate allows to choose how to write tags with multiple values in one field: single atom, single atom/multiple data, or multiple atoms, which is similar to using \\ as separator in Mp3Tag, which then creates multiple GENRE fields.

Result:

The only way Plex recognizes multiple genres in AACs is when they are written in a single field, separated by one or more semicolons.

Writing multiple fields makes only the last one recognized.

I tried different separators and combinations, tagging using Yate, and reading in Mp3Tag and Plex, and here are some results:

Isn’t a single semicolon the correct way to tag multiple genres per the spec?
I thought I read that a few years ago, and reading your post made me think
you’re getting expected behavior.

The ID3v2.4 spec uses NULL bytes as separator. Simply because the semicolon is a regular punctuation character and could be used in actual tag content.

but shouldn’t Plex use the same spec for AAC ?

Maybe is not clear in my post, but the behavior I’m reporting shouldn’t be considered normal.
Plex should recognize NULL as a valid separator in AAC as well, or better, recognize multiple “genre” fields and treat them as separate.

No, since aac files are usually in mp4 format, which is completely different from mp3. And flac is another different container format as well, btw.

Yes, each has its own tag implementation.

For AAC, at the moment , Plex reads a single string as multiple genres if in the string there are semicolons.
It would be more logical if Plex recognized multiple genre fields (as Written by Mp3tag, when using \\ as separator)

I can’t find it but there must be an official specification to properly tag multiple genres in AAC, and I can’t believe it is to throw everything in one field, using a punctuation character as separator.

My guess is that AAC is less common than MP3 so nobody fixes this behavior.
Another hypothesis could be that the PLEX tag scanner library (ffmpeg) has a bug.

mp3tag doesn’t actually use \\ as a separator, that’s just how they visualise it in their UI. It writes the tag-specific way: null char for id3v2.4, multiple fields for FLAC and MP4.

This whole thing (“Plex does not read multiple values in MP4”) is an ffmpeg bug, by the way, Plex just inherits it because it uses ffmpeg as its tag reading library. You can check this by doing ffmpeg -i file.m4a on a AAC/M4A file with multiple genres (or multiple artists, etc - any field). You will only see the first value.

Background: for 20+ years, ffmpeg would only return the first value of a multivalued tag. A bug report was filed in 2018, 7 years ago. Almost nobody cared, because there were no applications that used ffmpeg for reading tags. This changed about 3 years ago when Plex switched over from its own (I think Python-based?) tag library to ffmpeg, “exposing” the bug. There was finallly a patch applied last year which fixed this for FLAC (Vorbis comments) and mp3 (id3v2.4), but not for the MP4 metadata format.

TLDR: go here and submit the bug: https://trac.ffmpeg.org/ or write a patch yourself and submit it.

Thanks for the clarification.
I’ll file the bug but I guess nobody will care…

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.