Bug 72 - eyeD3 tagging fails if genre isn't a standard number
Summary: eyeD3 tagging fails if genre isn't a standard number
Status: CONFIRMED
Alias: None
Product: abcde
Classification: Unclassified
Component: Tagging (show other bugs)
Version: unspecified
Hardware: All All
: Normal normal
Assignee: Steve McIntyre
URL:
Depends on:
Blocks:
 
Reported: 2017-10-05 03:53 BST by CJ Kucera
Modified: 2021-10-17 21:27 BST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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:~$
Comment 3 Ran Talbott 2021-10-17 21:27:48 BST
(In reply to Bill Duetschler from comment #2)
I recently upgraded to Ubuntu 20.04, and tried to install jack for CD ripping, because I'd been using it for years.

It had cryptic problems with eyeD3 (basically just failed with no useful diagnostic info). I think it _might_ because jack only works on Python 2, while eyeD3 says it requires a recent Python 3, but that's only a guess.

When I decided to try abcde, it also had eyeD3 problems. I noticed a setup recommendation to install eyeD3 from an official .deb, which I hadn't known existed.

So I removed eyeD3 using pip2 and pip3, and did the deb install. Now abcde works. I haven't tried jack again, but it might work, too.

The very first CD I ripped (a Cincinnati Pops recording) hit the "genre=255" problem, but adding EYED3OPTS="--non-std-genres" to my .abcde.conf made the failure go away.