tranxuanthang / lrcget

Utility for mass-downloading LRC synced lyrics for your offline music library.
MIT License
845 stars 27 forks source link

No lyrics downloaded for some songs, but search shows they were available #132

Open ChrisLMerrill opened 1 month ago

ChrisLMerrill commented 1 month ago

First, let me say I love this app! I've got about 3700 songs in just my Rock genre, so this is a massive time-saver for me :)

I noticed that a lot of songs didn't get lyrics downloaded, but when I hit the "Search Lyrics" button for the song, 1 or more are usually found. Is there some secret criteria that decides if these are suitable matches? If yes, is that criteria configurable?

I assume it had something to do with quality of match, but in many cases, the time signature is 0 (I assume that is what the "+0:27" indicator is).

In other cases, only plain lyrics were downloaded, when synchronized lyrics were found - I have the same questions about that.

TIA!

tranxuanthang commented 1 month ago

Songs like the ones you described probably failed the duration criteria. If your song's duration has an offset larger than 00:02 seconds, it won't be matched.

When using the search feature, the "+0:27" indicator means that your song's duration is 27 seconds shorter than the song submitted by the person who provided the lyrics. This suggests that the lyrics might not be a good match; they could be from a remix, remastered, or live version of your song, for example.

I'm trying to find ways to improve the "Download all lyrics" feature. I'm considering an option to ignore duration differences for those who prefer getting as many lyrics as possible, so stay tuned for future releases!

ChrisLMerrill commented 1 month ago

I can understand those (though I would still like to be able to loosen that - I'd rather have lyrics that are not well synced than none at all).

But in many cases I have found, using the built-in search, there is exactly 1 match for synced lyrics and the search reports a duration match as well. Screenshot attached. Rough estimate, I'm seeing 1-3% of my songs have no lyrics with no apparent reason.

image

tranxuanthang commented 1 month ago

Ah, I see. It's probably because LRCLIB didn’t have those lyrics before, and they were only added after your initial scan.

When you scan all tracks for lyrics, if some tracks were not found, LRCLIB will asynchronously try to find the lyrics for those tracks from other providers. This process can takes a long time, up to even a day or two.

That's why you might get a few more new lyrics if you redownload all lyrics after a few days.

Zedniac commented 1 month ago

Interesting...so just to clarify, when using "Download All Lyrics" in LRCGET, it pulls from LRCLIB, and LRCLIB will (at some point in the near future) look for those lyrics from another provider.

What I've noticed is that often immediately after running the bulk download, I can use manual search button for an individual song and it will find lyrics as Chris showed above. When this happens, does that indicate that LRCLIB has already performed the asynchronous search and pulled from another provider? Or does the manual search in LRCGET pull from other providers?

(Side note, I think this is the same as the issue I posted - #106)

tranxuanthang commented 1 month ago

Interesting...so just to clarify, when using "Download All Lyrics" in LRCGET, it pulls from LRCLIB, and LRCLIB will (at some point in the near future) look for those lyrics from another provider.

Yeah, you are correct.

When this happens, does that indicate that LRCLIB has already performed the asynchronous search and pulled from another provider?

Yes it seems so. Often at day (in my local time), the look up process is quite fast, almost immediately. At night, tracks need to be looked up often pile up to ~60000 tracks or more, so it takes more time to process.

Or does the manual search in LRCGET pull from other providers?

Only /get API (Download all lyrics feature) pulls from other providers, because it sends all the metadata needed (track name, artist name, album name, duration). The /search API doesn't do this.