Skip to content

Add new extraction methods to lyrics providers and drop some defunct ones - #160

Open
berniyh wants to merge 11 commits into
nullobsi:mainfrom
berniyh:improve_lyrics_providers
Open

Add new extraction methods to lyrics providers and drop some defunct ones#160
berniyh wants to merge 11 commits into
nullobsi:mainfrom
berniyh:improve_lyrics_providers

Conversation

@berniyh

@berniyh berniyh commented Jul 25, 2026

Copy link
Copy Markdown

For quite some time, I noticed that a lot of the providers were broken. So I made an attempt to fix some of them. I also removed those for which the website was clearly defunct or down. Since all previous defaults were broken I set genius as default now, because I didn't know a better option.

Please note that I used Claude Opus 5 to implement these changes. I did try to check the changes as best as I can, but I don't know c++ too well, so feedback is appreciated.

Providers that I checked and fixed explicitely:

  • genius.com (which was my main focus)
  • lyricsmania.com
  • lyricsmode.com
  • musixmatch.com
  • songlyrics.com

Ones that I checked and were working already:

  • letras.mus.br

Still broken. I didn't try to fix, but at least the service is still up:

  • azlyrics.com - prohibit extraction, it was already noted in lyrics_providers.xml
  • lyriki.com - nothing happened, no idea why

No idea:

  • lololyrics.com - couldn't find any song that I have and they have lyrics for
  • lyrics.com - I think cantata's side is working, but their side is partially broken. Gives me "No lyrics found" even when searching on the website

The other ones I didn't really try out, because they offered mostly regional stuff.

Edit: I noticed I still had an older email address configured. Fixed that and recommitted all with the proper one. Code is identical.

@nullobsi

Copy link
Copy Markdown
Owner

Thanks. I think this would close #126. However, there is a little bit of smell with the JSON parsing; I would much rather prefer the use of Qt's built-in JSON parsing library instead of naïvely using a for loop to parse escape sequences. I also think this would conflict with #122, but this diff is much smaller so it will go in first.

@berniyh

berniyh commented Aug 26, 2026

Copy link
Copy Markdown
Author

However, there is a little bit of smell with the JSON parsing; I would much rather prefer the use of Qt's built-in JSON parsing library instead of naïvely using a for loop to parse escape sequences.
Good point, I'll tackle that in the next few days.

I also think this would conflict with #122, but this diff is much smaller so it will go in first.
I did see that one, but since it implements a new lyrics provider and does so as new classes/files, I didn't really see much of a conflict. Should be easy to merge.

What I didn't see back then is your comment in #93, where you stated that you're thinking about refactoring the lyrics system. I only found that 1-2 week ago. Had I known that, I might have done the implementation a bit different, maybe more like what #122 does. Instead, I went the "least amount of changes" way.

I think with regard to the lyrics page, there is many things that could be improved. For one, I'd like to improve the search window, so that you can use it more like a proper search, where you lookup some terms and then can select from a list of results instead having to match the results exactly. Shouldn't be that hard to do, since most providers have included search functionality anyways (which are commonly used by search plugins, e.g. for Firefox).

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants