Bug 72

Summary: eyeD3 tagging fails if genre isn't a standard number
Product: abcde Reporter: CJ Kucera <cj>
Component: TaggingAssignee: Steve McIntyre <steve>
Status: CONFIRMED ---    
Severity: normal CC: andrew.david.strong, billd, cj
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: All   

Description CJ Kucera 2017-10-05 03:53:34 BST
When encoding to mp3, abcde translates a textual genre to a genre ID using its do_getgenreid function.  If the genre string isn't one of the standard ones, the ID defaults to 255.

The tagging app eyeD3 will fail if you try passing it a Genre ID of 255, though:

Setting genre: 255
eyed3.id3:WARNING: Invalid numeric genre ID: 255
Invalid numeric genre ID: 255

The result is that the mp3s in the output directory remain completely untagged.

The id3v2 spec supports arbitrary text genres, though support for that seems to vary between utilities.  eyeD3 itself does support putting in arbitrary text for genres, which means there's be a couple ways of fixing this, depending on which way you'd want to go with it:

1) If the genre ID is 255, just don't pass it in to eyeD3
2) If the genre ID is 255, pass in the plaintext genre instead (eyeD3 will show a warning about nonstandard genres but will encode it regardless)

Obviously the other tagging utilities may vary in their functionality, so it may have to be a custom fix for just eyeD3 itself.

I'd be happy to put together a patch + pull request for this, if you like, though I figured I'd see how you might want it fixed first.
Comment 1 Andrew Strong 2017-12-19 22:22:27 GMT
I am wondering if the eyeD3 developer has actually already put a fix in place for this in the latest version of eyeD3:

andrew@illium~$ eyeD3 --version
0.8.4
andrew@illium~$ 

Some discussion here:

https://bitbucket.org/nicfit/eyed3/issues/73/allow-non-mapping-of-genre-id-values

The option worth looking at would be --non-std-genres, I have not tested this but my suspicion would be that it may help in your case...
Comment 2 Bill Duetschler 2018-03-08 01:53:55 GMT
I'm running Ubuntu 17.10 "artful".  I've upgraded eyed3 to 0.8.4 by using pip, and still get this error.

billd@erwin:~$ abcde -v
This is abcde v2.8.1.
Usage: abcde [options] [tracks]
abcde -h for extra help
billd@erwin:~$ eyeD3 --version
0.8.4
billd@erwin:~$