name: Lyrics Freak
loader: search
variables:
artist:
type: artist
filters:
- lowercase
title:
type: title
filters: artist
config:
identity url: "https://www.lyricsfreak.com/search.php?q={artist}+{title}"
identity pattern: ['[^a]\shref="(?<identity>.*?)"', 's']
lyrics url: "https://www.lyricsfreak.com"
lyrics pattern: ['data-title=".*">(?<lyrics>.*)<div class="lf-marker\s', 's']
post-filters:
- strip_html
- utf8_encode
- entity_decode
- [regex, '\[.*?\].*?(\w)', '$1', s]
- [regex, '\(feat\..*?\)', '', s]
- [regex, '.*?(\w.*)', '$1', s]
- trim
After a long period of testing I think I can draw up some conclusions for myself.
The plugin is giving fantastic results these days, using this order of providers which I have found to be optimal:
1. Genius
2. MusixMatch
3. Deezer
4. Metal Archives (*)
5. Genius (fuzzy)
6. Deezer (fuzzy)
(*) only useful if you have a lot of (more obscure?) metal
[placeholder]1. What does the above post actually mean? It seems incomplete (--[placeholder]?).
This is where other working yml's will be located and kept to up to date.
1. What does the above post actually mean? It seems incomplete (--[placeholder]?).#1
2. Can you please provide the download in a zipped package with a version number (and preferably a readme) so we can keep things easily separated from other versions? BTW, downloaded DLL has a version number of 1.1.13.
3. THANKS for implementing this new revision/technique; haven't tried it yet but I will get back with comments.
Oh boy. Can somebody else confirm the error above?It seems to work here. (on 3.5.8237p)
Oh boy. Can somebody else confirm the error above?This time uninstalled the existing DLL first instead of copying over, incl. deleting the logs, the subfolder in Appdata, etc. Added the new DLL via the MB "Add Plugin" menu and received this error:
sveakul, can you delete the log file and start MusicBee again to see what happens? It's the only thing right now I think can be related to the message.
Some of the reasons behind the removal of other default providers: https://getmusicbee.com/forum/index.php?topic=9994.msg116979;topicseen#msg116979
Does anybody object to the change and would like for those to be added back as defaults?
name: Song Lyrics
variables:
artist:
type: artist
filters:
- lowercase
- [regex, '[^\sa-z0-9]', ""]
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "http://www.songlyrics.com/{artist}/{title}-lyrics/"
pattern: ['<div id="songLyricsDiv-outer">(?<lyrics>.*?)</div>', s]
post-filters:
- strip_html
- entity_decode
- clean_spaces
- utf8_encode
- [fix_broken_chars, 'Ã', ISO-8859-1]
- [replace, 'þ', 'ß']
3. In Tags(2), the available providers list from the clean install shows Google, and "chartlyrics.com" of all things. I assume the latter was never actually removed from the original plugin, as it's not present as a yml file.If I'm not mistaken, chartlyrics.com is a MusicBee native lyrics provider. This plugin's source files do not appear to have any trace of it.
I would like to see songlyrics.com added back as a source in the DLL; AFAIK no yml file exists for that one, and it picks up a lot of more obscure metal and goth stuff.The 'placeholder' post on this thread is meant to serve as a place where I'll store all available yml's that can be used with this plugin.
Would appreciate a 2nd confirmation by sveakul. Re-download the plugin.
Is there a way to find out which source provided the found lyrics rather than searching through hundreds of lines of the log file?Thanks phred. Please also re-read my previous post to see the edit and make an opinion on that subject.
Where would you want to see the name of the source that provided the lyrics? In the retrieved lyrics themselves?At the bottom or top of the retrieved lyrics if possible. But some folks may not like that interfering with lyrics display. This would be my first choice. "Lyrics retrieved from xxx." Or simply the provider.
Or perhaps having the word "SUCCESS" in the log file for successful finds. That way I could run a search in Notepad++ for the word "SUCCESS."Not sure if you are aware, but the log file already outputs "lyrics found from <provider>!" for successful finds.
At the bottom or top of the retrieved lyrics if possible. But some folks may not like that interfering with lyrics display. This would be my first choice. "Lyrics retrieved from xxx." Or simply the provider.Theoretically, I should be able to provide a setting for that in some way. I'll do some research on it to see if it is within the scope of my capabilities.
Is there a way to find out which source provided the found lyrics rather than searching through hundreds of lines of the log file?phred forgive me if you already are aware of this, but when you right-click in the lyrics window after they are retrieved, you get in subdued type at the start of the options list the source of the lyrics being displayed, like "Lyrics Source: Google."
Not sure if you are aware, but the log file already outputs "lyrics found from <provider>!" for successful finds.That's still too cumbersome since a search for "lyrics found" or "lyrics found from" brings up "NO lyrics found..." So perhaps on the source that actually found the lyrics the word SUCCESS <provider> be entered in the log. While still keeping the "no lyrics found" intact.
So a search on "found" should already achieve the same result - unless you are suggesting "success <provider>" would be better wording for it.
no lyrics found from Google
Theoretically, I should be able to provide a setting for that in some way. I'll do some research on it to see if it is within the scope of my capabilities.Theoretically, -any-thing can be done. :-) But if it's too much of a struggle, and the "SUCCESS <provider> is easier, I can live with that.
I also happen to be simply winging my way around the plugin. I don't really have any solid background on this type of stuff.
Thank you for all the feedback you've given so far, sveakul.Whoops, I missed that actually, thanks for bringing it to my attention. I got rid of the link in the post that referred to it.
That comment in green from the image in my previous post appears to be a note from the AZ lyrics website (in html format) to providers like this plugin.
There was a discussion on it here and I also think it shouldn't be officially associated with MusicBee and the plugin:
phred forgive me if you already are aware of this, but when you right-click in the lyrics window after they are retrieved, you get in subdued type at the start of the options list the source of the lyrics being displayed, like "Lyrics Source: Google."No, I wasn't aware of it. And while I have often right-clicked on the lyrics, typically to edit them, I suppose i overlooked the subdued type you referred to. However, it's not at all helpful when it appears like this:
Sorry for the misunderstanding.Ahhh ... and you gave me so much hope!! :-)
I agree, the ability to copy/paste/save that info with the actual lyrics would be a nice option to have available.Yes, that would be nice. Perhaps Mayibongwe can use this as a learning exercise and come up with a solution. And if not, I'll just have to search the logs. :-(
But if it's too much of a struggle, and the "SUCCESS <provider> is easier, I can live with that.To avoid introducing new bugs at this early stage of the new plugin version, I will keep things simple and go with the 'searching the log' compromise.
To avoid introducing new bugs at this early stage of the new plugin version, I will keep things simple and go with the 'searching the log' compromise.That's understandable.
Over time, I'm sure I'll be able to do something about providing a setting for what's been discussed.
In the meantime, if you re-download the plugin, the log file now outputs:Perfect! It's easy enough to search for "SUCCESS" when I want to see where the lyrics came from.
[FAIL] no lyrics found from <provider> and [SUCCESS] lyrics found from <provider>
And I look forward to having the source displayed with the lyrics sometime down the road.Turns out there wasn't a lot complicated to it. So I've gone ahead and provided a setting for this - it's not in the UI though.
Turns out there wasn't a lot complicated to it. So I've gone ahead and provided a setting for this - it's not in the UI though.This is really, really, REALLY great. Thanks so much for adding this.
Hope that will be the case for everyone else.For those who don't care where the lyrics come from, they need to do nothing. The change is transparent.
Glad to know it's working fine for me and you without any issues.This really IS nice. I know I'm going out on a limb here, but is there any chance there could be an option to show the source line at the TOP of the lyrics instead of at the end? So as to tell immediately where they're from without needing to scroll down for those not fitting the pane. If not, no biggie!
Hope that will be the case for everyone else.
is there any chance there could be an option to show the source line at the TOP of the lyrics instead of at the end?I wouldn't object to having that as an option, but not as a change.
This really IS nice. I know I'm going out on a limb here, but is there any chance there could be an option to show the source line at the TOP of the lyrics instead of at the end? So as to tell immediately where they're from without needing to scroll down for those not fitting the pane. If not, no biggie!I didn't want to be the one to ask, but since you did, I'll give this a +1 as I'd prefer it at the top also. And if not doable, it's not a deal-breaker.
...but is there any chance there could be an option to show the source line at the TOP of the lyrics instead of at the end?Adding settings is now straightforward. Re-download the new version and change <showSourcePosition> to "top".
Re-download the new version and change <showSourcePosition> to "top".GIDDY-YUP!!!
I'll report back when completed.In about an hour I found 152 lyrics out of 2821 missing. Again, there are probably a good deal of instrumentals or spoken word tracks there. But before Google was a plugin provider, running the 2800+ tracks would perhaps turn up less than ten. So this is an additional success.
Yeah, the google search engine really does a marvelous job at getting accurate results, even when fed with slightly incorrect or incomplete information.Party pooper here:
Still hoping for (more) feedback on the edited portion of this post: https://getmusicbee.com/forum/index.php?topic=36952.msg202801#msg202801I'll get back on that later too.
sveakul suggested that other providers be added back in as defaults. What do people think?
My opinion on it is stated on that reply, but the way forward obviously has to be what the majority decides.
I'll try to come up with a more detailed report the coming weekend.I'll be waiting for it. There's not a lot to work with at the moment.
…and would only use Chrome is a gun was being held to my head. On occasion I have changed my user agent to Chrome in order to get better results.So you do have Chrome installed on your system?
So you do have Chrome installed on your system?I have a portable version of Chrome installed. But I using FF with a chrome user agent long before I installed Chrome. And got better results with it on FF than I did when using a FF user agent. But that doesn't confirm if Chrome is needed for the new plugin to work. Although I wouldn't think so.
I have a portable version of Chrome installed. But I using FF with a chrome user agent long before I installed Chrome.To me that's making it even more complicated.
... and some Chrome engine (agent?) that your FireFox uses in the background?No. A user agent is a text string (in FF) that tells the targeted website what browser I'm using. In this case the user agent is spoofing Chrome. There is no Chrome engine that's being used. But, as you know, the plugin isn't using FF or any other browser.
Anyone without Chrome on his/her sytem using the new version of the plugin and getting results using google as the lyrics finder engine?I do not have Chrome, only Firefox. I am getting good results using Google selected as the primary lyrics finder, about 60% of first returned hits are from it (normally other sources find results also) and 40% of the hits are only from the yml sources. A lot of this depends on the genre. I listen to LOTS of obscure radio streams and sometimes the results will invert, but Google remains for me a valuable source.
Just to put my two cents in here to the question about building yml's into the DLL with Google, I would not mind that unless it came at the cost of the plugin never being able to use ymls in the "providers" folder anymore. The idea of keeping both separate also appeals to circumstances when no other serach type (API, etc) is available other than scraping.I wouldn't mind all the sources built into the plugin but if one of the sources changes its parameters for searching Mayibongwe will have to update the entire plugin. Whereas if we are using external YML files, it can be updated as soon as someone can figure out the new parameters. And that won't be me since I've tried before and have not been successful. Either way we (I) would have to wait for a fix.
It looks like it's a regional issue. (I'm in Europe)I'll try to come up with a more detailed report the coming weekend.I'll be waiting for it. There's not a lot to work with at the moment.
Is the VPN workaround something you guys can live with?
05/08/2022 05:00:07 [INFO] mb_LyricsReloaded in version 1.1.15.0 started!
05/08/2022 05:00:07 [DEBUG] Loading config from field provider_google_com
05/08/2022 05:00:07 [INFO] Provider loaded: Google
05/08/2022 05:00:07 [DEBUG] Received a notification of type PluginStartup
05/08/2022 05:00:07 [DEBUG] Received a notification of type MusicBeeStarted
05/08/2022 05:00:07 [DEBUG] gzip compression detected
05/08/2022 05:00:12 [DEBUG] Lyrics request: Blondie - Hanging On the Telephone - Parallel Lines - Google
05/08/2022 05:00:12 [INFO] Google tries to load the lyrics...
05/08/2022 05:00:12 [DEBUG] The constructed URL: https://www.google.com/search?q=hanging-on-the-telephone+blondie+lyrics
05/08/2022 05:00:13 [DEBUG] gzip compression detected
05/08/2022 05:00:13 [WARN] The pattern </div></div></div></div><div class="hwc"><div class="BNeawe tAd8D AP7Wnd"><div><div class="BNeawe tAd8D AP7Wnd">(?<lyrics>.*)Source: didn't match!
05/08/2022 05:00:13 [INFO] No lyrics found.
05/08/2022 05:00:13 [FAIL] no lyrics found from Google
05/08/2022 05:00:18 [INFO] Plugin disabled
05/08/2022 05:01:02 [INFO] mb_LyricsReloaded in version 1.1.15.0 started!
05/08/2022 05:01:02 [DEBUG] Loading config from field provider_google_com
05/08/2022 05:01:02 [INFO] Provider loaded: Google
05/08/2022 05:01:02 [DEBUG] Received a notification of type PluginStartup
05/08/2022 05:01:02 [DEBUG] Received a notification of type MusicBeeStarted
05/08/2022 05:01:02 [DEBUG] gzip compression detected
05/08/2022 05:01:08 [DEBUG] Lyrics request: Blondie - Hanging On the Telephone - Parallel Lines - Google
05/08/2022 05:01:08 [INFO] Google tries to load the lyrics...
05/08/2022 05:01:08 [DEBUG] The constructed URL: https://www.google.com/search?q=hanging-on-the-telephone+blondie+lyrics
05/08/2022 05:01:09 [DEBUG] gzip compression detected
05/08/2022 05:01:10 [SUCCESS] lyrics found from Google!
05/08/2022 05:01:13 [INFO] Plugin disabled
I'm yet to see any other source besides those twoI have all my prior YMLs in the providers directory. Without doing the math, I'd say 75% of the retrieved lyrics come from Google, 20% come from Genius, and the rest come from A-Z Lyrics, Oldie Lyrics, and Lyrics Freak.
05/08/2022 05:48:09 [DEBUG] Received a notification of type TagsChanging
05/08/2022 05:48:09 [DEBUG] Lyrics request: Smash Palace - Another Man - Fast, Long, Loud - Musixmatch
05/08/2022 05:48:09 [INFO] Musixmatch tries to load the lyrics...
05/08/2022 05:48:09 [DEBUG] The constructed identity URL: https://www.google.com/search?q=Musixmatch+another-man+smash-palace
05/08/2022 05:48:09 [DEBUG] Lyrics request: Smash Palace - Another Man - Fast, Long, Loud - Genius
05/08/2022 05:48:09 [INFO] Genius tries to load the lyrics...
05/08/2022 05:48:09 [DEBUG] The constructed identity URL: https://www.google.com/search?q=Genius+another-man+smash-palace
05/08/2022 05:48:09 [DEBUG] Lyrics request: Smash Palace - Another Man - Fast, Long, Loud - Google
05/08/2022 05:48:09 [INFO] Google tries to load the lyrics...
05/08/2022 05:48:09 [DEBUG] The constructed URL: https://www.google.com/search?q=another-man+smash-palace+lyrics
05/08/2022 05:48:09 [DEBUG] gzip compression detected
05/08/2022 05:48:09 [DEBUG] gzip compression detected
05/08/2022 05:48:09 [DEBUG] gzip compression detected
05/08/2022 05:48:09 [WARN] The identity pattern (?<identity>https://www.musixmatch.com/lyrics/.*?)& didn't match!
05/08/2022 05:48:09 [INFO] No lyrics found.
05/08/2022 05:48:09 [FAIL] no lyrics found from Musixmatch
05/08/2022 05:48:09 [WARN] The pattern </div></div></div></div><div class="hwc"><div class="BNeawe tAd8D AP7Wnd"><div><div class="BNeawe tAd8D AP7Wnd">(?<lyrics>.*)Source: didn't match!
05/08/2022 05:48:09 [INFO] No lyrics found.
05/08/2022 05:48:09 [FAIL] no lyrics found from Google
05/08/2022 05:48:09 [DEBUG] The constructed lyrics URL: https://genius.com/Sharon-oneill-smash-palace-lyrics
05/08/2022 05:48:10 [DEBUG] gzip compression detected
05/08/2022 05:48:10 [SUCCESS] lyrics found from Genius!
The requested song is Another Man by Smash Palace. The lyrics retrieved are the song Smash Palace by Sharon O’Neill.I just tried to look for any website that might have the lyrics for that song and I honestly couldn't find any.
I think free text searching like this might be a problem for songs like this where there are no legitimate lyrics but words in the band or song title match some other context.
So I have, in addition to Google, added a few more built-in providers.I've started some extensive testing, and things are looking VERY promising.
- Genius
- Deezer (also gets its content from Lyrics Find)
- Musixmatch
When I began looking at this, I wondered why nobody had ever tried using it as a direct source before.I want to make a correction to that statement. I just realized there was in fact no plugin limitation at all.
But I soon realized there was a plugin limitation to it at the time. The plugin was using Firefox to return the websites' html dumps.
It worked fine for every other site, but with google webpages, it was returning some html filtered out content that didn't contain the full lyrics.
name: Musixmatch (new)
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [regex, "'", ""]
- [regex, "/", " "]
- [regex, '\s&(?=\s)', " "]
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
- [regex, '[^\sa-z0-9]\s*', ""]
- [strip_nonascii, -]
title:
type: title
filters:
- strip_diacritics
- lowercase
- [regex, " '|' |/", " "]
- [regex, "'", " "]
- [regex, '\.+|,+|/+|(\W+(?=$))|(^\W+)', ""]
- [regex, '\s&(?=\s)', " and"]
- [strip_nonascii, -]
config:
url: "http://www.musixmatch.com/lyrics/{artist}/{title}"
pattern: ['<p class="mxm-lyrics__content.*?">(?<lyrics>.*?)<div [^>]*"lyrics-report".*?>', s]
post-filters:
- [regex, "<script.*?</script>", "", s]
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
I just tried to look for any website that might have the lyrics for that song and I honestly couldn't find any.That's the point, isn't it? If there are no lyrics for the song, the search should fail rather than return incorrect lyrics. People (me included) set MB to auto-save lyrics when retrieved. There's no benefit to anyone in retrieving incorrect lyrics. Will every song by this band called "Smash Palace" return these same incorrect lyrics because a totally unrelated artist recorded a song by that name?
Should the providers return a no match when a song isn't available, rather than return incorrect lyrics?I'm not sure why I would want lyrics from a song to match online lyrics from a song with a different title by a different artist.
If the former, then that means songs which had the potential of being matched even when the sites had differing titles/artists, would no longer get matched.
So I copied my stored yml of MusixMatch to the providers folder, activated it, and deactivated the build-in one.I haven't updated to the new .dll yet, but I did use some of the previous YML files that had been working with frankz's plulgin and with recent releases of this updates/new/current .dll.
- [regex, '<div class="inline_video_ad_container_container">', "\n", s]
I noticed some lyrics missing when using the build-in MusixMatch engine, that I believed I was able to retrieve before.My bad. I wasn't accounting for those kind of urls before.
Maybe some sort of check back to make sure the band name is at least similar?With Musixmatch and Genius, I can include a check to see if the artist will at least be contained in the url.
There was never a widespread problem with finding the right page for a song on Genius or MusixMatch - that worked pretty reliably.
Sadly, the check I thought I'd be able to add turned out to be a lot harder than it sounded.1. Does this mean Genius and Musixmatch are still integrated into the DLL with Google, but are "doing their own thing" just like yml files (saw they are still removed from the providers yml zip)?
So I've reverted Genius, Musixmatch and Lyrics Freak back to their original states - redownload the plugin.
Yep, they are all still there. The change is only in the way they do their searching. Otherwise, they are set to work exactly how they used to before.Don't mean to pester you, but can you clarify "exactly how they used to before"? Does that mean Genius and Musixmatch function the same way as when they were included as separate yml files? And as Deezer made its only appearance as intergrated in the DLL, what search strategy is in use there?
name: Musixmatch (new)
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [regex, "'", ""]
- [regex, "/", " "]
- [regex, '\s&(?=\s)', " "]
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
- [regex, '[^\sa-z0-9]\s*', ""]
- [strip_nonascii, -]
title:
type: title
filters:
- strip_diacritics
- lowercase
- [regex, " '|' |/", " "]
- [regex, "'", " "]
- [regex, '\.+|,+|/+|(\W+(?=$))|(^\W+)', ""]
- [regex, '\s&(?=\s)', " and"]
- [strip_nonascii, -]
config:
url: "http://www.musixmatch.com/lyrics/{artist}/{title}"
pattern: ['<p class="mxm-lyrics__content.*?">(?<lyrics>.*?)<div [^>]*"lyrics-report".*?>', s]
post-filters:
- [regex, "<script.*?</script>", "", s]
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
Did you re-download the plugin (v1.1.15.5)?I was convinced I had the latest one, but checking it, it said 1.1.15.4
name: Musixmatch_Google
loader: search
variables:
artist:
type: artist
filters:
- lowercase
title:
type: title
filters: artist
config:
identity url: "https://www.google.com/search?q=Musixmatch+{title}+{artist}"
identity pattern: ['(?<identity>https://www.musixmatch.com.*?)%3Futm_|(?<identity>https://www.musixmatch.com.*?)["&]', 's']
lyrics url: ""
lyrics pattern: ['<p class="mxm-lyrics__content.*?">(?<lyrics>.*?)<div [^>]*"lyrics-report".*?>', s]
post-filters:
- [regex, "<script.*?</script>", "", s]
- [regex, '<div class="inline_video_ad_container_container">', "\n", s]
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
I'll probably try to find lyrics providers that have lyrics for many of my not-found songs, and try to create (or edit existing) yml's to make those work.In the 2nd post of this thread, I linked back to frankz's documentation post.
If someone can point me to some tutorials/explanations on the workings of these yml's (perhaps somewhere in this thread, or in help files, or on github) it's appreciated…
Lyrics Freak:
Having changed back to the site's search function yesterday, Idk for sure but I think the incorrect lyrics percentage would be a lot lower.
Were you using 1.1.15.4 for it? I think with 15.5, the searching would be a lot more stricter.
Deezer:
The high 'incorrect lyrics' percentage would unfortunately be something we have to live with as there is no other way I can do the searching.
I'll re-test those and report back…That would be appreciated.
The 'wrong lyrics' percentages were indeed very wrong. My apologies for that. (also to Deezer and Lyrics Freaks ;-)I'll re-test those and report back…That would be appreciated.
In the end, we should look for solutions that return more lyrics while keeping the incorrect percentages as minimal as possible (preferably avoidable at all, if possible).
it also would have been nice if phred could analyze a few of those and mention a few circumstances where the provider would have returned incorrect lyrics.I will spend some time double-checking lyrics that were retrieved from Google over the past couple of days, but I'm certainly not going through 2000 files. I'll do what I can to check a hundred or so.
I will spend some time double-checking lyrics that were retrieved from Google over the past couple of days, but I'm certainly not going through 2000 files. I'll do what I can to check a hundred or so.I checked the lyrics of 73 tracks that were sourced from Google using plugin v1.1.15.2 or 1.1.15.3. I could not find a single one with incorrect lyrics. Note that these are not obscure artists, but quite mainstream: Grateful Dead, Etta James, Al Kooper, J. Geils, and Janis Joplin, among others.
A new statistic of my finds:This is really great information. I have reordered my providers list based on your findings.
This is really great information. I have reordered my providers list based on your findings.You are welcome phred.
I appreciate the time this must've taken. Thanks.
What would e.g. add variety to my selection would be hip-hop/rap (I don't have much of that)Neither do I. But I assume Genius has a lot of that. I recall reading somewhere that it was initially called Rap Genius, but then later expanded to other genres and stuff.
What would not be useful is music from artists such as The Beatles, U2, Simply Red, Adele, etc.
The lyrics for their music will easily be found by most providers.
I'm honestly shook by Deezer's 0% incorrect return rate.Either it's a result of your great work on the plugin,
It is using the 'free text searching' method that we've already seen to be not too reliable.
While testing Lyrics Freak the other weekend, I realized that my IP address must have been temporarily banned because the provider was no longer going past "...tries to load lyrics".Yeah, rate limiting for sure is another complication/consideration.
This is essentially a call to anyone who knows any other sites with a fairly large database, besides the ones we have already.My #1 recommendation there would be the Metal Archives database (https://www.metal-archives.com/ (https://www.metal-archives.com/)). Despite the site name, this giant discography contains many genres that stretch way beyond the expected "metalhead" foundation, with plenty of cross-over into goth, wave, alternative, etc. When they are available, which is most of the time, the lyrics appear in the album track listing when "Show lyrics" is clicked, as in the example below.
The statistics post from hiccup above has been linked in the second post of this thread.I notice that post also mentions the supported providers:
My #1 recommendation there would be the Metal Archives database (https://www.metal-archives.com/ (https://www.metal-archives.com/)).Thanks. Will look at that one just now.
I notice that post also mentions the supported providers.Tomorrow evening, I will add all of them as plugin defaults. I will see how it goes in the long run.
It might be good if we could add and describe what the added value of each of those providers is (supposed to be).Hope others will step in here whenever they get time.
To make that happen it would be nice if users that use them and have some experience with them could provide some input on that.
Tomorrow evening, I will add all of them as plugin defaults. I will see how it goes in the long run.Are you sure it's a good idea to add them all?
My #1 recommendation there would be the Metal Archives database.A yml for Metal Archives has been added to the providers zip file. You'll also need to re-download the plugin to get it working.
Maybe only add the ones that are proven to have added value, and/or are specifically requested by users?Agreed. I've now added Letras de músicas as a default provider as well.
Agreed. I've now added Letras de músicas as a default provider as well.I had high hopes for that one, because at first it seemed to provide lyrics others didn't have.
But after more testing and fine-tuning, I now don't find it to have much added value any more.That's alright. The less built-in providers, the better for me.
And what is very bad about it, most lyrics it returns have long listings of webpage code beneath them, making things very ugly.
(that might get resolved by tuning the yml, but considering the added value of Letras, I am not going to bother with that myself)
(#92 if you are logged-in)For me, it's also in post #91 while logged-in.
About the extra html code, I will see if I can find a song that returns such (but it'd be a lot quicker if you could remember a song or two that I can test out).(https://i.imgur.com/2LHSzFZ.png)
A yml for Metal Archives has been added to the providers zip file. You'll also need to re-download the plugin to get it working.Metal Archives fails to return a single hit on tracks it definitely has lyrics for, even as the only provider selected in the retrieval options. Am using the yml just posted and the 1.1.15.6 dll with a mod date of 8/9/2022 (4:52 PM) and size of 232,960.
https://www.metal-archives.com/search/advanced/searching/songs?songTitle=<Title>&bandName=<Artist>#songs
Tomorrow, I will look at using the url you've provided. It seems straightforward.Actually, the results from that advanced searching are no good for what we're after.
09-08-2022 11:22:53 [DEBUG] Lyrics request: Waterland - Starlight - Our Nation - Metal Archives
09-08-2022 11:22:53 [INFO] Metal Archives tries to load the lyrics...
09-08-2022 11:22:53 [DEBUG] The constructed identity URL: https://www.metal-archives.com/albums/Waterland/Our Nation
09-08-2022 11:22:54 [DEBUG] gzip compression detected
09-08-2022 11:22:54 [DEBUG] The constructed lyrics URL: https://www.metal-archives.com/release/ajax-view-lyrics/id/3344838
09-08-2022 11:22:55 [DEBUG] gzip compression detected
09-08-2022 11:22:55 [SUCCESS] lyrics found from Metal Archives!
Yes, it's a uniquely constructed site that's for sure.There are some unofficial api's to be found for it. (I didn't know there could exist something like an unofficial api)
hiccup: on the cases when you got lyrics returned from the Metal Archives yml, they were for files containing album tags, not radio streams, correct?Yes. All my testing is done using locally stored files.
I am noticing two instances where the Metal-Archives yml doesn't seem to function properly.Will look at those just now. Some tweaks in the yml should address that.
And tbh, I doubt there are any websites that allow this kind of web access, but since "everyone does it", it's fine so long as we don't fly over the radar.It's probably wise not to turn this into a lengthy discussion addressing all aspects related to this, but for one thing:
Yes. All my testing is done using locally stored files.Yes, as in zero results (for Metal Archives) before today--but see my last post (Reply #121).
Are you seeing different results when streaming?
… but only at about a 50/50 rate compared to Foobar which I used for side-by-side comparison with the same streams.Perhaps you could name a couple of songs or albums that foobar2000's plugin finds that 'our' plugin doesn't?
I'll try to provide something more helpful over the next couple of days as far as missed tracks with corresponding log entries, no time right now.… but only at about a 50/50 rate compared to Foobar which I used for side-by-side comparison with the same streams.Perhaps you could name a couple of songs or albums that foobar2000's plugin finds that 'our' plugin doesn't?
Providing specifics would probably be helpful to Mayibongwe in case he is willing to investigate this further.
...but only at about a 50/50 rate compared to Foobar which I used for side-by-side comparison with the same streams.What hiccup said...more examples would be helpful whenever you get the time.
....metal-archives.com/albums/Helloween/Helloween/935514Those two have the same problem. The website has got two album versions for each of them.
has lyrics for all tracks, but the plugin returns none.
....metal-archives.com/albums/Anvil/Forged_in_Fire/1906
no lyrics gets returned when e.g. playing #7
....metal-archives.com/albums/Carcass/Torn_Arteries/956082I have changed the lyrics pattern for the yml that should address this.
only has the lyrics for #4 and #10
But songs 1-3 will get the lyrics for #4 returned,
and songs 5-9 will get the lyrics for #10 returned.
Something similar for ....metal-archives.com/albums/Hooded_Menace/The_Tritonus_Bell/949017
where track 1 is labelled 'instrumental', but the plugin will retrieve the lyrics of #2 for it.
1. Dysanchely - Songs Of SorrowLooks like #1 and #3 are not properly tagged. The pattern has been told to look for "Songs of Sorrow" and "The Sun Was In My Eyes Part One",
2. Thy Catafalque - Desolatio
3. Woods Of Ypres - The Sun Was In My Eyes Part One
4. Theatres Des Vampires - Queen Of The Damned
5. Shape Of Despair - Quiet These Paintings Are
6. Edge Of Thorns - Revelation
Wow.....metal-archives.com/albums/Helloween/Helloween/935514I have changed the lyrics pattern for the yml that should address this.
has lyrics for all tracks, but the plugin returns none.
....metal-archives.com/albums/Anvil/Forged_in_Fire/1906
no lyrics gets returned when e.g. playing #7
....metal-archives.com/albums/Carcass/Torn_Arteries/956082
only has the lyrics for #4 and #10
But songs 1-3 will get the lyrics for #4 returned,
and songs 5-9 will get the lyrics for #10 returned.
Something similar for ....metal-archives.com/albums/Hooded_Menace/The_Tritonus_Bell/949017
where track 1 is labelled 'instrumental', but the plugin will retrieve the lyrics of #2 for it.
Re-download both the plugin and the yml (btw, I also fixed the extra code showing up in the Letras de músicas provider).
The first search result picked up for #2 is a compilation album that does not show the lyrics.As a matter of fact, there was room for improvement for scenarios #2 and #4. (v1.1.16.1 is needed)
No room for improvement here either (especially when the provider can't be supplied an album name in this case).
Yes, Metal Archives was a good add…While interesting for metalheads, they don't offer that much extra for 'the average listener'.
Thought The Cranberries' Zombie would be the only song from my collection that turns up there, but damn even that did not ;-(I am getting it from Musixmatch?:
I am getting it from Musixmatch?:[Off-topic] @ hiccup: What font are you using for your lyrics? [/Off-topic]
[Off-topic] @ hiccup: What font are you using for your lyrics? [/Off-topic]It's Candara.
It's Candara.TY
Alessi - Oh LoriThis is how the above songs are tagged on the Genius website - the absence or presence of a single letter is enough to throw it off:
Brian Eno and the words of Rick Holland - Bless This Space
Chet Baker - The Thrill Is Gone
Serge Gainsbourg - Ballade de Melody NelsonThis one is a surprise as nothing has been changed to the Deezer yml since its introduction.
name: Genius custom
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [replace, "!!!", "chk-chik-chick"]
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
- [regex, '\.+|,+|(\W+(?=$))|(^\W+)', ""]
- [regex, "'", ""]
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "https://genius.com/{artist}-{title}-lyrics"
pattern: ['<div data-lyrics-container="true" class="Lyrics__Container-sc-1ynbvzw-6 YYrds">(?<lyrics>.*)<div class="Lyrics__Footer-sc-', 's']
post-filters:
- br2nl
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- [regex, '\[.{1,75}\]', ""]
- [regex, '\n{2,}',"\n\n", 's']
- trim
Any thoughts on why genius isn't working for me?I just tested it and the built-in Genius is working fine for me on this latest version of the plugin: 1.1.16.2
09/09/2022 10:57:19 [DEBUG] Lyrics request: The Who - Baba O'Riley - My Generation - Genius
09/09/2022 10:57:19 [INFO] Genius tries to load the lyrics...
09/09/2022 10:57:19 [DEBUG] The constructed URL: https://genius.com/the-who-baba-oriley-lyrics
09/09/2022 10:57:23 [DEBUG] gzip compression detected
09/09/2022 10:57:23 [WARN] The pattern <div class="Lyrics__Container.*?">(?<lyrics>.*)<div class="Lyrics__Footer.*?"> didn't match!
09/09/2022 10:57:23 [INFO] No lyrics found.
09/09/2022 10:57:23 [FAIL] no lyrics found from Genius
09/09/2022 10:57:25 [DEBUG] Lyrics request: The Who - Pinball Wizard - My Generation - Genius
09/09/2022 10:57:25 [INFO] Genius tries to load the lyrics...
09/09/2022 10:57:25 [DEBUG] The constructed URL: https://genius.com/the-who-pinball-wizard-lyrics
09/09/2022 10:57:25 [DEBUG] gzip compression detected
09/09/2022 10:57:25 [WARN] The pattern <div class="Lyrics__Container.*?">(?<lyrics>.*)<div class="Lyrics__Footer.*?"> didn't match!
09/09/2022 10:57:25 [INFO] No lyrics found.
09/09/2022 10:57:25 [FAIL] no lyrics found from Genius
name: Genius (2022-1-27)
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [replace, "!!!", "chk-chik-chick"]
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
- [regex, '\.+|,+|(\W+(?=$))|(^\W+)', ""]
- [regex, "'", ""]
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "https://genius.com/{artist}-{title}-lyrics"
pattern: ['<div data-lyrics-container="true" class="Lyrics__Container-sc-1ynbvzw-6 jYfhrf">(?<lyrics>.*)<div class="Lyrics__Footer-sc-', 's']
post-filters:
- br2nl
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- [regex, '\[.{1,75}\]', ""]
- [regex, '\n{2,}',"\n\n", 's']
- trim
12/09/2022 11:05:37 [INFO] mb_LyricsReloaded in version 1.1.16.2 started!
12/09/2022 11:05:37 [DEBUG] Loading config from field provider_deezer
12/09/2022 11:05:38 [INFO] Provider loaded: Deezer
12/09/2022 11:05:38 [DEBUG] Loading config from field provider_genius
12/09/2022 11:05:38 [INFO] Provider loaded: Genius
12/09/2022 11:05:38 [DEBUG] Loading config from field provider_google
12/09/2022 11:05:38 [INFO] Provider loaded: Google
12/09/2022 11:05:38 [DEBUG] Loading config from field provider_Lyrics_Freak
12/09/2022 11:05:38 [INFO] Provider loaded: Lyrics Freak
12/09/2022 11:05:38 [DEBUG] Loading config from field provider_musixmatch
12/09/2022 11:05:38 [INFO] Provider loaded: Musixmatch
12/09/2022 11:05:38 [DEBUG] Loading config from file: C:\Users\rvanmil\AppData\Roaming\MusicBee\mb_LyricsReloaded\providers\genius.yml
12/09/2022 11:05:38 [INFO] Provider loaded: Genius (2022-1-27)
12/09/2022 11:05:38 [DEBUG] Loading config from file: C:\Users\rvanmil\AppData\Roaming\MusicBee\mb_LyricsReloaded\providers\musixmatch.yml
12/09/2022 11:05:38 [INFO] Provider loaded: Musixmatch
12/09/2022 11:05:38 [INFO] The provider Musixmatch does already exist and will be replaced.
12/09/2022 11:05:38 [DEBUG] Received a notification of type PluginStartup
12/09/2022 11:05:38 [DEBUG] Received a notification of type MusicBeeStarted
12/09/2022 11:05:40 [DEBUG] gzip compression detected
12/09/2022 11:05:51 [DEBUG] Lyrics request: Weeping Tile - 1st Lady - Cold Snap - Google
12/09/2022 11:05:51 [INFO] Google tries to load the lyrics...
12/09/2022 11:05:51 [DEBUG] The constructed URL: https://www.google.com/search?q=1st-lady+weeping-tile+lyrics
12/09/2022 11:05:52 [DEBUG] gzip compression detected
12/09/2022 11:05:52 [WARN] The pattern </div></div></div></div><div class="hwc"><div class="BNeawe tAd8D AP7Wnd"><div><div class="BNeawe tAd8D AP7Wnd">(?<lyrics>.*)Source: didn't match!
12/09/2022 11:05:52 [INFO] No lyrics found.
12/09/2022 11:05:52 [FAIL] no lyrics found from Google
12/09/2022 11:05:59 [DEBUG] Lyrics request: Weeping Tile - Joint Acc't - Cold Snap - Google
12/09/2022 11:05:59 [INFO] Google tries to load the lyrics...
12/09/2022 11:05:59 [DEBUG] The constructed URL: https://www.google.com/search?q=joint-acct+weeping-tile+lyrics
12/09/2022 11:05:59 [DEBUG] gzip compression detected
12/09/2022 11:06:00 [WARN] The pattern </div></div></div></div><div class="hwc"><div class="BNeawe tAd8D AP7Wnd"><div><div class="BNeawe tAd8D AP7Wnd">(?<lyrics>.*)Source: didn't match!
12/09/2022 11:06:00 [INFO] No lyrics found.
12/09/2022 11:06:00 [FAIL] no lyrics found from Google
12/09/2022 11:06:08 [INFO] Plugin disabled
name: pesni guru
loader: static
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
- [regex, '\.+|,+|(\W+(?=$))|(^\W+)', ""]
- [regex, "'", ""]
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "https://www.pesni.guru/text/{artist}-{title}"
pattern: ['spoken:<br />(?<lyrics>.*?)</div>', s]
post-filters:
- [regex, '([.a-z]<br />\r\n<br />)\r\n[A-Z].*?:<br />', '$1', s]
- [regex, '<br />\r\n<br />(\r\n<br />)', '$1', s]
- strip_html
- entity_decode
- clean_spaces
- utf8_encode
14-09-2022 02:28:44 [DEBUG] Lyrics request: Сергей Никитин - Я Спросил У Ясеня - - Deezer
14-09-2022 02:28:44 [INFO] Deezer tries to load the lyrics...
14-09-2022 02:28:44 [DEBUG] The constructed identity URL: https://www.google.com/search?q=Deezer+-+-
14-09-2022 02:28:44 [DEBUG] Lyrics request: Сергей Никитин - Я Спросил У Ясеня - - Google
14-09-2022 02:28:44 [INFO] Google tries to load the lyrics...
14-09-2022 02:28:44 [DEBUG] The constructed URL: https://www.google.com/search?q=-+-+lyrics
14-09-2022 02:28:44 [DEBUG] Lyrics request: Сергей Никитин - Я Спросил У Ясеня - - pesni guru
14-09-2022 02:28:44 [INFO] pesni guru tries to load the lyrics...
14-09-2022 02:28:44 [DEBUG] The constructed URL: https://www.pesni.guru/text/---
14-09-2022 02:28:44 [DEBUG] gzip compression detected
14-09-2022 02:28:44 [DEBUG] gzip compression detected
14-09-2022 02:28:44 [DEBUG] Lyrics request: Сергей Никитин - Я Спросил У Ясеня - - Letras de músicas
14-09-2022 02:28:44 [INFO] Letras de músicas tries to load the lyrics...
14-09-2022 02:28:44 [DEBUG] The constructed URL: http://letras.mus.br/-/-/
name: Pesni Guru
loader: search
variables:
artist:
type: artist
filters:
- lowercase
title:
type: title
filters: artist
headers:
user-agent: Firefox
config:
identity url: "https://pesni.guru/search/{artist}+{title}"
identity pattern: ['<a href="/text/(?<identity>.*?)"', 's']
lyrics url: "https://pesni.guru/text/"
lyrics pattern: ['parentNode.*?</div>(?<lyrics>[\s\S]*?)<a href', 's']
post-filters:
- [regex, '\s\s+', ' ']
- [regex, '<br>', "\n"]
- strip_html
- utf8_encode
- entity_decode
- trim
Hello hunglt. Try this one out:Codename: Pesni Guru
loader: search
variables:
artist:
type: artist
filters:
- lowercase
title:
type: title
filters: artist
headers:
user-agent: Firefox
config:
identity url: "https://pesni.guru/search/{artist}+{title}"
identity pattern: ['<a href="/text/(?<identity>.*?)"', 's']
lyrics url: "https://pesni.guru/text/"
lyrics pattern: ['parentNode.*?</div>(?<lyrics>[\s\S]*?)<a href', 's']
post-filters:
- [regex, '\s\s+', ' ']
- [regex, '<br>', "\n"]
- strip_html
- utf8_encode
- entity_decode
- trim
Wonderful. Glad to hear that it's working well.Could you make a tut about customizing the provider files? There are many sites that I want to try.
I decided to add it to the optional providers zip because it also seems to have quite a number of English songs as well (judging by the ones I've tested with).
So that's another positive. Thanks for suggesting it Hunglt.
Just for the record, I updated lyrics on 28 tracks this morning with Genius as the source, and not one of them had the reported "you might also like" in them.I think it's unlikely to have been a geographical issue.
I wonder if it's happening with specific geographic areas.
If you had a second look, I'm sure you'd spot it somewhere. But in case it truly won't be there, please state one track from the 28 for me to try out with (for curiosity's sake).I copied the lyrics into NotePad++ and did a search for "you might also like" and came up with nothing. I tried it with three tracks. While the tracks are quite popular, the album is a bootleg.
Hadn't noticed, but that's been taken care of now - redownload the plugin.Finally updated to the latest plugin version and newest providers folder (been putting it off since all worked flawlessly except for the recent Genius glitch) and things work at least as good and probably faster than before. Thanks for the tuning on Metal Archives. Best lyrics plugin on the planet now AFAIK and thank you once again for your work.
And thanks for bringing it to attention!
...........
For people using Metal Archives, there was a minor change I made to that provider.
So you'll need the latest yml from the providers zip to get it working with newer plugin versions.
Let's have a look at this website: https://www.lyrics.com/Could you make a tut about customizing the provider files? There are many sites that I want to try.I'll try to come up with a more detailed explanation the coming weekend.
name: Lyrics
loader: search
variables:
artist:
type: artist
filters:
- lowercase
- [replace, ' ', '%2B']
title:
type: title
filters: artist
config:
identity url: "https://www.google.com/search?q=lyrics.com+{title}+{artist}"
identity pattern: ['(?<identity>https://www.lyrics.com/lyric/.*?/{artist}.*?)["&]', 's']
lyrics url: ""
lyrics pattern: ['<pre id="lyric-body-text".*?>(?<lyrics>.*?)</pre>', 's']
post-filters:
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- trim
I'm getting this system error and then MB shuts down. Help!
MusicBee v3.5.8292.34303D (Win10.0), 29 Sep 2022 12:39:
System.NullReferenceException: Object reference not set to an instance of an object.
at CubeIsland.LyricsReloaded.LyricsReloaded.shutdown()
at CubeIsland.LyricsReloaded.LyricsReloaded.Finalize()
30-09-2022 04:04:45 [DEBUG] Lyrics request: Strigoi - Bathed In A Black Sun - Viscera - Metal Archives
30-09-2022 04:04:45 [INFO] Metal Archives tries to load the lyrics...
30-09-2022 04:04:45 [DEBUG] The constructed google identity URL: https://www.google.com/search?q=Metal Archives+Strigoi+Bathed In A Black Sun+Viscera
30-09-2022 04:04:47 [DEBUG] The constructed identity URL: https://www.metal-archives.com/albums/Strigoi/Viscera/1057366
30-09-2022 04:04:48 [DEBUG] The constructed lyrics URL: https://www.metal-archives.com/release/ajax-view-lyrics/id/6380887
30-09-2022 04:04:49 [SUCCESS] lyrics found from Metal Archives!
I'm not entirely sure why the last search is not being conducted on your side. It may be that your IP has been temporary banned on the Metal Archives website.Access to the Metal Archives site is blocked in Russia (https://forum.metal-archives.com/viewtopic.php?f=3&t=131317 (https://forum.metal-archives.com/viewtopic.php?f=3&t=131317)), about Deezer I don't know.
01.10.2022 09:54:52 [DEBUG] Lyrics request: Amorphis - My Kantele - My Kantele - Metal ArchivesDid you get the lyrics for these two tracks?
01.10.2022 09:57:44 [DEBUG] Lyrics request: Deathspell Omega - Enantiodromia - The Long Defeat - Metal Archives
Other strange thing the lyrics on MA and the the ones the plugin downloads differ as they have lines like (verse1) (chorus) (guitar solo) added.I can't see where the difference would come from as the MA provider is set to bring in the lyrics as they appear on the site - without any additional formatting.
Do you get the same on your system?I do not have any metal tracks in my collection. So this provider is always unticked for me.
I found out what is the problem. It seems that even though i have only metal archives selected it grabs lyrics from genius.FWIW, I had a look at the Beenius thread and it seems this is not the first time somebody's come across something like this.
So I removed beegenius plugin and now lyrics reloaded doesn't work for deezer and MA but works with genius an get this without verse, chorus etc lines.
Also, I'm not sure if other lyric plugins need to be disabled, but lyrics-reloaded should be disabled.Forum member, Redearth, also appears to have encountered a similar issue where having both Reloaded and Beenius enabled at the same time caused problems.
With them both enabled, lyrics-reloaded just doesn't seem to work, but benius is fine.
But once we get it sorted out in PMs, I'll be back here to say what was up.The issue was just as sveakul had surmised in his reply (https://getmusicbee.com/forum/index.php?topic=36952.msg204867#msg204867) to Corliss Rain's similar bug report.
Just wanted to say a big thank you to Mayibongwe for the plugin! No issues on my end and it saves me so much time it's ridiculous :DThanks Tybot. Glad to hear that it's functioning without any issues.
could you please give us a "changelog" as to what you have added/modified in 1.1.16.9 since 1.1.16.6?The internal changes are transparent and mostly just a revision in the implementation of the code I had added in when I began working on this.
Why would the plugin's (1.1.16.9) built-in Musixmatch source return no results for "Duran Duran - Electric Barbarella" when the lyrics do indeed exist on that site?Can you run the search again. I seem to be getting the lyrics now.
Also, the Deezer source is probably in the need of a re-tune, it leads the list in returning inaccurate results and I had to eventually un-check it.There is indeed room for improvement.
name: Deezer 2.0
loader: search
variables:
artist:
type: artist
filters:
- lowercase
title:
type: title
filters: artist
config:
identity url: "https://www.deezer.com/search/{title}+{artist}/track"
identity pattern: ['"SNG_ID":"(?<identity>.*?)"', 's']
lyrics url: "https://www.deezer.com/en/track/"
lyrics pattern: ['<div>Lyrics</div>(?<lyrics>.*?)</div>', 's']
post-filters:
- strip_html
- utf8_encode
- entity_decode
- trim
This one has only drawn one inaccurate result so far, something totally different for "Kate Bush - The Sensual World" that all the other souces in the plugin got correct.For some reason, the site is not listing that song as the first search result.
identity pattern: ['"SNG_ID":"(?<identity>\d+)","PRODUCT_TRACK_ID":"\d+","UPLOAD_ID":\d+,"SNG_TITLE":"{title}","ART_ID":"\d+","PROVIDER_ID":"\d+","ART_NAME":"{artist}"', 's']
So, question to people who care enough to comment:Perhaps this could be an approach?:
Should I replace the current built-in Deezer (loose searching) with this version (strict searching)?
The latest build now has the strict version of Deezer built into the plugin.This is working really well.
If anyone wants the 'fuzzy' or 'loose' versions for Genius and Deezer, they can get those from the providers folder included in the plugin download link.
Great work again Mayibongwe!A +1 to Mayibongwe for implementing this.
My assumption is the fuzzy versions run through Google and the strict versions don't.Yes, that's right. The fuzzy versions get their search results from Google, while the strict versions use their own (website) search functions.
Are you using Deezer, or Deezer 2.0?Just 'Deezer' as the plugin provides by default. (and then the fuzzy version)
Thanks hiccup for another fine analytical observation.You're welcome.
I am noticing a lot of lyrics retrieved using Genius (fuzzy) getting "You might also like" appended at the end of the lyrics.
(https://i.imgur.com/3irS8JA.png)
For the purpose of testing, here some songs that are affected by this:
Khruangbin & Leon Bridges - Mariella
Material - Seven Souls
Minus the Bear - Thanks for the Killer Game of Crisco® Twister
John Martyn - Some People Are Crazy
(it's not something that will show up frequently for most users because in most cases 'Genius' (or MusixMatch or Deezer) will retrieve the lyrics before 'fuzzy' does)
I'm not aware of a 2.0 version. Perhaps it was something that once differentiated between strict and fuzzy versions of Deezer?https://getmusicbee.com/forum/index.php?topic=36952.msg205197#msg205197
I am guessing that is a version similar to what is now included with Lyrics Reloaded to replace a previous more 'fuzzy' version.I'm not aware of a 2.0 version. Perhaps it was something that once differentiated between strict and fuzzy versions of Deezer?https://getmusicbee.com/forum/index.php?topic=36952.msg205197#msg205197
I am noticing a lot of lyrics retrieved using Genius (fuzzy) getting "You might also like" appended at the end of the lyrics.Oops, I forgot to include that correction when I made the upload. I had grabbed an old yml that was around before this line had started showing up.
I am guessing that is a version similar to what is now included with Lyrics Reloaded to replace a previous more 'fuzzy' version.Yes, it's the same (strict) version which is now built into the plugin.
Yes, it's the same (strict) version which is now built into the plugin.So for my own clarity, Deezer is built in, while Deezer 2.0 is a user-added YML. And they're both the same (strict), correct?
So for my own clarity, Deezer is built in, while Deezer 2.0 is a user-added YML. And they're both the same (strict), correct?Yes, that's right. The Deezer 2.0 that I had posted earlier in the thread is completely identical to the current (v1.1.17.0) built-in Deezer.
And the new updated download link still says v1.1.17.0. So is what I just downloaded 1.1.17.0, or something newer that has the "you may also like" fix in it?
As always, I really appreciate the effort and time you've invested in testing and providing feedback on the accuracy rate of these providers.No problem. I was just curious to understand how the selection of providers and their order influenced getting good or bad results.
FWIW just today started seeing ticket promos embedded in the built-in latest Genius source for SOME resultsInteresting, and also odd.
A thought:Just so I'm getting you right:
Perhaps something could be done so that the plugin performs optimal out-of-the-box.
Without the user needing to search and learn how to set and tweak things to get optimal results.
FWIW just today started seeing ticket promos embedded in the built-in latest Genius source for SOME results.Like hiccup, I'm not getting those lines either when testing those two songs.
(Florence and the Machine - What kind of man?)
(The Strokes - At the Door)
I'm so happy to see this is going well. Good work Mayibongwe.Thanks for letting me in on the good feeling of being a part of something that people seem to enjoy on the daily.
Just so I'm getting you right:Yes, exactly.
Is the proposal that freshly installed versions of this plugin should load the default providers in this order? (Genius, MusixMatch, Deezer, Genius fuzzy, Deezer fuzzy)
I have gotten good results from Lyrics Freak,Out of curiosity, could you share some songs that Lyrics Freak matched that the usual suspects didn't?
I meant that it returns good results for me when I choose to compare lyrics sources using the "Search Next Provider" option, not that it is the only source that provided a hit.Ah ok. So it's safe to assume that it didn't provide any lyrics that Genius/MusixMatch/Deezer didn't find for you too?
and yesterday actually had Google find one none of the others did, although that is definitely an exception.That's interesting because far as I know both Deezer and Google use LyricFind as their source.
I would leave it to you if you think both fuzzy providers should also be ticked out-of-the box.That's what I'd prefer too, but that -- leaving them unticked -- would have been out of my control anyway.
Personally I would, since it improves the rate of matched lyrics substantially. (I experienced an improvement of around 15–20 percent)
But they will also be the ones responsible for (very seldom) retrieving an incorrect lyric for a song.
Another suggestion would be to remove Lyrics Freak from the plugin and make it available as a providers yml.Agreed. Those top 3 (Genius, Musixmatch and Deezer) most likely already bring in whatever Google and Lyrics Freak would have brought in.
Perhaps 'Google' could also be removed and made available as a yml.
Although that is doable from the plugin's side, it looks like recent MusicBee versions insist on sorting the providers by alphabetical order.I've made the necessary changes to the plugin.
In v3.5.8135, the default order is decided by the plugin. But on my current v3.5.8311, it seems to be using alphabetical order.
If I've understood the proposal correctly, I would need to ask Steven to get MB to revert back to the old sorting behaviour if this is to work.
I've made the necessary changes to the plugin.But you haven't uploaded it yet, right?
Thanks so much Mayibongwe for reworking this plugin. Works great!Happy to hear that. The feedback is appreciated.
But you haven't uploaded it yet, right?I had forgotten (again) to update the version number on the download page.
B.t.w. the add-ons page says 1.1.17.0, but on the download page it says 1.2.0.0.
But it doesn't seem to have the latest changes.
Is that not what you're seeing on your side?I am seeing this:
I was assuming the plugin download was not updated with what you mentioned on Okt. 19th since on Google Drive the file has Okt. 17th as latest modification date.I had already made those suggested changes the day you proposed them (17th).
Any ideas?What version of MB are you using? (Help > About) INCLUDE THE LETTER (if any) AFTER THE NUMBER
So users who would be installing this plugin for the very first time would have those providers auto-ticked and appearing in that order.I now know what I did 'wrong'.
I just got this plugin setup and i can search for lyrics manually and i see them being looked up in the log but i cant seem to get this to work automatically.I'm not sure I understand. The lyrics auto-retrieve setting only works for the playing track.
under tags(2) I have both auto retrieve and save turn on.
Changing tracks results in [DEBUG] Received a notification of type TagsChanging in the log but lyrics are never auto searched.
I've noticed an issue now and in the past where if a song title from radio metadata contains a bracketed expression, MusixMatch will not return a hit for it even when it has the lyrics. Two examples are "Nosferatu - Bombers [b0b]", and "Wumpscut - Hang Him Higher [aET]."Looking at the log, I can see that the square brackets are being removed by the provider.
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [regex, "'", ""]
- [regex, "/", " "]
- [regex, '\s&(?=\s)', " "]
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
- [regex, '[^\sa-z0-9]\s*', ""]
- [strip_nonascii, -]
title:
type: title
filters:
- strip_diacritics
- lowercase
- [regex, " '|' |/", " "]
- [regex, "'", " "]
- [regex, '\.+|,+|/+|(\W+(?=$))|(^\W+)', ""]
- [regex, '\s&(?=\s)', " and"]
- [strip_nonascii, -]
I do still have chartlyrics at the top though, and in your screenshot it is at the bottom. Did you do that manually?Yes, I had unticked and moved it to the bottom manually.
Lyrics Reloaded does not have any control over chartlyrics as it is a MB native lyrics provider - which is enabled and set to appear at the top by default.It's not doing much harm either.
I just got this plugin setup and i can search for lyrics manually and i see them being looked up in the log but i cant seem to get this to work automatically.I'm not sure I understand. The lyrics auto-retrieve setting only works for the playing track.
under tags(2) I have both auto retrieve and save turn on.
Changing tracks results in [DEBUG] Received a notification of type TagsChanging in the log but lyrics are never auto searched.
If you have the plugin providers enabled and want MusicBee to use those to find lyrics for tracks without them, then:
- select the relevant tracks, go to Tools > Tagging Tools > Auto-Tag by Track > Update Missing Lyrics...
if that's not what you're asking, then you'll have to elaborate or rephrase your situation.
Looking at the log, I can see that the square brackets are being removed by the provider.When it removes the brackets, are the "garbage characters" inside the brackets also being removed? Just trying to find an answer as to why these songs are NEVER found by MusixMatch, when the Foobar LSP plugin has no problem returning results from there when they are present on the website. And don't worry, I CAN take "I don't know, deal" for an answer, it's nothing crtitical. Why those streams mess with the title field at all is the real issue I guess. Don't spend any time on it.
And that's because the Musixmatch yml has instructions that tell the plugin to do just that
Thank you, I was able to figure it out from here.No problem. Glad to hear that you've got it figured out now.
Only the brackets are being removed from what I can see.That explains why a match is not being made. I was hoping there was a regex expression that could be added to the yml that would strip the brackets, AND everything INSIDE the brackets, from the title search, in which case the match would be made. Oh well. I would rather you not just make a "fuzzy" version of MusixMatch instead, because I believe the streams in question may be inserting the bracketed garbage deliberately to foul lyrics searches. Why make a less-strict version that would affect everything when only two sites (AFAIK) are doing this. Thanks for looking into it anyway.
Having a second closer look, the reason those two songs you made examples of aren't getting matched is because the Musixmatch yml is using the strictest form of searching.
Meaning that the artist and title fed to it have to match exactly what is there on the site.
The song Bombers by Nosferatu is hosted on this url: https://www.musixmatch.com/lyrics/Nosferatu/Bombers
So it's not working because you are feeding it the title "Bombers [b0b]".
And after the yml has done its filtering to that title, the provider is now searching for "Bombers b0b" which isn't on the site either.
Can the brackets and their contents be stripped before sending a search?Reading it all again, I now realize I missed this part of your post. Sorry about that, it was a mistake on my part.
@sveakul, the change you requested was also included in the update to the (strict) Musixmatch yml.Mayibongwe, the newest providers list plus the 1.2.0.2 plugin version are yielding the best results ever. First of all, the new strict MusixMatch where you added the "strip bracketed expressions from title" now performs BEAUTIFULLY on both those streams that use those unfortunate additions. On one title, ONLY the strict MM found the lyrics and not the fuzzy version (Alison Moyet - That Ole Devil Called Love [qd9]). The plugin also seems to function more smoothly in general between ALL its sources. Can't see any room for improvement here, THANK YOU for your efforts!
But I checked that before and I can't edit anything except the order. I want to add and remove lyric searching sitesIf you're on the latest plugin version (v1.2.0.2):
I also wanted to replace the right-click option 'Google Search' with a different search engine, but I don't think there's a plugin for that.Yep, users do not have any control over that. So that won't be possible in any way.
name: Google
loader: static
variables:
artist:
type: artist
filters:
- lowercase
- [regex,'[(][a-zA-Z-\s]+[)]',""]
title:
type: title
filters: artist
config:
url: "https://www.google.com/search?q={title}+{artist}+lyrics"
pattern: ['class="BNeawe tAd8D AP7Wnd">(?<lyrics>.*)Source:', 's']
post-filters:
- [regex,'.*?<div class="BNeawe tAd8D AP7Wnd">','']
- strip_html
- utf8_encode
- entity_decode
- trim
[regex, '(.*)\s\(.*', '$1']
Hello Gauld, welcome to the forum.
Try this one out:Code[regex, '(.*)\s\(.*', '$1']
variables:
artist:
type: artist
filters:
- lowercase
- [regex, '(.*)\s\(.*', '$1']
But I still have a "no lyrics found"To me, the way that you are using the 'artist' tag is not only incorrect, but it's also just asking for problems.
But I still have a "no lyrics found"To me, the way that you are using the 'artist' tag is not only incorrect, but it's also just asking for problems.
It might get solved for using this plugin by bending backwards and tweaking regexes in yml's, but even then it's very likely to pose various other problems further down the road.
If the 'country' of a band is important to you, why not just use an appropriate tag for it?
It's pretty much essential for music managers such as MusicBee to make sure that you are using tags for what they are designed and intended for.
And the same goes for plugins. (such as LyricsReloaded and many others)
Bad input ≥ bad output.
Meanwhile, if someone has a solution it'll be cool to know.When I do a test with that song including having the country in brackets, both Genius and Deezer find the lyrics without a problem.
So why not use Genius and Deezer and forget about Google?
If I strip the country name and the brackets, it works great :I tried that track (without country) using the exact same providers your screenshot shows, and I don't get lyrics retrieved at all.
I tried that track (without country) using the exact same providers your screenshot shows, and I don't get lyrics retrieved at all.
(so google didn't get it either)
Do you know which provider retrieved it for you?
Is it one that is below the visible ones in your screenshot?
Sodom (Ger) => Does not retreive any lyricsI now see that my previous attempt with Metal Archives failed because they seem to have my IP on a blacklist.
Sodom => Works fine in this case.
name: Metal Archives
loader: search
variables:
artist:
type: artist
filters:
- [regex, '^(\w*\s?\w+)*(.*)', '$1']
config:
identity url: "(?<identity>https://www.metal-archives.com/albums/{artist}/.*?)[\"&]"
identity pattern: ['\n{title}.*?\n.*?id="song(?<identity>.*?)"', 'is']
lyrics url: "https://www.metal-archives.com/release/ajax-view-lyrics/id/"
lyrics pattern: ['(?<lyrics>.*)', 's']
post-filters:
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- trim
Note that I removed the original regex line and replaced it with a new one.
The original line should probably not be removed, but I don't know if you can have two regex lines in a yml, or that they could perhaps be combined into one somehow.
Hopefully somebody more experienced can clear that up.
So it's best to consider my attempt as a beta test that probably needs to be refined and improved by somebody who has better understanding of this stuff.
P.S.
So in hindsight, this was never about the Google yml?
Thanks man it works !Great.
I started tu use a free custom tag renamed as "Country" to use as a "group by" option for now. I'll see if I start editing my whole playlist and get rid of the actual Band (Country) stuff.And/or what you can do, create a virtual tag like:
HiThe source has to be sending synced lyrics--if it does, MusicBee supports the display.
Really love your plugin ♫
may I ask a question ?
can't download and save synch lyrics because it's a musicbee limit or the plugin limit?
thanks
And/or what you can do, create a virtual tag like:
Artist (c)
<Artist>$IsNull(<Country>,," ("<Country>")")
Then you could use that one for displaying, filtering, playlists etc., while plugins such as LyricsReloaded, but also things like MusicBee's artwork retrieval will still use the regular Artist tag to get good results.
P.S.
This formula assumes you populate the Country tag like: Ger, and not like (Ger)
Source: Letras de músicas
Aprenda idiomas com</p>
<p class="learnEnglishWith-songName">Letras Academy</p>
</div>
</a>
</section>
<div id="an-above-above" class="an-pub an-above is-on above" ></div>
<div class="cnt-letra p402_premium"> <div class="an-stick stick-left"><div id="pub_38" data-refresh="15" data-intersectionratio="0.40" class="an-stick-trad with-refresh an-pub" style="display:block;"><div id="pub_38_ad_refresh"><div id="pub_38_ad"></div></div></div></div> <div class="an-stick stick-right"><div id="pub_39" data-refresh="15" data-intersectionratio="0.40" class="an-stick-trad with-refresh an-pub" style="display:block;"><div id="pub_39_ad_refresh"><div id="pub_39_ad"></div></div></div></div> <p>Move a little to the middle baby
Please don't stop
Shake it down to the lower ground,
Let it drop
Bring it back where I like it baby
You know how I like it baby
You know how I like it baby X 2
You know how I like it baby
You know how I like it baby
Just like that baby, just like that X 2
Kisses in the morning ... baby please don't stop
Your ... body is incredible high
Wanna taste you in my mouth let me kiss you honey
You know how I like it baby
You know how I like it baby X 2
You know how I like it baby
You know how I like it baby
Just like that baby, just like that X2
Now what am I gonna do, cause I can't take my eyes off you
Take my mind off you, keep my hands off you
You're breaking me, making me loose my cool X 2
You know how I like it baby
You know how I like it baby
Just like that baby, just like that X2
Yeah, uh, right there, come on baby
Uh, come on, oh, oh, oh, huuu
Yeah, can you feel it?
Uh, that's how I like it baby
Here we go now
You know how I like it baby
You know how I like it baby
Just like that baby, just like that X2
Please don't stop,
Keep it going and you don't stop
You know how I like it baby
Please don't stop,
Let it drop
Give me more, give me more
Now what am I gonna do, cause I can't take my eyes off you
Take my mind off you, keep my hands off you
You're breaking me, making me loose my cool.</p> </div> <div class="letra-menu"> <a href="/candy-dulfer/please-dont-stop/enviar_traducao.html" class="lyric_event lm_lang lm_lang_pt js-send-translation" data-tt='Tradução' data-viaplayer="true" data-ct-action="Nav Enviar Traducao" data-ct-label="Menu lateral (letra)"><i></i>Enviar Tradução</a> <a href="#" class="lyric_event lm_add" data-action="Adicionar à playlist" data-namespace="Menu lateral"><i></i>Adicionar à playlist</a> <b class="lm_siz"><i></i>Tamanho <span> <button class="lyric_event lm_siz_l" data-action="Reduzir Tamanho" data-namespace="Menu lateral">A</button> <button class="lyric_event lm_siz_r" data-action="Restaurar Tamanho" data-namespace="Menu lateral">Restaurar</button> <button class="lyric_event lm_siz_m" data-action="Aumentar Tamanho" data-namespace="Menu lateral">A</button> </span> </b> <a href="https://www.cifraclub.com.br/candy-dulfer/" target="_blank" rel="noopener" class="lyric_event lm_cif" data-action="Nav Cifra" data-namespace="Menu lateral"><i></i>Cifra</a> <a rel="nofollow noopener" target="_blank" href="/candy-dulfer/please-dont-stop/please-dont-stop-print.html" class="lyric_event lm_pri" data-action="Imprimir" data-namespace="Menu lateral"><i></i>Imprimir</a> <a rel="nofollow" href="/contribuicoes/enviar_correcao/candy-dulfer/please-dont-stop/" class="lm_edi" data-ct-action="Nav Enviar Correcao" data-ct-label="Menu lateral (letra)"><i></i>Corrigir</a> <script type="text/template" class="addToPlaylistTemplate -lyricPage"> <div data-songid="" class="addToPlaylist modal -lyricPage"> <div class="addToPlaylist-body"> <ul class="js-playlist-list-create"> <li class="addToPlaylist-new"> <i></i>Criar playlist <div class="addToPlaylist-create"> <input type="text" class="addToPlaylist-input"> <span class="addToPlaylist-counter">0/100</span> <button class="js-create-playlist bt-x">Criar</button> </div> </li> </ul> <ul class="playlist-lists"></ul> </div> </div> </script> </div> <div class="an-lyric-side"> <div id="pub_3" data-refresh="15" data-intersectionratio="0.40" class="an-letra with-refresh an-pub" style="display:block;"><div id="pub_3_ad_refresh"><div id="pub_3_ad"></div></div></div> <div id="pub_27" data-refresh="15" data-intersectionratio="0.40" class="an-letra with-refresh an-pub" style="display:block;"><div id="pub_27_ad_refresh"><div id="pub_27_ad"></div></div></div> </div>
<div id="an-above-below" class="an-pub an-above is-on below" style="display:none;"></div>
</div> <div class="letra-info g-sp"> <div class="letra-info_comp"> Composição: Candy Dulfer / Chance Howard / Ulco Bed. <a class="contrib-link" rel="nofollow" href="/contribuicoes/enviar_correcao/candy-dulfer/please-dont-stop/compositor/" data-ct-action="Click Corrigir compositor" data-ct-label="Letra">Essa informação está errada? Nos avise.</a> </div> <div class="letra-info_user"> Enviada por <a class="contrib-link" href="/membros/3677878/" data-ct-action="Click User que enviou letra" data-ct-label="Letra">Agnes</a>. <a class="contrib-link letra-info_contrib" rel="nofollow" href="/contribuicoes/enviar_correcao/candy-dulfer/please-dont-stop/" data-mct-action="Click Link Enviar Revisão" data-mct-label="Letra">Viu algum erro? Envie uma revisão.</a> </div> </div> <div id="pub_5" data-refresh="15" data-intersectionratio="0.40" class="an-full g-1 g-mb with-refresh an-pub" style="display:block;"><div id="pub_5_ad_refresh"><div id="pub_5_ad"></div></div></div> </article> <hr class="hr" /> <div class="lyricDictionary g-pr"> <a href="/academy/?utm_source=letras.mus.br&utm_medium=dicionario&utm_id=landing_page&utm_content=link_letra" data-forward="true" class="lyricDictionary-logo academyLogo">Letras Academy</a> <h2 class="h3">Dicionário de pronúncia</h2> <div class="dictionaryTags "> <ul> <li><a href="/academy/dicionario/before/">Before</a></li> <li><a href="/academy/dicionario/would/">Would</a></li> <li><a href="/academy/dicionario/heavan/">Heavan</a></li> <li><a href="/academy/dicionario/ever/">Ever</a></li> <li><a href="/academy/dicionario/wont-2/">Won't</a></li> </ul> </div> <a class="cnt-more" href="/academy/dicionario/">Ver mais palavras</a> </div> <hr class="hr" /> <div class="latestNews g-1 g-mb g-pr cnt--dummy js-ajax-include" data-src="/candy-dulfer/latest_news.html?bottom=1"> <h3 class="h3">Posts relacionados</h3> <div class="latestNews-inner g-fix"> <div class="cnt g-1-5 cnt--clamp4"> <em><img class="lastNews-image" src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" width="191" height="107" alt=""></em> <b></b> </div> <div class="cnt g-1-5 cnt--clamp4"> <em><img class="lastNews-image" src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" width="191" height="107" alt=""></em> <b></b> </div> <div class="cnt g-1-5 cnt--clamp4"> <em><img class="lastNews-image" src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" width="191" height="107" alt=""></em> <b></b> </div> <div class="cnt g-1-5 cnt--clamp4"> <em><img class="lastNews-image" src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" width="191" height="107" alt=""></em> <b></b> </div> <div class="cnt g-1-5 cnt--clamp4"> <em><img class="lastNews-image" src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" width="191" height="107" alt=""></em> <b></b> </div> </div> <a class="cnt-more" href="/blog/">Ver mais no Blog</a> </div> <div id="comments" class="comments g-fix"> <div class="g-2-3"> <div class="js-fb-comments"></div> </div> <div class="g-1-3"> <div id="pub_11" data-refresh="15" data-intersectionratio="0.40" class=" with-refresh an-pub" style="display:block;"><div id="pub_11_ad_refresh"><div id="pub_11_ad"></div></div></div> </div> </div> </div> </div> <div id="cnt_footer"> <div id="pub_9" data-refresh="15" data-intersectionratio="0.40" class="an-full g-1 g-mb with-refresh an-pub" style="display:block;"><div id="pub_9_ad_refresh"><div id="pub_9_ad"></div></div></div> <hr class="hr" /> <div class="g-1"> <div class="artista-top g-sp g-pr"> <script type="text/template" class="addToPlaylistTemplate -songlistPage"> <div data-songid="" class="addToPlaylist modal -songlistPage"> <div class="addToPlaylist-header"> Adicionar à playlist <a class="bt-close -no-space" href="#" rel="nofollow" id="js-close-a"></a> </div> <div class="addToPlaylist-body"> <ul class="js-playlist-list-create"> <li class="addToPlaylist-new"> <i></i>Criar playlist <div class="addToPlaylist-create"> <input type="text" class="addToPlaylist-input"> <span class="addToPlaylist-counter">0/100</span> <button class="js-create-playlist bt-x">Criar</button> </div> </li> </ul> <ul class="playlist-lists"></ul> </div> </div> </script> <div class="modal_overlay"></div> <script id="cnt-list-options-modal" type="text/template"> <div class="cnt-list-options-modal -spaced"> <ol class="cnt-list-options-list"> <li> <button class="js-add-to-playlist cnt-list-option -bt" href="#">Adicionar à playlist</button> </li> </ol> <ol class="cnt-list-options-list -share"> <li class="cnt-list-option"> <div> <span>Compartilhar</span> <div class="sh-container"> <div class="sh js-share-playlist"> <a class="sh-bt sh-f" rel="nofollow" data-nofollow="true" title="Facebook" href="http://www.facebook.com/sharer.php?u=<%= shareurl %>"e=<%- sharetext %>">Facebook</a> <a class="sh-bt sh-t" rel="nofollow" data-nofollow="true" title="Twitter" href="http://twitter.com/share?url=<%= shareurl %>&related=letras&text=%E2%99%AB%20<%- sharetext %>%20no%20@letras">Twitter</a> </div> <div title="Copiar link" data-share="<%= shareurl %>" class="sh-link">Copiar link</div> </div> </div> </li> </ol> </div> </script> <h2 class="h3"><a href="/candy-dulfer/">Mais ouvidas de Candy Dulfer</a></h2> <i class="h-sep"></i> <div class="list-container"> <div class="list-overlay"></div> <ol class="cnt-list cnt-list--num -flex-col-2 js-song-list"> <li class="cnt-list-row -song" data-id="2082982" data-dns="candy-dulfer" data-url="please-dont-stop" data-artist="Candy Dulfer" data-name="Please Don't Stop" data-shareurl="https://www.letras.mus.br/candy-dulfer/please-dont-stop/" data-sharetext="Please Don't Stop de Candy Dulfer" > <a href="/candy-dulfer/please-dont-stop/" title="Please Don't Stop"><span>Please Don't Stop</span></a> <div class="song-options"></div> </li> </ol> </div> </div> </div> <div id="pub_24" data-refresh="15" data-intersectionratio="0.40" class="an-full g-1 g-mb with-refresh an-pub" style="display:block;"><div id="pub_24_ad_refresh"><div id="pub_24_ad"></div></div></div> <hr class="hr" /> <div class="playlists-relacionadas g-1 g-sp g-pr cnt--dummy js-ajax-include" data-src="/candy-dulfer/playlists.html?bottom=1" data-lazy="true"> <h3 class="h3">Playlists relacionadas</h3> <i class="h-sep"></i> <div class="g-fix"> <div class="cnt cnt--pl cnt--fb g-1-4"> <i><img src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" width="155" height="87" alt=""/></i> <b></b> <span></span> </div> <div class="cnt cnt--pl cnt--fb g-1-4"> <i><img src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" width="155" height="87" alt=""/></i> <b></b> <span></span> </div> <div class="cnt cnt--pl cnt--fb g-1-4"> <i><img src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" width="155" height="87" alt=""/></i> <b></b> <span></span> </div> <div class="cnt cnt--pl cnt--fb g-1-4"> <i><img src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" width="155" height="87" alt=""/></i> <b></b> <span></span> </div> </div> <a class="cnt-more" href="/playlists/">Ver mais playlists</a> </div> <hr class="hr" /> <div id="js-cnt-tops" data-page="lyric"> <div class="home-tops g-1 g-mb g-pr"> <div class="h1"> <a href="/mais-acessadas/">Mais acessados </a> </div> <div class="cnt-filter"> <div class="cnt-filter_tabs"> <a class="js-tab-link on" data-genre="0" data-slug="" href="/mais-acessadas/">Todos</a> <a class="js-tab-link " data-genre="666" data-slug="rock" href="/mais-acessadas/rock/">Rock</a> <a class="js-tab-link " data-genre="30" data-slug="gospelreligioso" href="/mais-acessadas/gospelreligioso/">Gospel</a> <a class="js-tab-link " data-genre="9" data-slug="sertanejo" href="/mais-acessadas/sertanejo/">Sertanejo</a> <div class="cnt-filter_more js-cnt-filter-more-genre"> <button class="js-filter-more-genre " data-default="Mais" data-genre="0" data-slug="">Mais</button> <div class="cnt-filter_drop modal js-cnt-filter_drop-genre" data-placeholder="Digite o estilo musical" data-options='[{"ID":1,"Slug":"alternativo","Label":"Alternativo"},{"ID":7,"Slug":"axe","Label":"Axé"},{"ID":38,"Slug":"blues","Label":"Blues"},{"ID":78,"Slug":"bolero","Label":"Bolero"},{"ID":39,"Slug":"bossa-nova","Label":"Bossa Nova"},{"ID":69,"Slug":"brega","Label":"Brega"},{"ID":15,"Slug":"classico","Label":"Clássico"},{"ID":42,"Slug":"country","Label":"Country"},{"ID":86,"Slug":"cuarteto","Label":"Cuarteto"},{"ID":75,"Slug":"cumbia","Label":"Cumbia"},{"ID":23,"Slug":"dance","Label":"Dance"},{"ID":50,"Slug":"disco","Label":"Disco"},{"ID":55,"Slug":"eletronica","Label":"Eletrônica"},{"ID":63,"Slug":"emocore","Label":"Emocore"},{"ID":27,"Slug":"fado","Label":"Fado"},{"ID":35,"Slug":"folk","Label":"Folk"},{"ID":8,"Slug":"forro","Label":"Forró"},{"ID":22,"Slug":"funk","Label":"Funk"},{"ID":58,"Slug":"funk-internacional","Label":"Funk Internacional"},{"ID":30,"Slug":"gospelreligioso","Label":"Gospel/Religioso"},{"ID":21,"Slug":"grunge","Label":"Grunge"},{"ID":71,"Slug":"guarania","Label":"Guarânia"},{"ID":53,"Slug":"gotico","Label":"Gótico"},{"ID":37,"Slug":"hard-rock","Label":"Hard Rock"},{"ID":18,"Slug":"hardcore","Label":"Hardcore"},{"ID":36,"Slug":"heavy-metal","Label":"Heavy Metal"},{"ID":64,"Slug":"hip-hop-rap","Label":"Hip Hop/Rap"},{"ID":66,"Slug":"house","Label":"House"},{"ID":14,"Slug":"indie","Label":"Indie"},{"ID":20,"Slug":"industrial","Label":"Industrial"},{"ID":54,"Slug":"infantil","Label":"Infantil"},{"ID":59,"Slug":"instrumental","Label":"Instrumental"},{"ID":31,"Slug":"j-popj-rock","Label":"J-Pop/J-Rock"},{"ID":48,"Slug":"jazz","Label":"Jazz"},{"ID":11,"Slug":"jovem-guarda","Label":"Jovem Guarda"},{"ID":26,"Slug":"k-pop","Label":"K-Pop"},{"ID":5,"Slug":"mpb","Label":"MPB"},{"ID":74,"Slug":"mambo","Label":"Mambo"},{"ID":70,"Slug":"marchas-hinos","Label":"Marchas/Hinos"},{"ID":76,"Slug":"mariachi","Label":"Mariachi"},{"ID":81,"Slug":"merengue","Label":"Merengue"},{"ID":85,"Slug":"musica-andina","Label":"Música andina"},{"ID":62,"Slug":"new-age","Label":"New Age"},{"ID":65,"Slug":"new-wave","Label":"New Wave"},{"ID":16,"Slug":"pagode","Label":"Pagode"},{"ID":4,"Slug":"pop","Label":"Pop"},{"ID":2,"Slug":"poprock","Label":"Pop Rock"},{"ID":45,"Slug":"post-rock","Label":"Post-Rock"},{"ID":25,"Slug":"power-pop","Label":"Power-Pop"},{"ID":19,"Slug":"psicodelia","Label":"Psicodelia"},{"ID":17,"Slug":"punk-rock","Label":"Punk Rock"},{"ID":61,"Slug":"rb","Label":"R&B"},{"ID":77,"Slug":"ranchera","Label":"Ranchera"},{"ID":13,"Slug":"reggae","Label":"Reggae"},{"ID":47,"Slug":"reggaeton","Label":"Reggaeton"},{"ID":29,"Slug":"regional","Label":"Regional"},{"ID":666,"Slug":"rock","Label":"Rock"},{"ID":46,"Slug":"progressivo","Label":"Rock Progressivo"},{"ID":3,"Slug":"rock-roll","Label":"Rock and Roll"},{"ID":40,"Slug":"rockabilly","Label":"Rockabilly"},{"ID":6,"Slug":"romantico","Label":"Romântico"},{"ID":72,"Slug":"salsa","Label":"Salsa"},{"ID":10,"Slug":"samba","Label":"Samba"},{"ID":60,"Slug":"samba-enredo","Label":"Samba Enredo"},{"ID":9,"Slug":"sertanejo","Label":"Sertanejo"},{"ID":68,"Slug":"ska","Label":"Ska"},{"ID":52,"Slug":"soft-rock","Label":"Soft Rock"},{"ID":12,"Slug":"soul","Label":"Soul"},{"ID":41,"Slug":"surf-music","Label":"Surf Music"},{"ID":73,"Slug":"tango","Label":"Tango"},{"ID":24,"Slug":"tecnopop","Label":"Tecnopop"},{"ID":84,"Slug":"trova","Label":"Trova"},{"ID":51,"Slug":"velha-guarda","Label":"Velha Guarda"},{"ID":34,"Slug":"world-music","Label":"World Music"},{"ID":83,"Slug":"zamba","Label":"Zamba"},{"ID":80,"Slug":"zouk","Label":"Zouk"}]'></div> </div> </div> </div> <div class="g-fix g-mb js-cnt-target"> <div class="top-mus g-2-3"> <ol class="top-list_mus cnt-list--col2"> <li><a href="/hinos-de-paises/46368/" title="Hino Nacional Brasileiro"> <b>Hino Nacional Brasileiro</b> <span>Hinos de Países</span> </a></li> <li><a href="/sam-smith/unholy-feat-kim-petras/" title="Unholy (feat. Kim Petras)"> <b>Unholy (feat. Kim Petras)</b> <span>Sam Smith</span> </a></li> <li><a href="/maria-marcal/deserto/" title="Deserto"> <b>Deserto</b> <span>Maria Marçal</span> </a></li> <li><a href="/rihanna/lift-me-up/" title="Lift Me Up"> <b>Lift Me Up</b> <span>Rihanna</span> </a></li> <li><a href="/jingles/sem-medo-de-ser-feliz-lula-2022/" title="Sem Medo de Ser Feliz (Lula 2022)"> <b>Sem Medo de Ser Feliz (Lula 2022)</b> <span>Jingles</span> </a></li> <li><a href="/taylor-swift/anti-hero/" title="Anti-Hero"> <b>Anti-Hero</b> <span>Taylor Swift</span> </a></li> <li><a href="/rosa-linn/snap/" title="Snap"> <b>Snap</b> <span>Rosa Linn</span> </a></li> <li><a href="/chris-brown/under-the-influence/" title="Under The Influence"> <b>Under The Influence</b> <span>Chris Brown</span> </a></li> <li><a href="/arctic-monkeys/i-wanna-be-yours/" title="I Wanna Be Yours"> <b>I Wanna Be Yours</b> <span>Arctic Monkeys</span> </a></li> <li><a href="/harpa-crista/853769/" title="Porque Ele Vive"> <b>Porque Ele Vive</b> <span>Harpa Cristã</span> </a></li> </ol> </div> <div class="top-art g-1-3"> <ol class="top-list_art"> <li><a href="/harpa-crista/"> <img data-original="https://akamai.sscdn.co/uploadfile/letras/fotos/3/0/8/3/3083b1621a661eee9c2eb4ef9d03daa5-tb.jpg" data-srcset="https://akamai.sscdn.co/uploadfile/letras/fotos/3/0/8/3/3083b1621a661eee9c2eb4ef9d03daa5-tb.jpg 1x, https://akamai.sscdn.co/uploadfile/letras/fotos/3/0/8/3/3083b1621a661eee9c2eb4ef9d03daa5-tb4.jpg 2x" src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" alt="" width="76" height="76" /> <b>Harpa Cristã</b> </a></li> <li><a href="/taylor-swift/"> <img data-original="https://akamai.sscdn.co/uploadfile/letras/fotos/b/5/0/a/b50aec94dbf33c77b4f37dd8714d2b67-tb.jpg" data-srcset="https://akamai.sscdn.co/uploadfile/letras/fotos/b/5/0/a/b50aec94dbf33c77b4f37dd8714d2b67-tb.jpg 1x, https://akamai.sscdn.co/uploadfile/letras/fotos/b/5/0/a/b50aec94dbf33c77b4f37dd8714d2b67-tb4.jpg 2x" src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" alt="" width="76" height="76" /> <b>Taylor Swift</b> </a></li> <li><a href="/hinos-de-paises/"> <img data-original="https://akamai.sscdn.co/uploadfile/letras/fotos/f/9/7/0/f970d889b58cab5fb0491a0ba513dd54-tb.jpg" data-srcset="https://akamai.sscdn.co/uploadfile/letras/fotos/f/9/7/0/f970d889b58cab5fb0491a0ba513dd54-tb.jpg 1x, https://akamai.sscdn.co/uploadfile/letras/fotos/f/9/7/0/f970d889b58cab5fb0491a0ba513dd54-tb4.jpg 2x" src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" alt="" width="76" height="76" /> <b>Hinos de Países</b> </a></li> </ol> </div> </div> <a href="/mais-acessadas/" class="cnt-more">Ver mais músicas e artistas</a> </div> </div> <div id="js-contribsModal-container"></div> <script id="js-contribsModal" type="text/template"> <div class="modal modal--center centeredModal"> <p class="centeredModal-header"> Contribuições </p> <div class="centeredModal-content"> <nav class="tabsNavigator"> <ul> <li data-tab-id="0" class="is-active"><button>Letra</button></li> <li data-tab-id="1"><button>Tradução</button></li> <li data-tab-id="2"><button>Legendas</button></li> </ul> <i class="tabsSelector"></i> </nav> <div id="acknowledgment"></div> <div class="contribsModal-content"> <div data-tab-id="0" class="tabContent is-active"> <h2 class="centeredModal-subtitle">Envio</h2> <ul> <li class="contribsModal-contrib" data-contrib-id="3677878"> <a href="/membros/3677878/" data-mct-action="Click Link Para Perfil do Contribuidor" data-mct-label="Modal Contribuidores"> <img src="data:image/gif;base64,R0lGODlhAQABAAAAACwAAAAAAQABAAA=" alt="" data-original="https://akamai.sscdn.co/uploadfile/cifraclub/avatar/7/8/1304821362.jpg" width="45" height="45"> </a> <div> <span class="name">Agnes</span> <span>Envio <time class="js-contrib-time" datetime="2012-03-12T00:00:00-03:00"></time></span> </div> </li> </ul> <div class="contribsModal-footer"> <a href="/contribuicoes/enviar_correcao/candy-dulfer/please-dont-stop" data-mct-action="Click Link Enviar Correção" data-mct-label="Modal Contribuidores" class="contribsModal-button bt-b">Viu algum erro? Envie uma revisão</a> </div> </div> <div data-tab-id="1" class="tabContent"> <div class="contribsModal-empty"> <img src='//akamai.sscdn.co/letras/static/img/contribs_missing.v90d73319.svg' alt="" width="159" height="140"> <h2>Procurando a tradução?</h2> <p>Ainda não recebemos essa contribuição por aqui. Que tal nos enviar?</p> <a href="/candy-dulfer/please-dont-stop/enviar_traducao.html" data-mct-action="Click Link Enviar Tradução" data-mct-label="Modal Contribuidores" class="contribsModal-empty-button">Enviar tradução</a> </div> </div> <div data-tab-id="2" class="tabContent"> <div class="contribsModal-empty"> <img src='//akamai.sscdn.co/letras/static/img/contribs_missing.v90d73319.svg' alt="" width="159" height="140"> <h2>Procurando a legenda?</h2> <p>Ainda não recebemos essa contribuição<br /> por aqui. Que tal nos enviar?
Leonard Cohen - Last Year’s Man
The Doobie Brothers - There’s a Light
Leonard Cohen - Last Year's Man
The Doobie Brothers - There's a Light
Mother’s Finest - Baby Love
- [regex, "’", "'"]
Just recently Letras de musicas has been dumping some crap into the beginning and end of the returned lyrics.
There are fourteen tracks on this album (We Never Stop by Candy Dulfer.) One track returned no lyrics. One track returned correct lyrics from Google. The rest returned what is shown below. I'm not really surprised by no lyrics as it's a fairly new album released late October.
Not an answer to your question, but I am curious why Genius doesn't catch e.g. this song from that album:It appears that you're searching for "Please Don't Stop" (a single track) while the new album is titled "We Never Stop" and my thought is that no provider has the lyrics for the new album. With the exception of one track "Jammin' Tonight" which has appeared a different album of hers. Try looking for "We Never Stop" which is track 7 from the new album of the same name.
Candy Dulfer - Please Don't Stop
https://genius.com/Candy-dulfer-please-dont-stop-lyrics?react=1
Ah yes, that's indeed a different song.You're forgiven. :-)
...
I'll have to remember that…
Is there any way you can keep providers persistent?Afraid not. Plugins do not have any control over that.
If I untick, update, and save and then go back, I'd like the provider to still be in the same order they were before I unticked them.
I got 15 our of 15 incorrect lyrics returned from 'fuzzy' providers so I disabled them and tried again. This time I got no lyrics returned.There are times or days where I also randomly get this odd behaviour. I've never figured out exactly why it happens. One minute the search for a specific song on a specific provider would be failing and the next minute or MB session, a research of that same song from the same provider would yield results. I truly have no idea what would be going on there.
What -did- surprise me was that on the first run, I got lyrics for all the tracks.
Just recently Letras de musicas has been dumping some crap into the beginning and end of the returned lyrics.Should be fixed now.
HiThanks - not my plugin though, I'm just maintaining it.
Really love your plugin ♫
may I ask a question ?
can't download and save synch lyrics because it's a musicbee limit or the plugin limit?
thanks
I noticed songs not getting matched using Deezer (build-in) that are available at Deezer.Had no luck either trying to replace those using regex, but it did work when using the normal replace:
The cause seems to be that my track titles use curly apostrophes, while Deezer seems to expect straight ones.
I tried to edit the yml, but as soon as I only add:Codeunder 'title:' the yml is not recognised/accepted by MB any more.- [regex, "’", "'"]
I have no clue why that is?
- [replace, "’", "'"]
Had no luck either trying to replace those using regex, but it did work when using the normal replace:That's strange.Code- [replace, "’", "'"]
name: Deezer
loader: search
variables:
artist:
type: artist
filters:
- lowercase
- [replace, "’", "'"]
title:
type: title
filters: artist
config:
identity url: "https://www.deezer.com/search/{title}+{artist}/track"
identity pattern: ['"SNG_ID":"(?<identity>\d+)","PRODUCT_TRACK_ID":"\d+","UPLOAD_ID":\d+,"SNG_TITLE":"{title}","ART_ID":"\d+","PROVIDER_ID":"\d+","ART_NAME":"{artist}"', 's']
lyrics url: "https://www.deezer.com/en/track/"
lyrics pattern: ['<div>Lyrics</div>(?<lyrics>.*?)</div>', 's']
post-filters:
- strip_html
- utf8_encode
- entity_decode
- trim
title:
type: title
filters: artist
And do you know if the encoding is important?Tbh, no I do not.
(UTF-8 UTF-8-BOM etc.)
variables:
artist:
type: artist
filters:
- lowercase
- [regex, "’", "'"]
title:
type: title
filters: artist
Should be fixed now.It is indeed. Thanks for taking care of the gobbledygook. Letras de musicas is now returning results without the garbage code.
Get the latest yml from the add-on providers folder.
Thanks for figuring that out.I now also figured out what caused it in the first place. (for me)
- [regex, 'Letra\sde.*com.*\n', ""]
- [regex, 'Letra de ".*?<br/><br/>', ""]
Have you tested it on the tracks I mentioned? It doesn't work for me?Code- [regex, 'Letra de ".*?<br/><br/>', ""]
And thanks for the info on the edit section of the previous post - will certainly be using that.Ideally the plugin engine would just ignore empty lines (containing spaces or tabs) when loading yml's. But I'm not sure if that's easy to do.
Have you tested it on the tracks I mentioned? It doesn't work for me?I only had a look at Simone's Mal acostumado and it had worked.
Aren't <br/><br/> html codes?Yes and yes to both questions.
Just to make sure we're on the same page: I added the regex line under post-filters.
Are html codes within a regex working there too?
To get some clarity also, are you saying the Genius providers in v1.2.0.4 do not remove that lineAll I did was replacing the line that I had created (see screenshot) with the one that you posted.
or that the regex you came up with and included to the post-filters section isn't working for you?
I would very much appreciate using your colours going forward. Care to share the UDL?So you are using Notepad++ also?
Just to visualize what I was seeing before and what I am nowThat's great to hear.
But cant seem to find the "...\MusicBee\AppData\mb_LyricsReloaded\providers" folder ??Depending on what type of MusicBee install you did, check this:
Did you use the most recent version that I pm'ed you?Looks like I wasn't. This is how it should appear right?
I notice a small difference with my version. (that will format commas also)
Looks like I wasn't. This is how it should appear right?Yep.
So I just came across this extension and like to try it out.. So i followed the readme in the .zip. installed the plugin fine.TLDR:But cant seem to find the "...\MusicBee\AppData\mb_LyricsReloaded\providers" folder ??But cant seem to find the "...\MusicBee\AppData\mb_LyricsReloaded\providers" folder ??Depending on what type of MusicBee install you did, check this:
https://getmusicbee.com/forum/index.php?topic=36875.0
Someone willing to explain to me were to find this?
Thanks
Appie
P.s. This phenomenon also happens when the plugin is disabled, and MusicBee's native retrieval source Chartlyrics, is active.The only plausible explanation that I can think of is that those genius lyrics were probably already saved to the music file.
Right click still shows "Lyrics Source: GENIUS". It's odd, but I can only assume Chartlyrics gets it's results from Genius.
If I disable the plugin, MusicBee's native Tag(2) lyrics retrieval setting is to get it from Chartlyrics.For #2, judging by the first search results, that means MusicBee is conducting its first search from chartlyrics right?
When I run the test again from blank lyrics, it gives me the same lyric result from when I first played the song and the plugin was active, above.
How can I get the enabled plugin to pull results from the moment I play a song?
Issue #1: Genius is first on my settings list. Sometimes when I get lyrics retrieved from Genius, either in the middle or at the end of the lyrics an extra line will be included that says "You may also like" / "You might also like". I have songs with both wordings. Sometimes I'll also see "See (input artist name) Live Get tickets as low as $76" If you Genius search those songs on desktop/laptop, you'll see that it's part of Genius' promo system. But you won't see them if you search using the Genius app or a mobile browser. As for the lyrics panel, a quick right click shows "Lyrics Source: GENIUS".The "you may also like" phrases were removed a while back, and I personally haven't seen any since, of course they may be using a different trick now. Check that the plugin file is indeed version 1.2.0.4. The ticket prices thing was reported by me a while back (https://getmusicbee.com/forum/index.php?topic=36952.msg205438#msg205438 (https://getmusicbee.com/forum/index.php?topic=36952.msg205438#msg205438)), but is very rare and I don't worry about it any more.
Could you remove these promo system lines from results?
name: Genius
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "https://genius.com/{artist}-{title}-lyrics"
pattern: ['<div data-lyrics-container="true" class="Lyrics__Container-sc-1ynbvzw-6.*?">(?<lyrics>.*)<div class="Lyrics__Footer-sc-', 's']
post-filters:
- br2nl
- [regex, 'You might also like</div>', "\n"]
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- [regex, '\n{2,}',"\n\n", 's']
- trim
Check that you have the new yml you made both selected, and in the order you want in Tags(2)/lyrics. You might want to re-name it first (genius-2.yml, etc.) too to make it easy to distinguish from the built-in one.
BTW, the Beenius plugin for Genius (https://getmusicbee.com/forum/index.php?topic=36605.0 (https://getmusicbee.com/forum/index.php?topic=36605.0)) also leaves in the bracketed headers and works fine alongside LyricsReloaded as an additional choice in the sources list. Be sure to follow the installation directions carefully.
Copy and paste the content below into an empty text file.
And then save it with a .yml extension e.g. Genius.yml in the following folder ...\MusicBee\AppData\mb_LyricsReloaded\providers
I did not test it yet but this should override the built-in genius version and leave in the square bracket headers (let me know if you'd like the same change done with the fuzzy version).Codename: Genius
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "https://genius.com/{artist}-{title}-lyrics"
pattern: ['<div data-lyrics-container="true" class="Lyrics__Container-sc-1ynbvzw-6.*?">(?<lyrics>.*)<div class="Lyrics__Footer-sc-', 's']
post-filters:
- br2nl
- [regex, 'You might also like</div>', "\n"]
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- [regex, '\n{2,}',"\n\n", 's']
- trim
Edit: Tested and works as expected for me.
name: Genius (fuzzy)
loader: search
variables:
artist:
type: artist
filters:
- lowercase
title:
type: title
filters: artist
config:
identity url: "https://www.google.com/search?q=Genius+{title}+{artist}"
identity pattern: ['(?<identity>https://genius.com.*?-lyrics)', 's']
lyrics url: ""
lyrics pattern: ['<div data-lyrics-container="true" class="Lyrics__Container-sc-1ynbvzw-6.*?">(?<lyrics>.*)<div class="Lyrics__Footer-sc-', 's']
post-filters:
- br2nl
- [regex, 'You might also like</div>', "\n"]
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- [regex, '\n{2,}',"\n\n", 's']
- trim
Hi sveakul, yeah, looks like Genius made a recent change to their page. Thanks for picking it up.Thank you, working fine now.
Redownload the plugin - it should work now.
Hi sveakul, yeah, looks like Genius made a recent change to their page. Thanks for picking it up.
Redownload the plugin - it should work now.
@Sekt0r and @belomeclone
You guys have to make a change to the code I supplied a few posts back.
In this piece of the lyrics pattern, remove the digit (6) and things should run smoothly again.
class="Lyrics__Container-sc-1ynbvzw-6.*?"
name: Genius
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [replace, "!!!", "chk-chik-chick"]
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
- [regex, '\.+|,+|(\W+(?=$))|(^\W+)', ""]
- [regex, "'", ""]
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "https://genius.com/{artist}-{title}-lyrics"
pattern: ['<div data-lyrics-container="true" class="Lyrics__Container-sc-1ynbvzw-.*?">(?<lyrics>.*)<div class="Lyrics__Footer-sc-', 's']
post-filters:
- [regex, 'You might also like</div>', "\n"]
- [regex, '<div class="PrimisPlayer.*?>', "\n"]
- [regex, 'Letra de ".*?<br/><br/>', ""]
- br2nl
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- [regex, '\n{2,}',"\n\n", 's']
- trim
name: Genius (fuzzy)
loader: search
variables:
artist:
type: artist
filters:
- lowercase
title:
type: title
filters: artist
config:
identity url: "https://www.google.com/search?q=Genius+{title}+{artist}"
identity pattern: ['(?<identity>https://genius.com.*?-lyrics)', 's']
lyrics url: ""
lyrics pattern: ['<div data-lyrics-container="true" class="Lyrics__Container-sc-1ynbvzw-.*?">(?<lyrics>.*)<div class="Lyrics__Footer-sc-', 's']
post-filters:
- [regex, 'You might also like</div>', "\n"]
- [regex, '<div class="PrimisPlayer.*?>', "\n"]
- [regex, 'Letra de ".*?<br/><br/>', ""]
- br2nl
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- [regex, '\n{2,}',"\n\n", 's']
- trim
My bad. The YML's I gave you earlier were not actually from the latest built-in versions.
Try these ones (both #1 and #2 should be fixed for you):
Maybe in a different post as a suggestion it would be nice to change Help --> Support --> Open AppData Folder to open the relevant folder depending on the type of installation, isntead of producing an error when using the Windows Store version.Hi Echo, thanks for bringing that to attention.
name: Lyricsify
loader: search
variables:
artist:
type: artist
filters:
- [regex, '\s', '+']
title:
type: title
filters:
- [regex, '\s', '+']
config:
identity url: "https://www.lyricsify.com/search?q={artist}+{title}"
identity pattern: ['<a href="(?<identity>/lrc/.*?)"', 's']
lyrics url: "https://www.lyricsify.com"
lyrics pattern: ['<div id="lyrics_.\d*_details">(?<lyrics>.*?)</div>', 's']
post-filters:
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- trim
Just stumbled on this this thread last night and read the entire to understand how this worked an I present my magnum opus :D
Really tho I'm proud of this, and was only able to write this voodoo by looking at the other providers given with the plugin.
All ya'll are the real OGs
Anyways here's a provider for Lyricsify which I have found anecdotally to be a pretty good source for synchronized lyrics:Codename: Lyricsify
loader: search
variables:
artist:
type: artist
filters:
- [regex, '\s', '+']
title:
type: title
filters:
- [regex, '\s', '+']
config:
identity url: "https://www.lyricsify.com/search?q={artist}+{title}"
identity pattern: ['<a href="(?<identity>/lrc/.*?)"', 's']
lyrics url: "https://www.lyricsify.com"
lyrics pattern: ['<div id="lyrics_.\d*_details">(?<lyrics>.*?)</div>', 's']
post-filters:
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- trim
Unfortunately sometimes the top result in the search is not the same as the song you're looking for so this will return the wrong lyrics.
You can get the better match if you look for the artist and title name in the search results but I'm not at that level right now.
name: Lyricsify
loader: search
variables:
artist:
type: artist
filters:
- [regex, '\s', '+']
title:
type: title
filters:
- [regex, '\s', '+']
config:
identity url: "https://www.lyricsify.com/search?artist={artist}&title={title}"
identity pattern: ['<a href="(?<identity>/lrc/.*?)"', 's']
lyrics url: "https://www.lyricsify.com"
lyrics pattern: ['<div id="lyrics_.\d*_details">(?<lyrics>.*?)</div>', 's']
post-filters:
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- trim
MusicBee v3.5.8447.35892P (Win10.0), 4 May 2023 21:19:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at MusicBeePlugin.Plugin.Uninstall()
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at #=z5PgYRDH$zNo7WhzgWg==.#=z2XpfYrs=()
Go into Prefs/Tags(20/Lyrics to enable additional sources or move their priorities.
name: Lyricsify
loader: search
variables:
artist:
type: artist
filters:
- [regex, '\s', '+']
title:
type: title
filters:
- [regex, '\s', '+']
config:
identity url: "https://www.lyricsify.com/search?artist={artist}&title={title}"
identity pattern: ['<a href="(?<identity>/lrc/.*?)"', 's']
lyrics url: "https://www.lyricsify.com"
lyrics pattern: ['<div id="lyrics_.\d*_details">(?<lyrics>.*?)</div>', 's']
post-filters:
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- trim
- [regex, '', '', s]
There's sometimes a weird invisible character at the start that breaks the synchronized lyrics and causes all timestamps to show as textCan you please post an example of what you described actually looks like in terms of returned results? I haven't seen anything odd at all with what your original v2 code is producing.
Just stumbled on this this thread last night and read the entire to understand how this worked an I present my magnum opus :DHuge congrats to you lemon_yellow!
Really tho I'm proud of this, and was only able to write this voodoo by looking at the other providers given with the plugin.
Hitting uninstall throws the error below:Back then, I recall testing the plugin's uninstall code and noticing that it wasn't playing well with MusicBee.
Can LyricsReloaded process synchronised lyrics or is it "only" about fetching static text from different sources?That all depends on the providers.
On that topic, can anyone recommend sources for synced lyrics?
Would it be possible to make a yml for AZLyrics.com? Very nice Plugin btw!FYI: https://raw.githubusercontent.com/mbfrankz/LyricsReloaded/master/LyricsReloaded/Configs/azlyrics.com.yml (https://raw.githubusercontent.com/mbfrankz/LyricsReloaded/master/LyricsReloaded/Configs/azlyrics.com.yml)
Would it be possible to make a yml for AZLyrics.com? Very nice Plugin btw!FYI: https://raw.githubusercontent.com/mbfrankz/LyricsReloaded/master/LyricsReloaded/Configs/azlyrics.com.yml (https://raw.githubusercontent.com/mbfrankz/LyricsReloaded/master/LyricsReloaded/Configs/azlyrics.com.yml)
This is not included by default as there is a legal grey area to this one as to whether a music player can be considered a "third-party lyrics provider."
@lemon_yellowThis is done now. No room for improvements in the yml. It's impressive how got everything perfect on your first try. Well done!
Again, well done though on the provider. I will be adding it to the list of optional providers in the download link when I get to it.
Will also do some tests on it and revert with comments.
Can you please post an example of what you described actually looks like in terms of returned results? I haven't seen anything odd at all with what your original v2 code is producing.
Huge congrats to you lemon_yellow!
I'm a massive fan/collector of synchronized lyrics myself and was super excited when I cracked the "megalobiz" provider (synced lyrics).
Unfortunately, my happiness was short lived as I stopped using it after a few days.
Reason having been that synced lyrics from the internet turned out to always be in some way a few seconds off from my own tracks (some due to my extensive trimming of files).
Anyway, I ended up deciding on retrieving unsynced lyrics only and then syncing them manually to satisfy my need for perfect synchronization.
Again, well done though on the provider. I will be adding it to the list of optional providers in the download link when I get to it.
Will also do some tests on it and revert with comments.
...but had encountered a regex hurdle that I plan to re-tackle this coming Friday.For some reason, I can't get my head around this minor snag. For now, we'll have to work with the below:
name: Bandcamp
loader: static
variables:
artist:
type: artist
filters:
- lowercase
- [regex, '\s', '-']
title:
type: title
filters: artist
config:
url: "https://{artist}.bandcamp.com/track/{title}"
pattern: ['<meta.*?\d{4}.*?(?<lyrics>\w.*?)">', 's']
post-filters:
- utf8_encode
- entity_decode
variables:
artist:
type: artist
filters:
- lowercase
- [regex, '\s', '']
title:
type: title
filters:
- lowercase
- [regex, '\s', '-']
Tried my hand at some regex; replacing the "Variables" section of the posted yml with the following fixes the search problem I described above:Love to hear it!
Playing with the Bandcamp YML again, I found some info that may be worth a re-write of the whole thing:Wow! Can't believe the whole effing thing worked on a first try.
a search statement that will bring you to the track REGARDLESS of the bandcamp root URL construction beling used now for the band name.
name: Bandcamp
loader: search
variables:
artist:
type: artist
filters:
- lowercase
title:
type: title
filters: artist
config:
identity url: "https://bandcamp.com/search?q={artist}%20{title}&item_type=t"
identity pattern: ['class="artcont" href="(?<identity>https://.*?)\?', 's']
lyrics url: ""
lyrics pattern: ['<meta.*?\d{4}.*?(?<lyrics>\w.*?)">', 's']
post-filters:
- utf8_encode
- entity_decode
The two it missed but #1 found seemed to be cases of where out of 3-4 results returned by the initial web search,I'm not able to picture what's described above, especially the details of line 2.
they were obfuscated by the credits at the site adding different artists to the first one in cases of collaborations, etc.
Here is a related example that hopefully touches several bases as far as code and I didn't encounter it before: both #1 and #2 return lyrics to the track, but #2 returned lyrics to the wrong song.The two it missed but #1 found seemed to be cases of where out of 3-4 results returned by the initial web search,I'm not able to picture what's described above, especially the details of line 2.
they were obfuscated by the credits at the site adding different artists to the first one in cases of collaborations, etc.
Do you perhaps have another example link that I could take a look at?
My brain is a bit fried now so that's all the lyrics analyses for one day.I appreciate the effort invested.
The two it missed but #1 found seemed to be cases of where out of 3-4 results returned by the initial web search,Hopefully, there won't be a lot of these popping up.
they were obfuscated by the credits at the site adding different artists to the first one in cases of collaborations, etc.
Not sure if i should ask my question here, if not just let me know.Not sure yet either. But, before we trouble the rest of the forum with the question, let's see if we can deal with it here.
Should synced lyrics also work with radio stations? The lyrics themselves are found and shown, but they do not move like when playing a music file?.
Not sure if i should ask my question here, if not just let me know.Not sure yet either. But, before we trouble the rest of the forum with the question, let's see if we can deal with it here.
Should synced lyrics also work with radio stations? The lyrics themselves are found and shown, but they do not move like when playing a music file?.
Can you post a screenshot of the lyrics tab in the Tag Editor after those synced lyrics have been found? And which provider are they from?
Gendji: there is no way to do this with radio stations. Fixed files have fixed timing, etc. while Internet latency bounces around all the time to say nothing of any DSP being applied by the station. If you add the Netease Lyrics plugin and the Desktop Lyrics plugin the latter will make an attempt to apply movement from stream hits on the Netease cloud but they end up hopelessly messed up.
I was notified of a post on email earlier today that I'd planned to reply to later in the day.hmm...looks like it has happened again.
But looking now, I can't see anything - could the poster have deleted it?
hmm...looks like it has happened again.Looks like a spam post that has been removed?
Looks like a spam post that has been removed?That's correct. It was a reply by a first time poster. The reply contained spam links and spam signature. Deleted and banned.
@Mayibongwe, could you implement 2-pass search according to provider's priority: 1-pass searches for synchronized lyrics, if synchronized lyrics are not found, then 2-pass searches for not synchronized lyrics?If implemented, please give us the option to retrieve or not retrieve synch'd lyrics. I don't use them and I don't want them.
If implemented, please give us the option to retrieve or not retrieve synch'd lyrics. I don't use them and I don't want them.+1
Thanks.
@Mayibongwe, could you implement 2-pass search according to provider's priority:I'm having difficulties understanding the request.
1-pass searches for synchronized lyrics, if synchronized lyrics are not found, then 2-pass searches for not synchronized lyrics?
@Mayibongwe, could you implement 2-pass search according to provider's priority:I'm having difficulties understanding the request.
1-pass searches for synchronized lyrics, if synchronized lyrics are not found, then 2-pass searches for not synchronized lyrics?
The way the plugin (or MusicBee itself, rather) works at the moment is that it iterates through the providers in the given order till it gets a hit.
Meaning that...if the synced lyrics providers were listed at the top of the pile, then it would first search for lyrics there.
And then when it didn't find them, it would move on to the other unsynced lyrics providers down the list.
You guys most probably already know that. I must be misunderstanding the request.
The way the plugin (or MusicBee itself, rather) works at the moment is that it iterates through the providers in the given order till it gets a hit.Exactly--and that's way it SHOULD work. Those who like synced lyrics should simply move the providers that handle those to the top of their list. They can also add the separate Netease and QQ Music plugins. My philosophy is let's not mess up something that's already working great by trying to be all things to all people.
Meaning that...if the synced lyrics providers were listed at the top of the pile, then it would first search for lyrics there.
And then when it didn't find them, it would move on to the other unsynced lyrics providers down the list.
I'm having difficulties understanding the request.
The way the plugin (or MusicBee itself, rather) works at the moment is that it iterates through the providers in the given order till it gets a hit.
Meaning that...if the synced lyrics providers were listed at the top of the pile, then it would first search for lyrics there.
And then when it didn't find them, it would move on to the other unsynced lyrics providers down the list.
...then could you just add synced/unsynced remark (postfix) to provider names?This. Then those of us who want no part of synced lyrics can simply uncheck the provider and/or move the provider to the end of the list.
Apologies for the delay. That's done now....then could you just add synced/unsynced remark (postfix) to provider names?This. Then those of us who want no part of synced lyrics can simply uncheck the provider and/or move the provider to the end of the list.
Apologies for the delay. That's done now....then could you just add synced/unsynced remark (postfix) to provider names?This. Then those of us who want no part of synced lyrics can simply uncheck the provider and/or move the provider to the end of the list.
I have simply added an asterisk to the synced lyrics providers like so:
It's only these three for now that provide synced lyrics. Suggestions for more are of course, always welcome.
- Lyricsify*
- Megalobiz*
- RC Lyrics Band*
Hey @Mayibongwe, could you please take a look at the Built-in Genius provider when you have chance, it seems to have stopped working recently?Same here. FWIW, the Beenius plugin still works fine.
After trying a few tracks and it not working, I went back and tested a song that worked fine about 2 weeks ago but it's no longer finding it now (song name/url below).
Tinashe - Gravity
(https://genius.com/Tinashe-gravity-lyrics)
My bad. The YML's I gave you earlier were not actually from the latest built-in versions.Six months between the last two Genius breakdowns - not bad at all!
Try these ones (both #1 and #2 should be fixed for you):Code...
Is there any way you could add support for Musixmatch/Spotify's synced lyrics? (Spotify sources their lyrics from Musixmatch)Is the linked website still running well?
After some digging online, I was able to find this GitHub repo: (https://github.com/akashrchandran/syrics-web)
It seems he was successfully able to extract .lrc files from Spotify.
...first signs indicate that it may be beyond the capabilities of this plugin.Sorry man, I don't think synced Musixmatch/Spotify lyrics are gonna be a possibility with this plugin anytime soon.
could you please take a look at the Built-in Genius provider when you have chance, it seems to have stopped working recently?Should be working fine now if you redownload the plugin.
How to retrieve lyrics for a song if the title contains parentheses. It means that the title will be cropped and the lyrics won't be found....It might help if you provided a specific example of a song that others can test.
How to retrieve lyrics for a song if the title contains parentheses. It means that the title will be cropped and the lyrics won't be found....It might help if you provided a specific example of a song that others can test.
Melancholy (Holy Martyr) by Iced EarthStrange, for me it does get found at the first attempt:
Not found on Genius
Melancholy (Holy Martyr) by Iced EarthStrange, I get this:
Not found on Genius
(https://i.imgur.com/kGvQZ2O.png)
Are you using a recent version of the plugin?
(the most current being 1.2.0.6)
Yes, the latest version
Melancholy (Holy Martyr) (live)
Is there any way you could add support for Musixmatch/Spotify's synced lyrics? (Spotify sources their lyrics from Musixmatch)Is the linked website still running well?
After some digging online, I was able to find this GitHub repo: (https://github.com/akashrchandran/syrics-web)
It seems he was successfully able to extract .lrc files from Spotify.
I don't use Spotify and have just tried downloading the lyrics using that site, but it didn't seem to find anything.
Does one have to be logged in or something?
(https://i.imgur.com/EZoBJ9D.png)
Edit:...first signs indicate that it may be beyond the capabilities of this plugin.Sorry man, I don't think synced Musixmatch/Spotify lyrics are gonna be a possibility with this plugin anytime soon.
I checked it out last night and it's a tough nut to crack.
Yes, the latest version
Can you post the exact song title you have in code?
This is what I tested this on, and as you saw, for me it works:CodeMelancholy (Holy Martyr) (live)
30/09/2023 05:08:40 [DEBUG] Lyrics request: Iced Earth - Melancholy - Something Wicked This Way Comes - Genius
30/09/2023 05:08:40 [INFO] Genius tries to load the lyrics...
30/09/2023 05:08:40 [DEBUG] The constructed URL: https://genius.com/iced-earth-melancholy-lyrics
30/09/2023 05:08:40 [FAIL] no lyrics found from Genius
In the <Title> tag, MusicBee automatically removes the last parenthesized portion before sending it to the plugin:Melancholy (Holy Martyr) by Iced EarthThis is what I tested this on, and as you saw, for me it works:
Not found on Genius
Melancholy (Holy Martyr) (live) by Iced Earth
I don't know if this helps at all, but I'll include it regardless.It will help some day for sure. But for now, this plugin only relies on webpages that have the lyrics provided in plain text.
The fuzzy versions of the providers are much more suited for handling tracks with tags that are not an exact match.
Enabling Genius (fuzzy) should pick your song up. You'll want to position it below the normal Genius for optimal results.
10/10/2023 12:38:18 [DEBUG] Loading config from file: C:\Users\X\AppData\Roaming\MusicBee\mb_LyricsReloaded\providers\Lyrics Mode.yml
10/10/2023 12:38:18 [ERROR] Failed to load a configuration:
10/10/2023 12:38:18 [ERROR] Unknown provider type search, skipping
10/10/2023 12:38:18 [DEBUG] Loading config from file: C:\Users\X\AppData\Roaming\MusicBee\mb_LyricsReloaded\providers\Lyrics.yml
10/10/2023 12:38:18 [ERROR] Failed to load a configuration:
10/10/2023 12:38:18 [ERROR] Unknown provider type search, skipping
10/10/2023 12:38:18 [DEBUG] Loading config from file: C:\Users\X\AppData\Roaming\MusicBee\mb_LyricsReloaded\providers\Lyricsify.yml
10/10/2023 12:38:18 [ERROR] Failed to load a configuration:
10/10/2023 12:38:18 [ERROR] Unknown provider type search, skipping
10/10/2023 12:38:18 [DEBUG] Loading config from file: C:\Users\X\AppData\Roaming\MusicBee\mb_LyricsReloaded\providers\Megalobiz.yml
10/10/2023 12:38:18 [ERROR] Failed to load a configuration:
10/10/2023 12:38:18 [ERROR] Unknown provider type search, skipping
10/10/2023 12:38:18 [DEBUG] Loading config from file: C:\Users\X\AppData\Roaming\MusicBee\mb_LyricsReloaded\providers\Metal Archives.yml
10/10/2023 12:38:18 [ERROR] Failed to load a configuration:
10/10/2023 12:38:18 [ERROR] Unknown provider type search, skipping
Where did you install mb_LyricsReloaded.dll? There should be only one copy on the PC.Yeah, by the looks of it, you might still have an old LyricsReloaded install.
pattern: ['<p id="songLyricsDiv" class=".*">(?<lyrics>.*?)</p>', s]
13.10.2023 11:59:52 [DEBUG] Lyrics request: Bukahara - Durak - Strange Delight - Song Lyrics
13.10.2023 11:59:52 [INFO] Song Lyrics tries to load the lyrics...
13.10.2023 11:59:52 [DEBUG] The constructed URL: http://www.songlyrics.com/bukahara/durak-lyrics/
13.10.2023 11:59:53 [SUCCESS] lyrics found from Song Lyrics!
name: Song Lyrics GH
variables:
artist:
type: artist
filters:
- lowercase
- [regex, '[^\sa-z0-9]', ""]
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "http://www.songlyrics.com/{artist}/{title}-lyrics/"
pattern: ['<div id="songLyricsDiv-outer">(?<lyrics>.*?)</div>', s]
post-filters:
- strip_html
- entity_decode
- clean_spaces
- utf8_encode
- [fix_broken_chars, 'Ã', ISO-8859-1]
- [replace, 'þ', 'ß']
Try replacing the entire Song Lyrics yml with this one from GitHub--it works fine for me. Title will show up in the plugin's sources list as "Song Lyrics GH" so it is not confused with the one supplied by the plugin
It would be a good idea to replace it with the version I posted above.Done...which reminds me - I haven't looked at most of those since they were first added.
Thanks Mayibongwe. Will you be releasing an update sveakul's code whether or not you find providers that need updating?It would be a good idea to replace it with the version I posted above.Done...
Will you be releasing an update sveakul's code whether or not you find providers that need updating?He already has released the working Song Lyrics code yml I posted, it's in the current providers.zip download.
He already has released the working Song Lyrics code yml I posted, it's in the current providers.zip download.Ahhh ... I guess that's what he meant when he said "Done." <sigh>
19/10/2023 10:17:37 [DEBUG] Lyrics request: Imagine Dragons - Imagine Dragons - Sucker For Pain - - Google
19/10/2023 10:17:37 [INFO] Google tries to load the lyrics...
19/10/2023 10:17:37 [DEBUG] The constructed URL: https://www.google.com/search?q=imagine dragons - sucker for pain+lyrics
19/10/2023 10:17:37 [DEBUG] Lyrics request: Imagine Dragons - Imagine Dragons - Sucker For Pain - - Genius
19/10/2023 10:17:37 [INFO] Genius tries to load the lyrics...
19/10/2023 10:17:37 [DEBUG] The constructed URL: https://genius.com/imagine-dragons-imagine-dragons-sucker-for-pain-lyrics
19/10/2023 10:17:37 [DEBUG] Lyrics request: Imagine Dragons - Imagine Dragons - Sucker For Pain - - Musixmatch
19/10/2023 10:17:37 [INFO] Musixmatch tries to load the lyrics...
19/10/2023 10:17:37 [DEBUG] The constructed URL: http://www.musixmatch.com/lyrics/imagine-dragons/imagine-dragons-sucker-for-pain
19/10/2023 10:17:37 [DEBUG] Lyrics request: Imagine Dragons - Imagine Dragons - Sucker For Pain - - Deezer
19/10/2023 10:17:37 [INFO] Deezer tries to load the lyrics...
19/10/2023 10:17:37 [DEBUG] Lyrics request: Imagine Dragons - Imagine Dragons - Sucker For Pain - - Metal Archives
19/10/2023 10:17:37 [INFO] Metal Archives tries to load the lyrics...
19/10/2023 10:17:37 [DEBUG] The constructed google identity URL: https://www.google.com/search?q=Metal Archives+Imagine_Dragons+Imagine Dragons - Sucker For Pain+
19/10/2023 10:17:37 [DEBUG] Lyrics request: Imagine Dragons - Imagine Dragons - Sucker For Pain - - Genius (fuzzy)
19/10/2023 10:17:37 [INFO] Genius (fuzzy) tries to load the lyrics...
19/10/2023 10:17:37 [DEBUG] The constructed identity URL: https://www.deezer.com/search/imagine dragons - sucker for pain+imagine dragons/track
19/10/2023 10:17:37 [DEBUG] The constructed identity URL: https://www.deezer.com/search/imagine dragons - sucker for pain+imagine dragons/track
19/10/2023 10:17:37 [DEBUG] The constructed identity URL: https://www.google.com/search?q=Genius+imagine dragons - sucker for pain+imagine dragons
19/10/2023 10:17:37 [DEBUG] Lyrics request: Imagine Dragons - Imagine Dragons - Sucker For Pain - - Deezer (fuzzy)
19/10/2023 10:17:37 [INFO] Deezer (fuzzy) tries to load the lyrics...
19/10/2023 10:17:37 [DEBUG] The constructed identity URL: https://www.google.com/search?q=Deezer+imagine dragons - sucker for pain+imagine dragons
19/10/2023 10:17:37 [FAIL] no lyrics found from Genius
19/10/2023 10:17:37 [FAIL] no lyrics found from Musixmatch
19/10/2023 10:17:37 [WARN] The pattern class="BNeawe tAd8D AP7Wnd">(?<lyrics>.*)Source: didn't match!
19/10/2023 10:17:37 [FAIL] no lyrics found from Google
19/10/2023 10:17:37 [DEBUG] The constructed lyrics URL: https://genius.com/Lil-wayne-wiz-khalifa-imagine-dragons-logic-and-ty-dolla-sign-sucker-for-pain-lyrics
19/10/2023 10:17:37 [WARN] The google identity pattern (?<identity>https://www.metal-archives.com/albums/Imagine_Dragons/.*?)["&] didn't match!
19/10/2023 10:17:37 [FAIL] no lyrics found from Metal Archives
19/10/2023 10:17:38 [DEBUG] The constructed lyrics URL: https://www.deezer.com/en/track/127247963
19/10/2023 10:17:39 [WARN] The identity pattern "SNG_ID":"(?<identity>\d+)","PRODUCT_TRACK_ID":"\d+","UPLOAD_ID":\d+,"SNG_TITLE":"imagine dragons - sucker for pain","ART_ID":"\d+","PROVIDER_ID":"\d+","ART_NAME":"imagine dragons" didn't match!
19/10/2023 10:17:39 [FAIL] no lyrics found from Deezer
19/10/2023 10:17:39 [SUCCESS] lyrics found from Deezer (fuzzy)!
19/10/2023 10:17:40 [SUCCESS] lyrics found from Genius (fuzzy)!
For now, go straight to the plugin's folder in Windows Explorer and delete it (you appear to be using the installer version - refer to this thread (https://getmusicbee.com/forum/index.php?topic=36875.0) to locate the plugins folder)
After deleting it, you should be able to add the new plugin version using the 'add plugin' button at the top right of this screenshot:
I am aware that the uninstall function doesn't play well with this plugin.
I have briefly looked at it before but couldn't pinpoint if the issue was on the plugin's side or MusicBee's - I will revisit this some other time.
none of my plugins have any issues with the Uninstall() plugin function. but keep in mind that you can only delete some resources used by the plugin (e.g. settings file) inside this function. Clicking the "uninstall" button in MB prefs won't delete the plugin itself.Thanks for the insights, man.
though Steven promised to solve this issue in MB 3.6
Hi, would someone be kind enough to help me create a .yml provider file for https://www.songtexte.com please?The website mentioned that it sources its lyrics from Musixmatch - a provider that already comes bundled with the plugin.
I find it to be a really great source of lyrics.
name: Songtexte
loader: search
variables:
artist:
type: artist
filters:
- lowercase
- [regex, '\s', "-"]
title:
type: title
filters: artist
config:
identity url: "https://www.google.com/search?q=site:songtexte.com+{title}+{artist}"
identity pattern: ['(?<identity>https://www.songtexte.com/songtext/{artist}/{title}-.*?\.html)', 's']
lyrics url: ""
lyrics pattern: ['<div id="lyrics">(?<lyrics>.*)<p id="artistCopyright', 's']
post-filters:
- [regex, '<br />[\s\S]<div id=[\s\S]*?</script>[\s\S]<br />', '']
- strip_html
- utf8_encode
- entity_decode
The website mentioned that it sources its lyrics from Musixmatch - a provider that already comes bundled with the plugin.
But I suppose that's already the case with most of the optional providers in that zip file. So, I've decided to add it anyway:
...For some reason, it's adding 5 empty lines at the end of the lyrics for every song. Any idea why?Haven't been able to reproduce that on the songs I've tested this with.
Haven't been able to reproduce that on the songs I've tested this with.
Any specific song we can have a look at?
That's certainly interesting! I have this problem with literally every single song, and I've tested several dozen so far.Weird one for sure. Below is what I've been seeing all along - there aren't any line breaks:
Could that be a possible risk with the songtexte yml file you've created?Thumbs up for also picking that up. I will also correct that.
Would it be more accurate to use an identity url based on the songtexte.com url instead?
I'm not trying to be "Scrooge," but is there any reason using the existing Musixmatch plugin isn't good enough for you when Mayibongwe has already indicated that this is where "songtexte" is getting its lyrics from? There is also the "Museexmatch" API-based plugin that can be used simultaneously with his Musixmatch yml version.The website mentioned that it sources its lyrics from Musixmatch - a provider that already comes bundled with the plugin.
But I suppose that's already the case with most of the optional providers in that zip file. So, I've decided to add it anyway:
Thanks so much! I really appreciate that. :)
...For some reason, it's adding 5 empty lines at the end of the lyrics for every song. Any idea why?
Inserting - [regex, '\n\n+(?!\w)', ''] at the end of the yml should fix it. I will make the correction on the uploaded file later on.
- [regex, '\n\n+(?!\w)', '']
I'm not trying to be "Scrooge," but is there any reason using the existing Musixmatch plugin isn't good enough for you when Mayibongwe has already indicated that this is where "songtexte" is getting its lyrics from? There is also the "Museexmatch" API-based plugin that can be used simultaneously with his Musixmatch yml version.
however, it also now removes some of the double-line (ie. paragraph) breaks from the middle of the lyrics.Oopsie - does this help it?
Oopsie - does this help it?
- [regex, '\n\n\n+(?!\w)', '']
I'm not sure why, but I can't seem to download the plugin from Google Drive. It no longer shows a download option.Still unable to?
For some reason, I'm not able to access the website at the moment. So the above change may have to wait.Would it be more accurate to use an identity url based on the songtexte.com url instead?Thumbs up for also picking that up. I will correct that.
For some reason, I'm not able to access the website at the moment. So the above change may have to wait.
Are you able to open any of its webpages just fine?
Would it be more accurate to use an identity url based on the songtexte.com url instead?
name: Songtexte
loader: search
variables:
artist:
type: artist
filters:
- lowercase
- [regex, '\s', "-"]
title:
type: title
filters: artist
config:
identity url: "https://www.songtexte.com/search?q={title}+{artist}&c=all"
identity pattern: ['(?<identity>songtext/{artist}/{title}-.*?\.html)', 's']
lyrics url: "https://www.songtexte.com/"
lyrics pattern: ['<div id="lyrics">(?<lyrics>.*)<p id="artistCopyright', 's']
post-filters:
- [regex, '<br />[\s\S]<div id=[\s\S]*?</script>[\s\S]<br />', '']
- strip_html
- utf8_encode
- entity_decode
- [regex, '\n\n\n+(?!\w)', '']
[INFO] mb_LyricsReloaded in version 1.2.0.6 started!
Is that just a display error? mb_LyricsReloaded.dll itself says 1.2.0.7, Date: 05-11-2023.It indeed is. I will make a silent update later on to correct the version number on the log.
I read somewhere that the Lyricsify website uses CAPTCHA now and that could be a problem.That looks to be true. A way to get around it would be to conduct the search on google rather than the site itself.
name: Lyricsify
loader: search
variables:
artist:
type: artist
filters:
- lowercase
title:
type: title
filters: artist
config:
identity url: "https://www.google.com/search?q=site:www.lyricsify.com+{artist}+{title}"
identity pattern: ['(?<identity>lrc/.*?\.\d+)', 's']
lyrics url: "https://www.lyricsify.com/"
lyrics pattern: ['<div id="lyrics_.\d*_details">(?<lyrics>.*?)</div>', 's']
post-filters:
- strip_html
- utf8_encode
- entity_decode
- clean_spaces
- trim
- [regex, '', '', s]
It indeed is. I will make a silent update later on to correct the version number on the log.
That looks to be true. A way to get around it would be to conduct the search on google rather than the site itself.
I'm not sure why, but I can't seem to download the plugin from Google Drive. It no longer shows a download option.Still unable to?
Ask any questions you might have here:
https://getmusicbee.com/forum/index.php?topic=36952.0
Installation
============
- Inside MusicBee, go to 'Edit->Edit Preferences->Plugins->Add Plugin'.
Then locate and select the 'mb_LyricsReloaded.dll' file.
Optional
========
- Download and extract the 'providers' zip file into the "...\MusicBee\AppData\mb_LyricsReloaded\providers" folder.
- In addition to the built-in providers ... Genius, Musixmatch, Deezer ...
the contents of this zip file - called YAML configuration files - will appear as additional sources in
'Edit->Edit Preferences->Tags (2)->auto-tagging->lyrics' , where you can reorder their priority.
Advanced
========
- Want your retrieved lyrics to indicate which source they came from?
Then open the 'Settings.ini' file located in the plugin's AppData folder.
Change the 'enabled' value of the <showSource> setting from 'false' to 'true'.
- By default, the source will appear at the bottom of the lyrics when the above setting is enabled.
To have it appear at the top instead, change the 'position' attribute from 'bottom' to 'top'.
- Follow this link to learn more on how to make custom YAML files:
https://github.com/pschichtel/LyricsReloaded/blob/master/LyricsReloaded/README.md
@gaiastar: To uninstall (paths reflect having the PORTABLE version of MusicBee):hi
1. In MusicBee/Plugins, delete the file mb_LyricsReloaded.dll
2. In MusicBee/AppData, delete the folder mb_LyricsReloaded and its contents
I can confirm that the readme.txt as currently in the uploaded package is corrupt--Mayibongwe, please take a look! This is the file's contents when it was originally uploaded with version 1.2.0.7:CodeAsk any questions you might have here:
https://getmusicbee.com/forum/index.php?topic=36952.0
Installation
============
- Inside MusicBee, go to 'Edit->Edit Preferences->Plugins->Add Plugin'.
Then locate and select the 'mb_LyricsReloaded.dll' file.
Optional
========
- Download and extract the 'providers' zip file into the "...\MusicBee\AppData\mb_LyricsReloaded\providers" folder.
- In addition to the built-in providers ... Genius, Musixmatch, Deezer ...
the contents of this zip file - called YAML configuration files - will appear as additional sources in
'Edit->Edit Preferences->Tags (2)->auto-tagging->lyrics' , where you can reorder their priority.
Advanced
========
- Want your retrieved lyrics to indicate which source they came from?
Then open the 'Settings.ini' file located in the plugin's AppData folder.
Change the 'enabled' value of the <showSource> setting from 'false' to 'true'.
- By default, the source will appear at the bottom of the lyrics when the above setting is enabled.
To have it appear at the top instead, change the 'position' attribute from 'bottom' to 'top'.
- Follow this link to learn more on how to make custom YAML files:
https://github.com/pschichtel/LyricsReloaded/blob/master/LyricsReloaded/README.md
Hope it's ok for me to ask!Totally fine. Will have a look and let uu know when it's ready.
that's now fixed. Should be extractable just fine now.Confirmed, that fixed it. Thnx.
would you be willing to help me with a .yml file for https://lyrics.lyricfind.comSorry man, I've had a look at the site and I can't seem to get the lyrics in plain text.
I really like the formatting of their lyrics, but as far as I can tell there isn't a .yml file for them currently.
Sorry man, I've had a look at the site and I can't seem to get the lyrics in plain text.
The already-available <Deezer> and <Google> providers get their lyrics from Lyric Find.
Hello all!IMO you probably should have worked on Mayibongwe's updated and vastly improved version (https://www.getmusicbee.com/addons/plugins/467/lyrics-reloaded-latest/) rather than mine.
I posted a version of the plugin that supports DarkLyrics - it is available here (https://github.com/morgothulhu/LyricsReloaded) or mb_LyricsReloaded.metalEdition.1.2.1.zip (https://github.com/morgothulhu/LyricsReloaded/releases/download/1.2.1/mb_LyricsReloaded.metalEdition.1.2.1.zip) for a direct link.
Also tweaked the Genius plugin to work better for my use-case, so feel free to give it a shot!
Thanks!
Any ideas as to why they are not found when the CD is ripped? I could swear that it always worked that way before. Did I somehow mess up a setting?I don't think you've ever automatically gotten lyrics when ripping a CD as I'm pretty sure it's not supported. I can't recall a time when I ripped a CD and automatically got lyrics.
I don't think you've ever automatically gotten lyrics when ripping a CD as I'm pretty sure it's supported.
It doesn't have to be from the Now Playing pane either. Simply select the tracks you want lyrics for > right-click > auto-tag by track > update missing lyrics.
I am guessing you really meant to say that it is not supported rather than it is supported.Yes, that's right. I have corrected my post. Thanks for catching that.
I guess my bad memory is showing it ugly head. I hadn't ripped a CD for awhile and I guess I was just remembering incorrectly.Perhaps.
Hey there, welcome to the forum.
It seems to be working fine for me on the files I've tested this with.
Have you checked the entries on the log file to see where it's failing? ...MusicBee\AppData\mb_LyricsReloaded
Can you provide an example of a song we can have a look at?
[DEBUG] Lyrics request: Флер - Камень - Тысяча светлых ангелов - Pesni Guru
[INFO] Pesni Guru tries to load the lyrics...
[DEBUG] The constructed identity URL: https://pesni.guru/search/флер+камень
[DEBUG] The constructed lyrics URL: https://pesni.guru/text/флер-камень-минус
[SUCCESS] lyrics found from Pesni Guru!
[DEBUG] Lyrics request: IAMX - Ghosts Of Utopia - Volatile Times - Pesni Guru
[INFO] Pesni Guru tries to load the lyrics...
[DEBUG] The constructed identity URL: https://pesni.guru/search/iamx+ghosts of utopia
[DEBUG] Lyrics request: IAMX - Ghosts Of Utopia - Volatile Times - Musixmatch
[INFO] Musixmatch tries to load the lyrics...
[DEBUG] The constructed URL: http://www.musixmatch.com/lyrics/iamx/ghosts-of-utopia
[DEBUG] The constructed lyrics URL: https://pesni.guru/text/iamx-ghosts-of-utopia
[SUCCESS] lyrics found from Pesni Guru!
[SUCCESS] lyrics found from Musixmatch!
I looked at the log, and it's showing a success... but MusicBee is saying 'No lyrics found'. Here's the success log I got with Камень by Флер:For now, I don't have any explanation as to why that may be happening.
Hey girls, B-boys
Superstar DJs, here we go!
Hey girls, B-boys
Superstar DJs, here we go!
Hey girls, B-boys
Superstar DJs, here we go!
Hey girls, B-boys
Superstar DJs, here we go!
Hey girls, B-boys
Superstar DJs, here we go!
Hey girls, B-boys
Superstar DJs, here we go!
Hey girls, B-boys
Superstar DJs, here we go!
(Pleasure, you will get-get-get)
Here we go!
Here we go!
Hey girls, B-boys
Superstar DJs, here we go!
(Here we go!)
<inread-ad></inread-ad>Here we go!
Here we go!
Source: Genius
Also, this is a really minor aside, but the readme.txt for the current version has an incorrect path for where to place the providers files.The three MB installs each save their data in different locations.
...problems with updating the plugin when using the store version of MusicBee...Yeah, from what I hear, patching the Store version of MusicBee (or any other app) is not the easiest of tasks (both MB and Plugin wise).
Also, there might be a minor error in the Genius retrieval regex.I will address this over the weekend if I can't get to it during the week.
Hi, is there a way to create an option, perhaps via settings.ini, to have LyricsReloaded check the "mark as having no lyrics" box when no lyrics are found? I assume this would just be setting a tag value, though I'm not sure what the tag is or what the value is.The "mark as having no lyrics" value was/is saved in the MusicBee database the last time I checked. So we would probably have to involve Steven (MB's developer) on this one.
More importantly, have uu considered how this would result in a lot of false positives? i.e tracks being marked as having no lyrics when the providers actually have them, but perhaps returning "no lyrics found" due to the site being temporarily down, or being updated that causes the provider to break, or the site temporarily banning your IP address due to overuse, etc.Yes, BAD IDEA, for all the reasons stated above. Also I would add that keeping the plugin up-to-date and functioning for the retrieval of accurate lyrics from many sources should be the primary (I would argue, ONLY) function, not attempting to intertwine it with the additional mission of creating custom library values, flagging, etc. etc. Why kludge up an already well-oiled machine with functionality best performed elsewhere, even if that means manually.
Hi, is there a way to create an option, perhaps via settings.ini, to have LyricsReloaded check the "mark as having no lyrics" box when no lyrics are found? I assume this would just be setting a tag value, though I'm not sure what the tag is or what the value is.The "mark as having no lyrics" value was/is saved in the MusicBee database the last time I checked. So we would probably have to involve Steven (MB's developer) on this one.
I imagine you would want such a setting applying to any other lyrics plugin as well? If so, then this would have to be a global MB setting which you can request in the wishlist board of the forum.
More importantly, have uu considered how this would result in a lot of false positives? i.e tracks being marked as having no lyrics when the providers actually have them, but perhaps returning "no lyrics found" due to the site being temporarily down, or being updated that causes the provider to break, or the site temporarily banning your IP address due to overuse, etc.
Yes, BAD IDEA, for all the reasons stated above. Also I would add that keeping the plugin up-to-date and functioning for the retrieval of accurate lyrics from many sources should be the primary (I would argue, ONLY) function, not attempting to intertwine it with the additional mission of creating custom library values, flagging, etc. etc. Why kludge up an already well-oiled machine with functionality best performed elsewhere, even if that means manually.
Also, there might be a minor error in the Genius retrieval regex.I will address this over the weekend if I can't get to it during the week.
In the mornin' you go gunnin'
For the man who stole your water
And you fire 'til he is done in
But they catch you at the border
And the mourners are all sangin'
As they drag you by your feet
But the hangman isn't hangin'
And they put you on the street
Yeah, you go back, Jack, do it again
Wheel turnin' 'round and 'round
You go back, Jack, do it again
When you know she's no high climber
Then you find your only friend
In a room with your two timer
And you're sure you're near the end
Then you love a little wild one
And she brings you only sorrow
All the time you know she's smilin'
You'll be on your knees tomorrow
See Steely Dan LiveGet tickets as low as $33
Yeah, you go back, Jack, do it again
Wheel turnin' 'round and 'round
You go back, Jack, do it again
Now you swear and kick and beg us
That you're not a gambling man
Then you find you're back in Vegas
With a handle in your hand
Your black cards can make you money
So you hide them when you're able
In the land of milk and honey
You must put them on the table
Yeah, you go back, Jack, do it again
Wheel turnin' 'round and 'round
You go back, Jack, do it again
Source: Genius
Every Steely Dan song in my collection had a similar line, but I haven't seen it in the lyrics returned for any other artist.This line only seems to appear when the particular artist is actively scheduled for one of these appearences. It does not appear in results from the API-based "Beenius" Genius retrieval plugin, which can be run simultaneously with LyricsReloaded without issue (https://getmusicbee.com/forum/index.php?topic=36605.0 (https://getmusicbee.com/forum/index.php?topic=36605.0)).
I mention all this only in case it might help with debugging. I want to emphasize, I'm really grateful for LyricsReloaded and all your work on it; I think it's an amazing tool.
The line <inread-ad></inread-ad>Here we go! should simply read Here we go!This is now fixed. Update to v1.2.0.8.
Here is the returned value for Do It Again by Steely Dan, which has an advertisement insert "See Steely Dan LiveGet tickets as low as $33" at line 22 / the last line of paragraph 3:I cannot see that line on my side. Once you update to the new version, run it again with the same song and see if it persists.
Gonna have a look at this sometime this evening or tomorrow.I'd like to remove a specific sentence from the lyrics that is retrieved when I fetch the lyrics from Genius : "See <artist> LiveGet tickets as low as $<price>"
I've tried these regex in advanced search & replace but with no success yet : See <Tag 2> LiveGet tickets as low as \$\d{1,} to be replaced by nothing
Edit2: Ok, I've managed to do it using "See \@1 LiveGet tickets as low as \$\d{1,}" and setting custom text as the artist name but is it possible to automatically retrieve the artist name ?
Does this work?:CodeYou can test and tweak it further here: https://regex101.com/r/CWLkl7/1See.*(?=LiveGet).*(?=\$)\$\d{1,}
But I am wondering if this isn't something that would better be solved at the source, which (I assume) is the Lyrics Reloaded plugin?
If so, you could raise it in that topic so that its developer/maintainer sees it?
Having issues with concert tickets being added to my lyrics, here is a link to my post with an example of the issue.As you can read on this page the developer is aware of and actively working on this.
https://getmusicbee.com/forum/index.php?topic=41063.0
sorry was told to post here so i didHaving issues with concert tickets being added to my lyrics, here is a link to my post with an example of the issue.As you can read on this page the developer is aware of and actively working on this.
https://getmusicbee.com/forum/index.php?topic=41063.0