Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finder / iTunes don't display artwork in most cases due to regression from #200 #343

Open
ksperling opened this issue Oct 9, 2019 · 7 comments

Comments

@ksperling
Copy link

It looks like Finder / iTunes don't like an empty APIC description string when it's encoded in UTF-16. A non-empty string or encoding with Latin 1 seems to work.

Having the API do exactly the expected thing as per #200 is obviously nice, but I don't think it's justified when it breaks compatibility. Maybe a compromise would be to enable the strict behaviour for 2.4 tags and leave the compatibility logic in place when writing v2.3.

@nicfit
Copy link
Owner

nicfit commented Oct 12, 2019

It looks like Finder / iTunes don't like an empty APIC description string when it's encoded in UTF-16. A non-empty string or encoding with Latin 1 seems to work.

You can "fix" your tags to satisfy itunes, no? Set a non-empty description with whatever encoding makes itunes happy.

@ksperling
Copy link
Author

Yes, that's what I've done now, after an afternoon of debugging, looking at hex dumps and trying different things. I just doubt the average user of a tool like eyeD3 wants to (or should have to) go to that sort of effort.

@nicfit
Copy link
Owner

nicfit commented Oct 16, 2019

What, exactly, should eyeD3 do here? Following the ID3 spec as a goal.

Having the API do exactly the expected thing as per #200 is obviously nice, but I don't think it's justified when it breaks compatibility.

Doing the expected thing > Finder/iTunes, IMO

@ksperling
Copy link
Author

ksperling commented Oct 16, 2019 via email

@will-hedges
Copy link

will-hedges commented Jun 4, 2020

@ksperling I am trying to do this with iTunes as well as Groove. What args do you have to specify to 'play nice' with the artwork? I'm new to file handling with python so please forgive me if this is a dumb question

# find the cover artwork, if present
for f in os.listdir():
    mo = art_re.match(f)
    if mo:
        art = f
        art_ext = f'image/{mo.group(1)}'
        if art_ext == 'image/jpg':
            art_ext = 'image/jpeg'

if art:
    audiofile.tag.images.set(3, open(art, 'rb').read(), art_ext)
    audiofile.tag.save(version=(2,4,0))

@ksperling
Copy link
Author

ksperling commented Jun 4, 2020 via email

@jonhnet
Copy link

jonhnet commented Nov 8, 2020

I had exactly the same frustration as ksperling -- lots of debugging time wasted; ordinary users must just give up in despair.

Suggestion: have command line tool issue a warning that blank description field confuses buggy players (like itunes and my Toyota), suggesting to add dummy text in the description field. That should save users the interop frustration, but let the API stay clean.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants