flecs icon indicating copy to clipboard operation
flecs copied to clipboard

[Feature Request]: Allow setting default lyric provider

Open JasonHorkles opened this issue 10 months ago • 8 comments

Preflight Checklist

  • [x] I use the latest version of YouTube Music (Application).
  • [x] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Problem Description

I personally prefer the YouTube lyrics but the app always defaults to LRCLib

Proposed Solution

Allow setting a default lyric provider to start with

Alternatives Considered

Remember the last used lyric option instead (this could be an issue if it auto switches based on one provider not having the lyrics though)

Additional Information

No response

JasonHorkles avatar Feb 26 '25 02:02 JasonHorkles

That was the initial idea, but I then scratched it for a priority system based on how good each provider is.

https://github.com/th-ch/youtube-music/blob/master/src/plugins/synced-lyrics/renderer/components/LyricsPicker.tsx#L39-L52

bias breakdown:

  • prefers providers that have finished searching
  • prefers providers that have line-by-line lyrics
    • it is more biased to ytmusic if it has line-by-line lyrics
  • finally, it prefers providers that have lyrics at all (not line-by-line)

Would setting a starting provider be helpful in any way?

PS: If you have suggestions on improving the bias, throw them at me.

ArjixWasTaken avatar Feb 26 '25 07:02 ArjixWasTaken

I wonder if it doesn't wait long enough for the ytmusic lyrics since it seems to almost always go with LRCLib instead. From what I initially thought was that the default was LRCLib due to how often it was selected but the bias system seems fine otherwise

JasonHorkles avatar Feb 26 '25 17:02 JasonHorkles

if two providers have equal scores, and it has already picked one of them, it won't randomly change to the other

https://github.com/th-ch/youtube-music/blob/master/src/plugins/synced-lyrics/renderer/components/LyricsPicker.tsx#L66-L68

it will only change when the current provider has lower score than the best provider


setting a default provider when the scores are equal might be viable

ArjixWasTaken avatar Feb 26 '25 19:02 ArjixWasTaken

Yeah I think that could be a good idea. I generally prefer YouTube's lyrics over LRCLib's

JasonHorkles avatar Feb 27 '25 01:02 JasonHorkles

yt music is the most accurate 90% time and lrclib is also accurate but sometimes misses timestamps so the priority should be yt music - lrclib , lyric genius [ which is a joke but does the job witg older songs ]

ValiantZippu avatar Feb 28 '25 15:02 ValiantZippu

  • prefers providers that have line-by-line lyrics
    • it is more biased to ytmusic if it has line-by-line lyrics

In my usage the plugin seems to pick LRCLib even when YTMusic also has line by line lyrics.

I do agree with the decision to bias towards YTMusic in general.

sameerdash2 avatar Apr 25 '25 02:04 sameerdash2

@sameerdash2 I already explained why it picks lrclib over yt music, because lrclib loads faster

ArjixWasTaken avatar Apr 25 '25 05:04 ArjixWasTaken

I'd also add that LRCLib often prefers "clean" version of the lyrics, especially where there are swear words. Adding an option to set a default lyrics provider or set a priority for each one would be great.

Adiker avatar Apr 28 '25 13:04 Adiker

Been craving this feature, I honestly like YTM lyrics much better and find them more time accurate, but even just looping a song after changing it to YTM lyrics puts it back to lrclib, very annoying

baseattackforce avatar Jul 04 '25 02:07 baseattackforce

With some script modifications, I managed to make it prefer Youtube Music's synced lyrics.

baseattackforce avatar Jul 05 '25 23:07 baseattackforce

Ok, what if we allow you to set a preferred provider, and if it has lyrics (synced or not), it will always be the one chosen.

But if it has no lyrics, the existing behavior kicks in?

ArjixWasTaken avatar Jul 05 '25 23:07 ArjixWasTaken

If that's the easiest way to implement it then that's fine with me

JasonHorkles avatar Jul 06 '25 05:07 JasonHorkles

would you rather have no lyrics if your default lyrics provider has nothing? cause that's basically what you suggested

it's not about "easy" or "hard", it's about making it work well

ArjixWasTaken avatar Jul 06 '25 12:07 ArjixWasTaken

I'd prefer whichever provider has synced lyrics, but if both lrclib and YTM have synced lyrics, it chooses Youtube's

baseattackforce avatar Jul 06 '25 19:07 baseattackforce

Yeah I'd prefer crappy lyrics over none at the very least

JasonHorkles avatar Jul 06 '25 20:07 JasonHorkles

Not exactly what this feature request asked for, but a relevant PR now exists.

https://github.com/th-ch/youtube-music/pull/3741

It is targeted at another feature request, but since it is related to this one, I thought I should ask for your input. Maybe we can think of a compromise, or further discuss how this feature request should work.

ArjixWasTaken avatar Aug 11 '25 03:08 ArjixWasTaken

Not a big fan tbh. It wouldn't really address the issue since I listen to a lot of different music so per-song will be rather annoying to use (not to mention that I have multiple devices with the app)

If we can set a favorite as a global in addition to a per-song override, that could be fine

JasonHorkles avatar Aug 11 '25 03:08 JasonHorkles

Not a big fan tbh

As I said, it's not meant to close this feature request, it is simply kinda related to it. Since it is related, I brought it up, so both feature requests can be satisfied in some form.

How are we going to satisfy both feature requests is the question

ArjixWasTaken avatar Aug 11 '25 03:08 ArjixWasTaken

Is it possible to do what was suggested in the last part of my message?

JasonHorkles avatar Aug 11 '25 03:08 JasonHorkles

I had to re-read all the messages in this issue since it's been so long 😆

These are the suggested implementations:

  1. setting a default provider for when the calculated scores are equal (e.g. prefer yt over lrclib)
  2. setting a default provider, and only fallback to the others when the default has no lyrics (e.g. prefer genius over anything)

from the flow of the conversation, I think we settled on the 2nd implementation?

ArjixWasTaken avatar Aug 11 '25 03:08 ArjixWasTaken

Yeah I like 2

JasonHorkles avatar Aug 11 '25 03:08 JasonHorkles

Done!

ArjixWasTaken avatar Aug 11 '25 04:08 ArjixWasTaken

Tysm!

JasonHorkles avatar Aug 11 '25 04:08 JasonHorkles