strawberrymusicplayer / strawberry

:strawberry: Strawberry Music Player
https://www.strawberrymusicplayer.org/
GNU General Public License v3.0
2.74k stars 191 forks source link

Write embedded cover art to music files #286

Closed bertusw closed 3 years ago

bertusw commented 5 years ago

my squeezebox touch music player can display the cover art thats inside the music flie MP#/FLAC

would be nice if strawberry can place them in the music file.

thanks for the good music player, was using clementine all the time nog i got a good replace ment.

v-fox commented 4 years ago

Although, this should not be always-enabled-by-default or as simple as putting first found cover into the file because putting shared full-sized png covers from their directory into every file would bloat them significantly. There needs to be a priority for what way of saving cover is preferred (such as "always external/per-directory, external when missing, internal when missing, always internal/per-file") and compression (such as lossless:[png/webp] with compression strength, lossy:[jpeg/webp] with quality / loss threshold).

However, why are you calling external files "embedded" ? It's literal opposite of what they are. The whole point is for them to become embedded by… embedding.

breversa commented 3 years ago

This is one of the most/longest-requested QoL feature missing from Clementine : https://github.com/clementine-player/Clementine/issues/1176

I'd love to see it implemented into Strawberry, even if it means bloating the files' size. This is 2020 and space isn't as much an issue as it was in 2013 (though I agree that is goes against digital sobriety).

v-fox commented 3 years ago

I'd love to see it implemented into Strawberry, even if it means bloating the files' size. This is 2020 and space isn't as much an issue as it was in 2013 (though I agree that is goes against digital sobriety).

Not an issue… unless you're sticking full-screen or print-quality pngs into >50-track albums of giant FLACs in a collection that is already measures in hundreds of GBs.

bertusw commented 3 years ago

Although, this should not be always-enabled-by-default or as simple as putting first found cover into the file because putting shared full-sized png covers from their directory into every file would bloat them significantly. There needs to be a priority for what way of saving cover is preferred (such as "always external/per-directory, external when missing, internal when missing, always internal/per-file") and compression (such as lossless:[png/webp] with compression strength, lossy:[jpeg/webp] with quality / loss threshold).

However, why are you calling external files "embedded" ? It's literal opposite of what they are. The whole point is for them to become embedded by… embedding.

that easy in the tags if all album names are the same only one file is needed, and can be external. if different album names than the need to be internal.

bertusw commented 3 years ago

I'd love to see it implemented into Strawberry, even if it means bloating the files' size. This is 2020 and space isn't as much an issue as it was in 2013 (though I agree that is goes against digital sobriety).

Not an issue… unless you're sticking full-screen or print-quality pngs into >50-track albums of giant FLACs in a collection that is already measures in hundreds of GBs.

i think a config setting for 300x300 or 600x600 can be a option

breversa commented 3 years ago

@bertusw : I'd love a bigger picture's size, so it'd be great to make it user-customable instead of fixed. :)

jonaski commented 3 years ago

I'm almost finished implementing this. It was a huge job, because album cover handling is done so many places in the code, and all methods were based on saving to file. I also had to move the cover album editing in the tag editor from "summary" to "tags" tab to integrate it better with saving to tags. Album cover will no longer be applied immediately like before, it will only be applied once you click save. There are 3 options for saving album covers: 1. cache directory, 2. album directory, 3. embedded. I also moved the lyrics into it's own tab to make it easier to edit lyrics and give more room in the regular tag editor.

There is a global setting for automatically saving album covers for the cover manager, and also individual settings for saving album covers in the right click menu on the album cover while playing, and in the tag editor. So far I've implemented saving of album covers for FLAC, Ogg Vorbis, MP3 and MP4/AAC. But that should cover the most used formats. For other formats it will fallback to saving to cache.

Here is a screenshot:

image

jonaski commented 3 years ago

This is now done. The changes are not only bringing support for saving embedded covers, but also greatly improve the whole cover management.

Development builds should be available in a few minutes. Appreciate testing.

Some improvements done:

I also fixed a few minor bugs I found worth mentioning:

jonaski commented 3 years ago

Some things that I will consider to add next:

jonaski commented 3 years ago

If a few users can test the different changes, and report back I can do a new release sooner, but otherwise I want to wait at least a week, maybe more, there are huge changes done here, and so many different options to test. Unfortunately from prior experience there is little interest from the community for testing things.

breversa commented 3 years ago

I'll gladly test this new build later this week-end.

I also agree with @89z : this is such an asked-for feature in Clementine that I'd deserve it's own milestone and even full version number ! :D THANK YOU @jonaski !!!

mtfurlan commented 3 years ago

Builds and works as expected here, many thanks! I tested with mp3 and flac, and both the cover manager and the change art menu in the track information worked as expected and didn't cause issues.

bertusw commented 3 years ago

Awesome Nice work Jonaski and others. very good results almost 75% of al numbers i drop on it. found a problem searcing for a cover of (Commodores - Goin' To The Bank) strawberry could find the cover, i did found it on Discorg https://www.discogs.com/Commodores-Goin-To-The-Bank/release/689820 maybe the special character after the n

jonaski commented 3 years ago

@bertusw The problem with Discogs is that the API returns to many badly scanned covers, and sometimes the vinyl, CD or back cover instead of the front cover, so Strawberry specifically only keep the front ones, so the one for that album probably isn't marked properly as a front cover in their the API.

v-fox commented 3 years ago

@jonaski Is there an option to prefer external covers to embedded ones ? Latter always seem to be of much worse quality, so I have to strip them out of files. I prefer to keep external high-res lossless png or low-loss webp.

bertusw commented 2 years ago

Hi Jonas,

first what a awesome work on de cover seach manager. 80% of all my covers are found more than i expected. stil the 20% i find on Discorg, is it possible to scrap the page of Discorg to let me pick the richt one maybe with url to check. a lot of my tracks come from cd that original came from vinyl so no cd cover can be found :)

thanks Bertus van der werf

Op wo 3 mrt. 2021 om 22:13 schreef Jonas Kvinge @.***>:

@bertusw https://github.com/bertusw The problem with Discogs is that the API returns to many badly scanned covers, and sometimes the vinyl, CD or back cover instead of the front cover, so Strawberry specifically only keep the front ones, so the one for that album probably isn't marked properly as a front cover in their the API.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/strawberrymusicplayer/strawberry/issues/286#issuecomment-790058727, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANTYJHWGYGQCWZVABEXQPPDTB2Q7ZANCNFSM4JGAPAVA .

jonaski commented 2 years ago

Thanks, what is Discorg?

bertusw commented 2 years ago

Hi jonas.Happy newjear.I mean https://www.discogs.com/GreatingsBertus van der werfVerzonden vanaf mijn Galaxy -------- Oorspronkelijk bericht --------Van: Jonas Kvinge @.> Datum: 01-01-22 00:39 (GMT+01:00) Aan: strawberrymusicplayer/strawberry @.> Cc: bertusw @.>, Mention @.> Onderwerp: Re: [strawberrymusicplayer/strawberry] Write embedded cover art to music files (#286) Thanks, what is Discorg?

—Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you were mentioned.Message ID: @.***>

jonaski commented 2 years ago

Discogs has an API so no need to scrape, Strawberry already uses it but it has to filter out a lot of the covers from discogs because of poor quality.

mintsoft commented 2 years ago

@jonaski Out of curiosity is there any technical reason why Album cover editing is only available for collection songs. is it a case of "is just not implemented" ?

jonaski commented 2 years ago

Because album covers are updated through the collection: cover manager --> collection db --> playlist and there is currently no good way to update the cover directly to the playlist, but saving embedded cover could probably be enabled pretty easy.

bertusw commented 2 years ago

what i do is copy tile to album name and artist to album artist with easyTAG,(ID3tag editor) and most of my music wil be recognized. i mostly use it for drawers with various artists.

rips for vinyl old dance club classics recognized up to 80%.

im loving Strawberry musicplayer ;)