Provider loaded: PROVIDER NAME HERE
23-06-2013 09:25:16 [INFO] The provider %s does already exist and will be replaced.
I tested all sites I added on MusicBee 2.1 pre1
Hi there,
Downloaded the plug in. Installed it in the plugin dir, but after restarting MB the program says it cannot load the plug in. I have the latest MB version. What went wrong?
Here is .yml file for site "tekstovipjesama.com" with data base ex-Yu speaking language songs.
http://www.sendspace.com/file/3ehnjk
When reading character " ' " it returns " ’ ". Except that, everything seems to works fine.
Is there a way to change priority of sites? I have significant lagg while plugin go trough all sites, and find nothing until he came to very last site (in my case: "tekstovipjesama.com") and find text.
Here is .yml file for site "tekstovipjesama.com" with data base ex-Yu speaking language songs.
http://www.sendspace.com/file/3ehnjk
When reading character " ' " it returns " ’ ". Except that, everything seems to works fine.
Is there a way to change priority of sites? I have significant lagg while plugin go trough all sites, and find nothing until he came to very last site (in my case: "tekstovipjesama.com") and find text.
have you tried adding the entity_decode filter? That might resolve the problem.
May I add the configuration to the default configuration?
If not, you will have to update for the new version of the plugin probably coming during the next week.
I just found that there is a way to change site priority.Hmm, I'm not sure if this somehow relates to LyricsReloaded plugin.
So if someone looking for that.
MusicBee/Edit/Preferences/Tags (2)/
"auto-tagging" section, and then
Button with "..." on it at the end of lyrics text field.
After that just sort sites.
I just found that there is a way to change site priority.Hmm, I'm not sure if this somehow relates to LyricsReloaded plugin.
So if someone looking for that.
MusicBee/Edit/Preferences/Tags (2)/
"auto-tagging" section, and then
Button with "..." on it at the end of lyrics text field.
After that just sort sites.
maintain wiki page up to date if possible.I'm not going to update this thread and the wiki
I'm not going to update this thread and the wikiI think wiki is preferable, but its of course your decision.
Why didn't you include the DL-links ? The plugin is, quite obvious, already releasedI thought that 1st posted release was not working yet. Sorry.
New version released!
Redownload from the first thread!
Lyrics Source: MUSICBEE PLUGINwhereas for lyrics providers supported out of the box with MusicBee an exact name of the provider is displayed (eg. Lyrics Source: LYRDB).
One minor issue/feature request:that is something i would need change in the musicbee application itself. Could you add this as a wishlist request if its important to you
When you right-click onto Lyrics tab to see the lyrics source you can see:QuoteLyrics Source: MUSICBEE PLUGINwhereas for lyrics providers supported out of the box with MusicBee an exact name of the provider is displayed (eg. Lyrics Source: LYRDB).
Is it possible for the plugin to show the lyrics source for the particular track in the same way as MusicBee does ???
One minor issue/feature request:that is something i would need change in the musicbee application itself. Could you add this as a wishlist request if its important to you
When you right-click onto Lyrics tab to see the lyrics source you can see:QuoteLyrics Source: MUSICBEE PLUGINwhereas for lyrics providers supported out of the box with MusicBee an exact name of the provider is displayed (eg. Lyrics Source: LYRDB).
Is it possible for the plugin to show the lyrics source for the particular track in the same way as MusicBee does ???
Keep getting an error from the new version
13/07/2013 10:15:33 PM - 5.1.2600.196608 - 2.2.4935.12590 - System.Threading.ThreadInterruptedException: Thread was interrupted from a waiting state.
at System.Threading.Monitor.ObjWait(Boolean exitContext, Int32 millisecondsTimeout, Object obj)
at System.Threading.Monitor.Wait(Object obj, Int32 millisecondsTimeout, Boolean exitContext)
at System.Threading.SemaphoreSlim.WaitUntilCountOrTimeout(Int32 millisecondsTimeout, Int64 startTimeTicks, CancellationToken cancellationToken)
at System.Threading.SemaphoreSlim.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Collections.Concurrent.BlockingCollection`1.TryTakeWithNoTimeValidation(T& item, Int32 millisecondsTimeout, CancellationToken cancellationToken, CancellationTokenSource combinedTokenSource)
at System.Collections.Concurrent.BlockingCollection`1.TryTake(T& item, Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Collections.Concurrent.BlockingCollection`1.Take()
at CubeIsland.LyricsReloaded.Logger.write()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
it might be easier to just post the errors here, but it's much more effective if you create issues on my bug tracker
This is not an official update, so you won't get notified about this release.
The issue with the logger isn't critical, so I recommand to wait until I can release an official update. For those of you who want this bug to be fixed now, download the dll below and replace your current LyricsReloaded plugin with it.
Be aware: I did not check the binary for malicious code, so use it at your own risk.
So here is the fixed version compiled by logicPwn:
http://dl.code-infection.de/counted/mb_LyricsReloaded-logicPwn.dll
I have no objection to this proposal, but I'd like to point out that in general the featured artists aren't so much part of the title as something to go in the artist tag, leaving album artist constant for the album+1
in general the featured artists aren't so much part of the title as something to go in the artist tag, leaving album artist constant for the albumI disagree on two counts...
Filtering the title with regexes is already possible if you add it as a filter to specific provider configurationsErm, where might that be? (documentation?)
3) Songname featuring Artist is more natural than Artist featuring Artist (personal preference)
1) When you rename a complete album with the artist as folder name e.g. ..\%artist%\%year% %album%\%track% %track title%
... having NON consistent %artist% fields that carry featured artist names really screws thing up.
I've thought about using %album artist% as well as %artist%, but this deviates away from idtags v1 so I've resisted and I don't see car stereos and other devices supporting these other tags in a hurry either.
First, do a custom search for "Lyrics? ... has a value" This will show only the tracks without lyrics in the main panel. Then select the tracks and right click > Auto-Tag by Track > Update Missing Lyrics. Then hit Proceed and wait for it to process them. (You might want to test on a small quantity at first.)
Would be great if MB could display the specific lyrics provider name when fetched from one of the sources with this plugin, instead of just displaying "MusicBee Plugin".
It's the same as Steven's Lyrics plugin in that it doesn't show the name of the provider unlike MB's native lyrics providers that displays when you right-click on lyrics panel.Would be great if MB could display the specific lyrics provider name when fetched from one of the sources with this plugin, instead of just displaying "MusicBee Plugin".
Preferences > Tags (2) > Auto-Tagging > Lyrics. Self-evidently.
It just adds more providers. Native fetcher + Steven's Lyrics plugin + Lyrics Reloaded plugin ...
@whoever changed the links: Why the hell have I not been notified about the links not working? Instead the links where replaced by a random mediafire link without me knowing about it. That is definitly not the way this should be done. I'm kinda disappointed with the moderation.
I scrolled through the posts yesterday, but didn't see anyone stating that the link has been replaced at first glance. I guess those notification mails must have been dropped by getmusicbee.com's Mailserver during the short downtime of my Mailserver. Someone should check those deferring settings, none of my other mails got lost.
And here we go: Version 1.1.2.0 released.
This is a bug fix release:
* removed providers that are offline
* fixed lyricwiki and az lyrics
* fixed the update checker (there won't be a notification for this update sadly)
Download: https://github.com/pschichtel/LyricsReloaded/releases/tag/1.1.2.0
I also moved the provider to-do list into an issue: https://github.com/pschichtel/LyricsReloaded/issues/11
New providers can either be posted in that issue or here as usual.
Other issues have been reorganized as well
Hey man loving the plugin, however RapGenius is no longer RapGenius, it's now known as *.Genius.com (* being Rap, Rock, Lit etc) a simple tweak to the file "LyricsReloaded\Configs\rapgenius.com.yml" fixes it.
If anyone would like, I can post the modified DLL here (along with a VirusTotal report, of course)
Doesn't work here.
I copied the mb_LyricsReloaded.dll in this folder C:\Program Files (x86)\MusicBee\Plugins.
The plugin is listed in the plugin section but nothing happens when i click on the configure button.
Does anyone else do have this problem or did i done something wrong?
Here is the log file: http://pastebin.com/066kSHKA
Sorry for my bad english
Hey man loving the plugin, however RapGenius is no longer RapGenius, it's now known as *.Genius.com (* being Rap, Rock, Lit etc) a simple tweak to the file "LyricsReloaded\Configs\rapgenius.com.yml" fixes it.
If anyone would like, I can post the modified DLL here (along with a VirusTotal report, of course)
Can you make a Pull Request over at https://github.com/pschichtel/LyricsReloaded so I can add it to the official build?
Also providing a patched DLL is a) not necessary as the *.yml can be placed in the plugin folder and b) is not really wanted because DLLs can be harmful.Doesn't work here.
I copied the mb_LyricsReloaded.dll in this folder C:\Program Files (x86)\MusicBee\Plugins.
The plugin is listed in the plugin section but nothing happens when i click on the configure button.
Does anyone else do have this problem or did i done something wrong?
Here is the log file: http://pastebin.com/066kSHKA
Sorry for my bad english
The plugin doesn't provide any functionality on the configure-button, that's expected. The log also doesn't show any problems except the update check not working (again... Github, fix your SSL!)
Lyrics provided by: AZLyrics.com
Artist: MEGADETH
Track: Symphony Of Destruction
Lyrics provided by: Lyric.Wikia.comIf it's possible, perhaps make it an option, like a checkbox, in the settings for the plugin. Some people may not want it. I think it's good for two reasons off the top of my head:
Artist: Pink Floyd
Track: Time
I'd also like the option to see the lyrics source at the bottom of the sheet.
Hi! I would like to request an actual solution to the Genius lyrics - they are such a quality lyric site and I would love it if I would be able to have lyrics from that source. Especially for all my underground rap songs, they are simply not found on other sites.
I tried editing the configuration file but then it won't load the plugin. Probably some hashsum check or something, I really don't know what I am doing :S
Thanks!
Hi! I would like to request an actual solution to the Genius lyrics - they are such a quality lyric site and I would love it if I would be able to have lyrics from that source. Especially for all my underground rap songs, they are simply not found on other sites.
I tried editing the configuration file but then it won't load the plugin. Probably some hashsum check or something, I really don't know what I am doing :S
Thanks!
I was able to fix it previously, but lost the files that I edited so I am not really sure how I did it, but if I was able to do it then I am sure it is quite an easy fix for the coder of the plugin, however he has known about this issue for quite some time (see my other posts in this thread) and has shown pretty much no interest in fixing it so I wouldn't hold my breath if I were you.
Here is how to add Genius.com as a provider with this plugin.
1. Save the following code as a text file named "genius.com.yml"
2. Place the file in <MusicBee's appdata folder>/mb_LyricsReloaded/providers/ folder (the folder already exists if the plugin is enabled)
3. Now you will see "Genius" entry from the lyrics providers list in Preferences> Tags(2)> lyrics setting.
Here is how to add Genius.com as a provider with this plugin.Indeed, thank you, redwing, for posting that extremely helpful Genius.com provider template. I started using it awhile ago and eventually realized that it was having issues retrieving lyrics for some tracks/artists with various punctuation patterns, so I decided to take a look at the log and see what was up. And then I accidentally spent waaaaaaaay too much time discovering all the annoying variations in how lyrics sites format artist+title strings and flexing my puny regex muscles, with the aid of Pythex.org (http://pythex.org).
1. Save the following code as a text file named "genius.com.yml"
2. Place the file in <MusicBee's appdata folder>/mb_LyricsReloaded/providers/ folder (the folder already exists if the plugin is enabled)
3. Now you will see "Genius" entry from the lyrics providers list in Preferences> Tags(2)> lyrics setting.
name: "Genius"
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [replace, "!!!", "chk-chik-chick"] # !!! (Chk Chk Chk) artist exception
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
# ^ Strip F./ft/eat/uring + everything after
- [regex, '\s&(?=\s)', " and"] # Replace " &" with " and"
## ^ Currently superfluous (for ARTIST) bc plugin preemptively replaces "&" with "and"
### ^ But still necessary for <title> "&" replacement
- [regex, '[’\.,'']+|(\W+(?=$))|(^\W+)', ""] # Strip "'/’" + "." + "," + beginning/end of string non-word chars
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
# ^ Replace medial non-alphanumeric char(s) with single "-" e.g., f**k > f-k
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
# ^ Clean up any remaining successive non-alphanumeric chars before strip_nonascii
## ^ Long & stupid bc couldn't figure out YAML-friendly non-capturing "(?:...)"
### ^ EZ version: [regex, '\W+(?:\W)(?<!$)', " "]
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "http://genius.com/{artist}-{title}-lyrics"
pattern: ['<div\s+class="lyrics"[^>]*?>(?<lyrics>.*?)</div>', s]
post-filters:
- strip_html
- clean_spaces
- utf8_encode
name: "Musixmatch"
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [replace, "!!!", "artist-46206"] # !!! (Chk Chk Chk) artist exception
- [replace, "+/-", "p%m"] # +/- artist janky exception (step 1)
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
# ^ Strip F./ft/eat/uring + everything after
- [regex, '[’'']+', "%27"] # URL encode "'/’" bc MM is cool w/ dat shit
- [regex, '\s&\s(?=the)', " and "] # ONLY if succeeded by "the", replace " & " with " and "
## ^ Currently superfluous bc plugin preemptively replaces "&" with "and"
### ^ So MM will choke if <artist> contains "& (?!the)"
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
# ^ Replace medial non-alphanumeric char(s) with single "-" (except "'") e.g., M.I.A. > M-I-A.
- [regex, '\W+(?=$)', ""] # Strip end-of-string non-word chars
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
# ^ Clean up any remaining successive non-alphanumeric char(s) before strip_nonascii
## ^ Long & stupid bc couldn't figure out YAML-friendly non-capturing "(?:...)"
### EZ version: [regex, '\W+(?:\W)(?<!$)', " "]
- [strip_nonascii, -]
- [replace, "-27", "%27"] # Fix "'/’" URL encoding after strip_nonascii
- [regex, '(?<=^)p-m', "-"] # Janky replace for artist +/- after strip_nonascii (step 2)
title:
type: title
filters: # Not using identical artist filters due to different treatment of "&" in titles vs artist names
# Musixmatch strips "&" from <title> ALWAYS; from <artist> too, *unless* "& the", then replaced with "and"
## ^ see "&" treatment note above, under 'artist'
- strip_diacritics
- lowercase
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
# ^ Strip F./ft/eat/uring + everything after
- [regex, '[’'']+', "%27"] # URL encode "'/’" bc MM is cool w/ dat shit
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
# ^ Replace medial non-alphanumeric char(s) with single "-" (except "'") e.g., f**k > f-k
- [regex, '\W+(?=$)', ""] # Strip end-of-string non-word chars
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
# ^ Clean up any remaining successive non-alphanumeric char(s) before strip_nonascii
- [strip_nonascii, -]
- [replace, "-27", "%27"] # Fix "'/’" URL encoding after strip_nonascii
config:
url: "http://www.musixmatch.com/lyrics/{artist}/{title}"
pattern: ['<span\s+id="lyrics-html"[^>]*?>(?<lyrics>.*?)</span>', s]
post-filters:
- utf8_encode
But for this:Ah, yes, most of of my recent library has all artists cleaned up to have "feat" artists in the separate <Artists: Guest> tag, so I didn't bother much with that originally, but yeah it probably makes a difference if you have it all in the artist field or at the end of the song title. Genius, especially tends to not include any of that in the URL, whereas Musixmatch seems to be pretty good about redirecting and/or will even have 2 separate listings (1 with feat artist crap, 1 without), but that's more inconsistent.
Macklemore & Ryan Lewis feat. Ray Dalton - Can't Hold Us
I still can't grab it because it has feat. in it. Is there a way to make it ignore feat.?
Here is how to add Genius.com as a provider with this plugin.Indeed, thank you, redwing, for posting that extremely helpful Genius.com provider template. I started using it awhile ago and eventually realized that it was having issues retrieving lyrics for some tracks/artists with various punctuation patterns, so I decided to take a look at the log and see what was up. And then I accidentally spent waaaaaaaay too much time discovering all the annoying variations in how lyrics sites format artist+title strings and flexing my puny regex muscles, with the aid of Pythex.org (http://pythex.org).
1. Save the following code as a text file named "genius.com.yml"
2. Place the file in <MusicBee's appdata folder>/mb_LyricsReloaded/providers/ folder (the folder already exists if the plugin is enabled)
3. Now you will see "Genius" entry from the lyrics providers list in Preferences> Tags(2)> lyrics setting.
The result of my nerdocity is a modified Genius.com (http://genius.com) provider config + a config for Musixmatch.com (http://musixmatch.com). Neither are 100%, of course, but I tested it with a bunch of stupid character-containing bands and song titles and, while I'm quite sure that both configs could be significantly cleaned up by utilizing some of the built-in plugin filters and less terrible regex skillz, they seem to get the job done most of the time. They will, however, both still fail on song titles with parentheses, as the plugin strips everything on and after the 1st "(" before being scrubbed by the provider config (plus, feat. <artist> patterns are all over the place, so F that).
Anyway, here's my modified code for Genius (see redwing's original instructions for how to install (#post_geniusinstall))Code: genius.com.ymlname: "Genius"
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [replace, "!!!", "chk-chik-chick"] # !!! (Chk Chk Chk) artist exception
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
# ^ Strip F./ft/eat/uring + everything after
- [regex, '\s&(?=\s)', " and"] # Replace " &" with " and"
## ^ Currently superfluous (for ARTIST) bc plugin preemptively replaces "&" with "and"
### ^ But still necessary for <title> "&" replacement
- [regex, '\.+|,+|(\W+(?=$))|(^\W+)', ""] # Strip "." + "," + beginning/end of string non-word chars
- [regex, "'", ""] # Separate expression bc of annoying way YAML escapes '
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
# ^ Replace medial non-alphanumeric char(s) with single "-" e.g., f**k > f-k
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
# ^ Clean up any remaining successive non-alphanumeric chars before strip_nonascii
## ^ Long & stupid bc couldn't figure out YAML-friendly non-capturing "(?:...)"
### ^ EZ version: [regex, '\W+(?:\W)(?<!$)', " "]
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "http://genius.com/{artist}-{title}-lyrics"
pattern: ['<div\s+class="lyrics"[^>]*?>(?<lyrics>.*?)</div>', s]
post-filters:
- strip_html
- clean_spaces
- utf8_encode
For Musixmatch, copy/paste below code to a text file named "musixmatch.com.yml", save to MusicBee's <appdata folder>/mb_LyricsReloaded/providers/, open Musicbee and add new Musixmatch provider from Preferences > Tags (2) > Auto-tagging > Lyrics [...]Code: musixmatch.com.ymlname: "Musixmatch"
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [replace, "!!!", "artist-46206"] # !!! (Chk Chk Chk) artist exception
- [replace, "+/-", "p%m"] # +/- artist janky exception (step 1)
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
# ^ Strip F./ft/eat/uring + everything after
- [regex, "'", "%27"] # URL encode "'" bc MM is cool w/ dat shit
- [regex, '\s&\s(?=the)', " and "] # ONLY if succeeded by "the", replace " & " with " and "
## ^ Currently superfluous bc plugin preemptively replaces "&" with "and"
### ^ So MM will choke if <artist> contains "& (?!the)"
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
# ^ Replace medial non-alphanumeric char(s) with single "-" (except "'") e.g., M.I.A. > M-I-A.
- [regex, '\W+(?=$)', ""] # Strip end-of-string non-word chars
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
# ^ Clean up any remaining successive non-alphanumeric char(s) before strip_nonascii
## ^ Long & stupid bc couldn't figure out YAML-friendly non-capturing "(?:...)"
### EZ version: [regex, '\W+(?:\W)(?<!$)', " "]
- [strip_nonascii, -]
- [replace, "-27", "%27"] # Fix "'" URL encoding after strip_nonascii
- [regex, '(?<=^)p-m', "-"] # Janky replace for artist +/- after strip_nonascii (step 2)
title:
type: title
filters: # Not using identical artist filters due to different treatment of "&" in titles vs artist names
# Musixmatch strips "&" from <title> ALWAYS; from <artist> too, *unless* "& the", then replaced with "and"
## ^ see "&" treatment note above, under 'artist'
- strip_diacritics
- lowercase
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
# ^ Strip F./ft/eat/uring + everything after
- [regex, "'", "%27"] # URL encode "'" bc MM is cool w/ dat shit
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
# ^ Replace medial non-alphanumeric char(s) with single "-" (except "'") e.g., f**k > f-k
- [regex, '\W+(?=$)', ""] # Strip end-of-string non-word chars
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
# ^ Clean up any remaining successive non-alphanumeric char(s) before strip_nonascii
- [strip_nonascii, -]
- [replace, "-27", "%27"] # Fix "'" URL encoding after strip_nonascii
config:
url: "http://www.musixmatch.com/lyrics/{artist}/{title}"
pattern: ['<span\s+id="lyrics-html"[^>]*?>(?<lyrics>.*?)</span>', s]
post-filters:
- utf8_encode
* I included my comments, just in case anyone wants to take stab at updating or modifying my very silly regex and wants to know what the hell I was thinking (delete at will - they have no effect on functionality).
So, yeah, with both Genius and Musixmatch as my #1 & #2 lyrics providers, I wanna say like 90% of my 25K songs now come with bonus words. Yay and thanks again redwing (http://getmusicbee.com/forum/index.php?action=profile;u=4143) and, of course, quick_wango (http://getmusicbee.com/forum/index.php?action=profile;u=8313)!
* Edit: 2015.09.02 10:30 PST - added featured artist stripping to both configs
Here is how to add Genius.com as a provider with this plugin.Indeed, thank you, redwing, for posting that extremely helpful Genius.com provider template. I started using it awhile ago and eventually realized that it was having issues retrieving lyrics for some tracks/artists with various punctuation patterns, so I decided to take a look at the log and see what was up. And then I accidentally spent waaaaaaaay too much time discovering all the annoying variations in how lyrics sites format artist+title strings and flexing my puny regex muscles, with the aid of Pythex.org (http://pythex.org).
1. Save the following code as a text file named "genius.com.yml"
2. Place the file in <MusicBee's appdata folder>/mb_LyricsReloaded/providers/ folder (the folder already exists if the plugin is enabled)
3. Now you will see "Genius" entry from the lyrics providers list in Preferences> Tags(2)> lyrics setting.
The result of my nerdocity is a modified Genius.com (http://genius.com) provider config + a config for Musixmatch.com (http://musixmatch.com). Neither are 100%, of course, but I tested it with a bunch of stupid character-containing bands and song titles and, while I'm quite sure that both configs could be significantly cleaned up by utilizing some of the built-in plugin filters and less terrible regex skillz, they seem to get the job done most of the time. They will, however, both still fail on song titles with parentheses, as the plugin strips everything on and after the 1st "(" before being scrubbed by the provider config (plus, feat. <artist> patterns are all over the place, so F that).
Anyway, here's my modified code for Genius (see redwing's original instructions for how to install (#post_geniusinstall))Code: genius.com.ymlname: "Genius"
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [replace, "!!!", "chk-chik-chick"] # !!! (Chk Chk Chk) artist exception
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
# ^ Strip F./ft/eat/uring + everything after
- [regex, '\s&(?=\s)', " and"] # Replace " &" with " and"
## ^ Currently superfluous (for ARTIST) bc plugin preemptively replaces "&" with "and"
### ^ But still necessary for <title> "&" replacement
- [regex, '\.+|,+|(\W+(?=$))|(^\W+)', ""] # Strip "." + "," + beginning/end of string non-word chars
- [regex, "'", ""] # Separate expression bc of annoying way YAML escapes '
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
# ^ Replace medial non-alphanumeric char(s) with single "-" e.g., f**k > f-k
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
# ^ Clean up any remaining successive non-alphanumeric chars before strip_nonascii
## ^ Long & stupid bc couldn't figure out YAML-friendly non-capturing "(?:...)"
### ^ EZ version: [regex, '\W+(?:\W)(?<!$)', " "]
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "http://genius.com/{artist}-{title}-lyrics"
pattern: ['<div\s+class="lyrics"[^>]*?>(?<lyrics>.*?)</div>', s]
post-filters:
- strip_html
- clean_spaces
- utf8_encode
For Musixmatch, copy/paste below code to a text file named "musixmatch.com.yml", save to MusicBee's <appdata folder>/mb_LyricsReloaded/providers/, open Musicbee and add new Musixmatch provider from Preferences > Tags (2) > Auto-tagging > Lyrics [...]Code: musixmatch.com.ymlname: "Musixmatch"
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [replace, "!!!", "artist-46206"] # !!! (Chk Chk Chk) artist exception
- [replace, "+/-", "p%m"] # +/- artist janky exception (step 1)
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
# ^ Strip F./ft/eat/uring + everything after
- [regex, "'", "%27"] # URL encode "'" bc MM is cool w/ dat shit
- [regex, '\s&\s(?=the)', " and "] # ONLY if succeeded by "the", replace " & " with " and "
## ^ Currently superfluous bc plugin preemptively replaces "&" with "and"
### ^ So MM will choke if <artist> contains "& (?!the)"
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
# ^ Replace medial non-alphanumeric char(s) with single "-" (except "'") e.g., M.I.A. > M-I-A.
- [regex, '\W+(?=$)', ""] # Strip end-of-string non-word chars
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
# ^ Clean up any remaining successive non-alphanumeric char(s) before strip_nonascii
## ^ Long & stupid bc couldn't figure out YAML-friendly non-capturing "(?:...)"
### EZ version: [regex, '\W+(?:\W)(?<!$)', " "]
- [strip_nonascii, -]
- [replace, "-27", "%27"] # Fix "'" URL encoding after strip_nonascii
- [regex, '(?<=^)p-m', "-"] # Janky replace for artist +/- after strip_nonascii (step 2)
title:
type: title
filters: # Not using identical artist filters due to different treatment of "&" in titles vs artist names
# Musixmatch strips "&" from <title> ALWAYS; from <artist> too, *unless* "& the", then replaced with "and"
## ^ see "&" treatment note above, under 'artist'
- strip_diacritics
- lowercase
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
# ^ Strip F./ft/eat/uring + everything after
- [regex, "'", "%27"] # URL encode "'" bc MM is cool w/ dat shit
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
# ^ Replace medial non-alphanumeric char(s) with single "-" (except "'") e.g., f**k > f-k
- [regex, '\W+(?=$)', ""] # Strip end-of-string non-word chars
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
# ^ Clean up any remaining successive non-alphanumeric char(s) before strip_nonascii
- [strip_nonascii, -]
- [replace, "-27", "%27"] # Fix "'" URL encoding after strip_nonascii
config:
url: "http://www.musixmatch.com/lyrics/{artist}/{title}"
pattern: ['<span\s+id="lyrics-html"[^>]*?>(?<lyrics>.*?)</span>', s]
post-filters:
- utf8_encode
* I included my comments, just in case anyone wants to take stab at updating or modifying my very silly regex and wants to know what the hell I was thinking (delete at will - they have no effect on functionality).
So, yeah, with both Genius and Musixmatch as my #1 & #2 lyrics providers, I wanna say like 90% of my 25K songs now come with bonus words. Yay and thanks again redwing (http://getmusicbee.com/forum/index.php?action=profile;u=4143) and, of course, quick_wango (http://getmusicbee.com/forum/index.php?action=profile;u=8313)!
* Edit: 2015.09.02 10:30 PST - added featured artist stripping to both configs
For some reason both of these don't show up. I saved each text in a separate yml file (via notepad) and put them in <Roaming/MusicBee/LyricsReloaded/Providers/
Then I restarted MB and they aren't in the Tags (2) Lyrics section. Any clue? Using the latest MB (2.5.5721)
For some reason both of these don't show up. I saved each text in a separate yml file (via notepad) and put them in <Roaming/MusicBee/LyricsReloaded/Providers/
Then I restarted MB and they aren't in the Tags (2) Lyrics section. Any clue? Using the latest MB (2.5.5721)
For some reason both of these don't show up. I saved each text in a separate yml file (via notepad) and put them in <Roaming/MusicBee/LyricsReloaded/Providers/
Then I restarted MB and they aren't in the Tags (2) Lyrics section. Any clue? Using the latest MB (2.5.5721)
I might be just nitpicking here but that path is wrong.
It's suppose to be: AppData\Roaming\MusicBee\mb_LyricsReloaded\providers
Your path is missing the bold part.
So, I'm trying to add genius in there as well and am not getting it to show up. Was wondering if somebody could give me some pointers.
I am saving it in the correct location, so that doesn't seem to be the issue.
Alright, so all I have to do is open notepad, copy/paste the code into the document and title the file "genius.com.yml"
or is there a step that I am simply missing?
* Edit: 2015.09.11 13:10 PST - updated both configs to handle curly apostrophes like straight ( ’ -> ' )Updated provider code(s) in my orig post (http://getmusicbee.com/forum/index.php?topic=9994.msg95639#msg95639) because curly apostrophes are silly and trollish.
I tried adding the musixmatch and genius providers but they don't work. I did some digging and found this in the log fileHmm, just from the log snippet you pasted, that all looks like it would be working ok, although it doesn't show the constructed URL for the separate Genius provider, though it may have been cut off below (+ logging seems to be a little inconsistent re: what actually gets printed for every lyric-search/transaction, especially the first search after startup).
Great to see that people are still liking my plugin.Its pretty great how it is now. The next step I can see is synced lyrics. Thanks for putting work into this!
Thanks to emmaoninternet for the good providers and helping others here.
I kind of lost interest in the project as I moved entirely to Linux and I am thus unable to use MusicBee.
But for that reason I made it both open source on GitHub (including open feature requests) and as extensible as possible right from the beginning.
However if someone wants to take the project over, feel free to contact me (contact address is on my github profile).
If someone wants to sponsor me to keep developing the plugin, contact me in the same way.
Otherwise the development of the plugin from my side officially ends now.
For some reason this plugin doesn't work in MB3 Demo. Could there be an error on my part?Could you be a little more specific? How do you know it's not working? I'm using it with no problems.
For some reason this plugin doesn't work in MB3 Demo. Could there be an error on my part?Could you be a little more specific? How do you know it's not working? I'm using it with no problems.
I would suggest closing MB, and unzipping the DLL into the Plugins folder. Even if the version you're unzipiping is the same as what's already there. Then relaunch MB and see what happens. As you are probably aware, the developer of this plugin has stopped development and if this doesn't work, you'll have to put out a call for help to see if anyone else has some ideas.
I'm using 3, should I delete 2?No. Just don't have them open at the same time if you're tagging tracks, etc.
I don't and I still cant get Lyrics reloaded to runSorry to say that I'm out of ideas at this point. Maybe someone else will chime in with some suggestions. It should work as it is working for me.
I don't and I still cant get Lyrics reloaded to run
I had the same problem.
Try Right-click on the mb_Lyrics Reloaded.dll
(http://t1m.eu/farm/mblr.jpg)
Click at the bottom on permit.
Hope that help.
sry for Germen Screenshot :)
The result of my nerdocity is a modified Genius.com (http://genius.com) provider config + a config for Musixmatch.com (http://musixmatch.com).Thank you for this awesome script! Now I can easily add non-synced lyrics with a few clicks within MusicBee!
Joined to ask if anyone knows of a way to set a hotkey to auto update the lyrics?That doesn't exist. And this plugin is no longer being supported by the developer. Although new provider configurations are being posted periodically.
In the hotkeys menu I see in the Tools section that there are options for tags/pictures but unfortunately can't find anything for lyrics.
If the plugin does not work on MusicBee 3 and there is enough interest I could port it over
That's only an option if MusicBee can run under Linux using Wine and Mono. Has anyone tried that before?
07.02.2016 05:56:50 [DEBUG] Lyrics request: - Rick Ross - Silk Road - Black Market - Genius
07.02.2016 05:56:50 [INFO] Genius tries to load the lyrics...
07.02.2016 05:56:50 [DEBUG] The constructed URL: http://genius.com/rick-ross-silk-road-lyrics
07.02.2016 05:56:50 [DEBUG] gzip compression detected
07.02.2016 05:56:50 [WARN] The pattern <div\s+class="lyrics"[^>]*?>(?<lyrics>.*?)</div> didn't match!
07.02.2016 05:56:50 [INFO] No lyrics found.
07.02.2016 05:56:50 [DEBUG] no lyrics found
The problems are caused by the websites changing in structure. That's why I originally added a unit tests for all default providers, but I don't have the infrastructure to run them on a regular basis.
The patterns will have to be corrected.
Does anyone have an 'optimized' list of providers which should & should not be used and the priority order? I'm wondering if I'd get better/faster results than just using the default list.
Thanks for the updated genius version. Is there any way to stop it saying "song name's lyrics" at the top?
name: "Genius"
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [replace, "!!!", "chk-chik-chick"] # !!! (Chk Chk Chk) artist exception
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
# ^ Strip F./ft/eat/uring + everything after
- [regex, '\s&(?=\s)', " and"] # Replace " &" with " and"
## ^ Currently superfluous (for ARTIST) bc plugin preemptively replaces "&" with "and"
### ^ But still necessary for <title> "&" replacement
- [regex, '\.+|,+|(\W+(?=$))|(^\W+)', ""] # Strip "." + "," + beginning/end of string non-word chars
- [regex, "'", ""] # Separate expression bc of annoying way YAML escapes '
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
# ^ Replace medial non-alphanumeric char(s) with single "-" e.g., f**k > f-k
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
# ^ Clean up any remaining successive non-alphanumeric chars before strip_nonascii
## ^ Long & stupid bc couldn't figure out YAML-friendly non-capturing "(?:...)"
### ^ EZ version: [regex, '\W+(?:\W)(?<!$)', " "]
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "http://genius.com/{artist}-{title}-lyrics"
pattern: ['<div\s+class="song_body-lyrics"[^>]*?>[\s\S]*?<p>(?<lyrics>[\s\S]*?)</p>', s]
post-filters:
- strip_html
- clean_spaces
- utf8_encode
@LostFuzz- thanks for making the attempt to get rid of downloading the song title at the top of the downloaded lyrics. I have to report that there's good news and bad news.
The good news is that the song title is definitely gone when downloading the lyrics. The bad news is that the first line of the lyrics is also gone.
My regex is even less than yours otherwise I would make an attempt at correcting this. I'm wondering if you can figure out how to fix it?
Thanks.
lol anyways i've edited my post above it should be fixedLooking much better now. Of the 60 tracks I just did a lyrics search on, only one returned with the title still there. Not a problem as one is much easier to edit than 60.
A-Z Lyrics doesn't seem to work for me anymore. Can anyone else confirm?
name: A-Z Lyrics Universe
variables:
artist:
type: artist
filters:
- lowercase
- strip_nonascii
title:
type: title
filters: artist
headers:
User-Agent: 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0' # Firefox 30 Win x64 user agent
config:
url: "http://www.azlyrics.com/lyrics/{artist}/{title}.html"
pattern: ['<!-- Usage of azlyrics.com.*?-->(?<lyrics>.+?)</div>', s]
post-filters:
- strip_html
- trim
- utf8_encode
looks like they changed the page source, so the plugin can't find the lyrics. You can try the below and see if it works again.
@quick_wango;
Thanks for offering this great plugin!
Just a suggestion. Maybe you could consider, as you said you can't maintain this plugin any longer, recompiling it so that no provider is preloaded and every provider should be supplied through a yml file in provider folder by the user. The benefits would be:
- People can only load providers they want to use (currently too many unused preloaded providers)
- Easy to fix when one of the preloaded provides no longer works (currently too many broken preloaded providers)
- Easy to find help when a fix is needed because the helper would only need to fix the problem provider
- Hence no need to find a dedicated dev to keep this working
Can someone please fix google nonsense that appears when getting lyrics from genius.com for every song that l own:
(http://i.imgur.com/dUqAsFi.jpg)
http://genius.com/Vince-staples-dopeman-lyrics
Thank you!
name: "Letras de músicas"
variables:
artist:
type: artist
filters:
- lowercase
- strip_diacritics
- [replace, '.', '']
- [strip_nonascii, -]
title:
type: title
filters: artist
config:
url: "https://letras.mus.br/{artist}/{title}/"
pattern: ['<article>(?<lyrics>.+?)</article>', s]
post-filters:
- [replace, '</p>', '<br><br>']
- br2nl
- strip_html
- clean_spaces
- utf8_encode
Try adding the following line to the end of the code for genius.com:@redwing- should that line go at the -very- end of the code (under 'post-filters') or at the end of the variables section?Code- [regex, 'googletag.*\);', "\n"]
at the -very- end of the code (under 'post-filters')
Thanks Moshi_at the -very- end of the code (under 'post-filters')
This worked for me.
Thanks redwing!
While the plugin's DLL goes in MB's plugin folder, the providers folder belongs in the AppData folder under the MB folder. So your folder structure should look like this:The plugin is in the correct path because MusicBee can find it.
\MusicBee
\Plugins
mb_LyricsReloaded.dll
\MusicBee
\AppData
\mb_LyricsReloaded
\Providers
*.yml
Hi, I have updated MusicBee to version 3.0.6067 and the plugin doesn't find the .yml files anymore. In the previous MusicBee version it worked perfectly. I wonder if I'm the only one with this problem. :'(you are the only person who has reported this so my guess is you have installed and are running the new musicbee version from a different location
I'm running MusicBee from Mozambique, is there something I can do to solve this issue?Hi, I have updated MusicBee to version 3.0.6067 and the plugin doesn't find the .yml files anymore. In the previous MusicBee version it worked perfectly. I wonder if I'm the only one with this problem. :'(you are the only person who has reported this so my guess is you have installed and are running the new musicbee version from a different location
location on your computer ie. you have two installed instances of musicbeeI'm running MusicBee from Mozambique, is there something I can do to resolve this issue?Hi, I have updated MusicBee to version 3.0.6067 and the plugin doesn't find the .yml files anymore. In the previous MusicBee version it worked perfectly. I wonder if I'm the only one with this problem. :'(you are the only person who has reported this so my guess is you have installed and are running the new musicbee version from a different location
Okay, I will completely uninstall MusicBee and then reinstall it again. I hope it works. Is there a way to save my current settings? Mostly regarding my UI changes.location on your computer ie. you have two installed instances of musicbeeI'm running MusicBee from Mozambique, is there something I can do to resolve this issue?Hi, I have updated MusicBee to version 3.0.6067 and the plugin doesn't find the .yml files anymore. In the previous MusicBee version it worked perfectly. I wonder if I'm the only one with this problem. :'(you are the only person who has reported this so my guess is you have installed and are running the new musicbee version from a different location
you dont need to reinstall. You just need to find the (new) location you are actually running musicbee from and configure the plugin in that directoryI think you are right, because I reinstalled MusicBee and plugin still doesn't work. But how can I find the (new) location?
Help> Support> Settings File shows the location of your running MB's AppData folder.Thanks, I followed your instructions. The location is fine. Then I checked the log file and found this:
Then go to the folder and find this plugin's folder within it.
Make sure the provider file is placed properly. Also check the log file (mb_LyricsReloaded.log) to see what happens when you search lyrics.
Looks like your yml file has an syntax error. Do you have just "filters" instead of "filters:" in line 7?This is what I have at line 7 and around it:
Make sure you have copied the content correctly from previous posts.
Working fine for me. Does it happen only to some specific songs?
What do you mean by that? How do you run the script?
I wouldn't recommend that. Sometimes that command fetches from the existing lyrics cache file instead of from the providers.
I am always using lyrics panel and either auto-embed by playing the track or use "Delete lyrics and redo search" command.
Probably that's an issue with how Mp3tag displays the field. You can verify the presence of line-breaks by copying and pasting the lyrics from the mp3tag tag info window to Notepad++.
I don't see any issue here with MB except that Mp3tag doesn't display the format correctly. Why don't you ask Mp3tag forum?
If you know how to fix the 'googletag.cmd.push...' randomly showing up or the '<!--/sse-->' please respond back!
If you know how to fix the 'googletag.cmd.push...' randomly showing up or the '<!--/sse-->' please respond back!
The solution is two pages back
http://getmusicbee.com/forum/index.php?topic=9994.msg117556#msg117556
- [regex, '\<\!--sse--\>', ""]
- [regex, '\<\!--\/sse--\>', ""]
I just found out about this plugin but its not working yet for me. I placed in in the plugins folder but I cannot configure it:
clicking configure does nothing in preferences -> plugins.
also: \AppData\Roaming\MusicBee\mb_LyricsReloaded\providers is empty.
Any help?
all i want is to use darklyrics
"\AppData\Roaming\MusicBee\mb_LyricsReloaded"Are you putting the .yml file here?
Sorry I wrote that wrong, i'm actually saving those .yml on the /providers/ folder. But the plugin fails to recognise them or smthing, it appears nothing on the log .txt, what should i do?"\AppData\Roaming\MusicBee\mb_LyricsReloaded"Are you putting the .yml file here?
If so, I think that's your problem. The .yml files go in a subfolder called 'providers'
\AppData\Roaming\MusicBee\mb_LyricsReloaded\providers
And ANSI should work as that's the way mine are encoded.
21/03/2017 10:19:45 [DEBUG] Lyrics request: - Jesu and Sun Kil Moon - Beautiful You - Jesu / Sun Kil Moon - Musixmatch
21/03/2017 10:19:45 [INFO] Musixmatch tries to load the lyrics...
21/03/2017 10:19:45 [DEBUG] The constructed URL: http://www.musixmatch.com/lyrics/jesu-and-sun-kil-moon/beautiful-you
21/03/2017 10:19:45 [DEBUG] Lyrics request: - Jesu and Sun Kil Moon - Beautiful You - Jesu / Sun Kil Moon - A-Z Lyrics Universe
21/03/2017 10:19:45 [INFO] A-Z Lyrics Universe tries to load the lyrics...
21/03/2017 10:19:45 [DEBUG] The constructed URL: http://www.azlyrics.com/lyrics/jesuandsunkilmoon/beautifulyou.html
21/03/2017 10:19:45 [DEBUG] Lyrics request: - Jesu and Sun Kil Moon - Beautiful You - Jesu / Sun Kil Moon - Rap Genius
21/03/2017 10:19:45 [INFO] Rap Genius tries to load the lyrics...
21/03/2017 10:19:45 [DEBUG] The constructed URL: http://rapgenius.com/jesu-and-sun-kil-moon-beautiful-you-lyrics
21/03/2017 10:19:45 [DEBUG] Lyrics request: - Jesu and Sun Kil Moon - Beautiful You - Jesu / Sun Kil Moon - MetroLyrics
21/03/2017 10:19:45 [INFO] MetroLyrics tries to load the lyrics...
21/03/2017 10:19:45 [DEBUG] The constructed URL: http://www.metrolyrics.com/beautiful-you-lyrics-jesu-and-sun-kil-moon.html
21/03/2017 10:19:45 [DEBUG] Lyrics request: - Jesu and Sun Kil Moon - Beautiful You - Jesu / Sun Kil Moon - LyricWiki
21/03/2017 10:19:45 [INFO] LyricWiki tries to load the lyrics...
21/03/2017 10:19:45 [DEBUG] The constructed URL: http://lyrics.wikia.com/Jesu_and_Sun_Kil_Moon:Beautiful_You
21/03/2017 10:20:29 [DEBUG] Lyrics request: - Jesu and Sun Kil Moon - Beautiful You - Jesu / Sun Kil Moon - Genius
21/03/2017 10:20:29 [INFO] Genius tries to load the lyrics...
21/03/2017 10:20:29 [DEBUG] The constructed URL: http://genius.com/jesu-and-sun-kil-moon-beautiful-you-lyrics
21/03/2017 10:20:29 [DEBUG] Lyrics request: - Jesu and Sun Kil Moon - Beautiful You - Jesu / Sun Kil Moon - Musixmatch
21/03/2017 10:20:29 [INFO] Musixmatch tries to load the lyrics...
21/03/2017 10:20:29 [DEBUG] The constructed URL: http://www.musixmatch.com/lyrics/jesu-and-sun-kil-moon/beautiful-you
21/03/2017 10:20:29 [DEBUG] Lyrics request: - Jesu and Sun Kil Moon - Beautiful You - Jesu / Sun Kil Moon - A-Z Lyrics Universe
21/03/2017 10:20:29 [INFO] A-Z Lyrics Universe tries to load the lyrics...
21/03/2017 10:20:29 [DEBUG] The constructed URL: http://www.azlyrics.com/lyrics/jesuandsunkilmoon/beautifulyou.html
21/03/2017 10:20:29 [DEBUG] Lyrics request: - Jesu and Sun Kil Moon - Beautiful You - Jesu / Sun Kil Moon - Rap Genius
21/03/2017 10:20:29 [INFO] Rap Genius tries to load the lyrics...
21/03/2017 10:20:29 [DEBUG] The constructed URL: http://rapgenius.com/jesu-and-sun-kil-moon-beautiful-you-lyrics
21/03/2017 10:20:29 [DEBUG] Lyrics request: - Jesu and Sun Kil Moon - Beautiful You - Jesu / Sun Kil Moon - MetroLyrics
21/03/2017 10:20:29 [INFO] MetroLyrics tries to load the lyrics...
21/03/2017 10:20:29 [DEBUG] The constructed URL: http://www.metrolyrics.com/beautiful-you-lyrics-jesu-and-sun-kil-moon.html
21/03/2017 10:20:29 [DEBUG] Lyrics request: - Jesu and Sun Kil Moon - Beautiful You - Jesu / Sun Kil Moon - LyricWiki
21/03/2017 10:20:29 [INFO] LyricWiki tries to load the lyrics...
21/03/2017 10:20:29 [DEBUG] The constructed URL: http://lyrics.wikia.com/Jesu_and_Sun_Kil_Moon:Beautiful_You
I can't seem to find it anywhere to add to my player.Preferences > Tags (2) > auto-tagging > lyirics > click on the three dots [...] where you can select and re-order the lyrics providers to use.
Am I missing something or just crazy? Any help would be much appreciated.
I can't seem to find it anywhere to add to my player.Preferences > Tags (2) > auto-tagging > lyirics > click on the three dots [...] where you can select and re-order the lyrics providers to use.
Am I missing something or just crazy? Any help would be much appreciated.
So I'm thinking about picking this up again, rewriting it from scratch for Linux support.Yes! Please do, i truly think this the most important plugin out there, it would be great to give it an update
So this would be a standalone binary (e.g. lyricsreloaded.exe) which would then be called by the MusicBee plugin.
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:
- strip_diacritics
- lowercase
- [replace, "!!!", "chk-chik-chick"]
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
- [regex, '\s&(?=\s)', " and"]
- [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, -]
config:
url: "http://genius.com/{artist}-{title}-lyrics"
pattern: ['<div\s+class="song_body-lyrics"[^>]*?>[\s\S]*?<p>(?<lyrics>[\s\S]*?)</p>', s]
post-filters:
- strip_html
- clean_spaces
- utf8_encode
- [regex, 'googletag.*\);', "\n"]
- [regex, "’", "'"]
name: "Musixmatch"
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [replace, "!!!", "artist-46206"] # !!! (Chk Chk Chk) artist exception
- [replace, "+/-", "p%m"] # +/- artist janky exception (step 1)
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
# ^ Strip F./ft/eat/uring + everything after
- [regex, '[’'']+', "%27"] # URL encode "'/’" bc MM is cool w/ dat shit
- [regex, '\s&\s(?=the)', " and "] # ONLY if succeeded by "the", replace " & " with " and "
## ^ Currently superfluous bc plugin preemptively replaces "&" with "and"
### ^ So MM will choke if <artist> contains "& (?!the)"
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
# ^ Replace medial non-alphanumeric char(s) with single "-" (except "'") e.g., M.I.A. > M-I-A.
- [regex, '\W+(?=$)', ""] # Strip end-of-string non-word chars
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
# ^ Clean up any remaining successive non-alphanumeric char(s) before strip_nonascii
## ^ Long & stupid bc couldn't figure out YAML-friendly non-capturing "(?:...)"
### EZ version: [regex, '\W+(?:\W)(?<!$)', " "]
- [strip_nonascii, -]
- [replace, "-27", "%27"] # Fix "'/’" URL encoding after strip_nonascii
- [regex, '(?<=^)p-m', "-"] # Janky replace for artist +/- after strip_nonascii (step 2)
title:
type: title
filters: # Not using identical artist filters due to different treatment of "&" in titles vs artist names
# Musixmatch strips "&" from <title> ALWAYS; from <artist> too, *unless* "& the", then replaced with "and"
## ^ see "&" treatment note above, under 'artist'
- strip_diacritics
- lowercase
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
# ^ Strip F./ft/eat/uring + everything after
- [regex, '[’'']+', "%27"] # URL encode "'/’" bc MM is cool w/ dat shit
- [regex, '(?<=[a-z0-9%])[^\sa-z0-9%]+(?=[a-z0-9%]+)', "-"]
# ^ Replace medial non-alphanumeric char(s) with single "-" (except "'") e.g., f**k > f-k
- [regex, '\W+(?=$)', ""] # Strip end-of-string non-word chars
- [regex, '((?<=\s)([^a-z0-9\s-])+(\s|\W)+)|((?<=\w)([^a-z0-9-])+(\s|\W)+)', " "]
# ^ Clean up any remaining successive non-alphanumeric char(s) before strip_nonascii
- [strip_nonascii, -]
- [replace, "-27", "%27"] # Fix "'/’" URL encoding after strip_nonascii
config:
url: "http://www.musixmatch.com/lyrics/{artist}/{title}"
pattern: ['<span\s+id="lyrics-html"[^>]*?>(?<lyrics>.*?)</span>', s]
post-filters:
- utf8_encode
13/04/2018 09:51:05 [DEBUG] Lyrics request: - Weezer - Tired Of Sex - Pinkerton - Musixmatch
13/04/2018 09:51:05 [INFO] Musixmatch tries to load the lyrics...
13/04/2018 09:51:05 [DEBUG] The constructed URL: http://www.musixmatch.com/lyrics/weezer/tired-of-sex
13/04/2018 09:51:05 [DEBUG] gzip compression detected
13/04/2018 09:51:05 [WARN] The pattern <span\s+id="lyrics-html"[^>]*?>(?<lyrics>.*?)</span> didn't match!
13/04/2018 09:51:05 [INFO] No lyrics found.
13/04/2018 09:51:05 [DEBUG] no lyrics found
15/04/2018 01:06:14 [DEBUG] Lyrics request: - Nas - One Love - Illmatic - Genius
15/04/2018 01:06:14 [INFO] Genius tries to load the lyrics...
15/04/2018 01:06:14 [DEBUG] The constructed URL: http://genius.com/nas-one-love-lyrics
15/04/2018 01:06:15 [DEBUG] gzip compression detected
15/04/2018 01:06:15 [DEBUG] lyrics found
15/04/2018 01:06:24 [DEBUG] Lyrics request: - Nas, Q-Tip - One Love - Illmatic - Genius
15/04/2018 01:06:24 [INFO] Genius tries to load the lyrics...
15/04/2018 01:06:24 [DEBUG] The constructed URL: http://genius.com/nas-q-tip-one-love-lyrics
15/04/2018 01:06:26 [DEBUG] Lyrics request: - Nas, Q-Tip - One Love - Illmatic - Genius
15/04/2018 01:06:26 [INFO] Genius tries to load the lyrics...
15/04/2018 01:06:26 [DEBUG] The constructed URL: http://genius.com/nas-q-tip-one-love-lyrics
Artist: Nas, Q-TipThis is exactly what I was referring to, hope it clear up the confusion. Though to me I'm not sure what's the different between this (supposedly display artist as I understand it) and the "first artist value that you see inside multiple artist splitter dialog" that you said was used for the artist value for search.
Album artist: Nas
15/04/2018 03:06:02 [ERROR] (Lin: 9, Col: 0, Chr: 178) - (Lin: 9, Col: 0, Chr: 178): While scanning for the next token, find character that cannot start any token.
15/04/2018 03:06:02 [ERROR] YamlDotNet.Core.SyntaxErrorException: (Lin: 9, Col: 0, Chr: 178) - (Lin: 9, Col: 0, Chr: 178): While scanning for the next token, find character that cannot start any token.
at YamlDotNet.Core.Scanner.FetchNextToken()
at YamlDotNet.Core.Scanner.FetchMoreTokens()
at YamlDotNet.Core.Scanner.InternalMoveNext()
at YamlDotNet.Core.Parser.GetCurrentToken()
at YamlDotNet.Core.Parser.ParseIndentlessSequenceEntry()
at YamlDotNet.Core.Parser.StateMachine()
at YamlDotNet.Core.Parser.MoveNext()
at YamlDotNet.Core.EventReader.Allow[T]()
at YamlDotNet.Core.EventReader.Expect[T]()
at YamlDotNet.RepresentationModel.YamlScalarNode..ctor(EventReader events, DocumentLoadingState state)
at YamlDotNet.RepresentationModel.YamlNode.ParseNode(EventReader events, DocumentLoadingState state)
at YamlDotNet.RepresentationModel.YamlSequenceNode..ctor(EventReader events, DocumentLoadingState state)
at YamlDotNet.RepresentationModel.YamlNode.ParseNode(EventReader events, DocumentLoadingState state)
at YamlDotNet.RepresentationModel.YamlMappingNode..ctor(EventReader events, DocumentLoadingState state)
at YamlDotNet.RepresentationModel.YamlNode.ParseNode(EventReader events, DocumentLoadingState state)
at YamlDotNet.RepresentationModel.YamlMappingNode..ctor(EventReader events, DocumentLoadingState state)
at YamlDotNet.RepresentationModel.YamlNode.ParseNode(EventReader events, DocumentLoadingState state)
at YamlDotNet.RepresentationModel.YamlMappingNode..ctor(EventReader events, DocumentLoadingState state)
at YamlDotNet.RepresentationModel.YamlNode.ParseNode(EventReader events, DocumentLoadingState state)
at YamlDotNet.RepresentationModel.YamlDocument..ctor(EventReader events)
at YamlDotNet.RepresentationModel.YamlStream.Load(TextReader input)
at CubeIsland.LyricsReloaded.Provider.ProviderManager.loadProvider(TextReader configReader)
name: "Genius"
variables:
artist:
type: artist
filters:
- strip_diacritics
- lowercase
- [replace, "!!!", "chk-chik-chick"]
- [regex, '(?=,).*',""]
- [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:
- strip_diacritics
- lowercase
- [replace, "!!!", "chk-chik-chick"]
- [regex, '(?<=\W|\s)+(feat.+|ft[\W\s]+|(f\.\s)).+', ""]
- [regex, '\s&(?=\s)', " and"]
- [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, -]
config:
url: "http://genius.com/{artist}-{title}-lyrics"
pattern: ['<div\s+class="song_body-lyrics"[^>]*?>[\s\S]*?<p>(?<lyrics>[\s\S]*?)</p>', s]
post-filters:
- strip_html
- clean_spaces
- utf8_encode
- [regex, 'googletag.*\);', "\n"]
- [regex, "’", "'"]
If you want to fix your tags in one shot, it's easy. Select tracks and run Tools> Tagging Tools> Search and replace command. Find "," for "Artist" Replace with";". Then those artist tags will be all separated to individual artist tags. And you won't need that code any longer.oh yes, this is brilliant. Thank you so much! All my problems are now solved and I couldn't be happier :)
Here's the updated code for Musixmatch.com.
If anyone's interested, let me know.
If anyone's interested, let me know.
Just wanted to say that any efforts you make to maintain this plugin are appreciated.There's a learning curve here, but I'm working.
Yes please! I'm willing to donate if it meets my expecs. :DNo need for that. :) Can't promise big changes in functionality, only a little clean-up.
You might as well get the "possibly dumb" questions first, haha.. Environment wise, I'm starting with MusicBee Portable (latest 3.2 patch), and no prior install of the original LyricsReloaded plugin. I added the updated plugin via MB's Add Plugin button and all went smoothly; in the Portable version, the log file ends up in (drive:)/MusicBee/Appdata/mb_LyricsReloaded.I did not change anything as far as the ordering. I don't know how that worked or was supposed to work or if it worked. I don't know how that would be measured and didn't see anything obvious that would indicate it was, which doesn't mean it wasn't there, just that I didn't see it because it wasn't obvious. Possibly the author manually ordered them based on his impression of what gave the best results. Don't know.
1. I read in the original version's documentation that the original ordering of the provider search list would be done automatically according to "best results" whe first installed--is that the case with the new version as well? If not, do you have any advice as to how to order the given list?
2. I don't auto-tag anything, so I'm adding lyrics from the Edit/Lyrics/Search Internet button; is this performing the same type of search I have set up in the Tags(2) prefs for the plugin?
3. I'm assuming that when lyrics are found after hitting the "Search Internet" button, they are coming from the first hit made on the ordered provider list; does the search option "hard stop" there unless the provider from the initial hit is unchecked from the list? I'm thinking of cases where "flaky" results turn up and you'd like to see what a different provider is offering for the same song.
4. For a future release, would it be possible to institute a maximum size option for the log file?
Thanks frankz! Initial impressions after an hour: "Sweet!" 8)Can't take much credit, but I'm glad it's doing what you want it to nonetheless.
Updated the code above to fix some punctuation marks in title.
Figured there was little interest since no one responded, so I just continued using it myself here.
One small change since above, I removed Metrolyrics since it didn't handle songs that don't have lyrics on that site very elegantly.
If you're interested, here it is:
https://mega.nz/#!QZlAWR6Z!PxMlZ3C7I1YBjekhteKf8R_2j9PPgWfr0KMQ--JJ6iw
Here are the VirusTotal results for the file:
https://www.virustotal.com/#/file/408bc01c787cc0a4005a3b77288ac2b93c0a55b16ee82035124e1442e9ab348b/details
(you can, of course, download the file and then upload it to VirusTotal.com yourself to verify)
Personally, I'd rename my current mb_LyricsReloaded.dll to something else and keep it for a while rather than overwrite it outright with this one. It's working flawlessly here on my system with my MB version, but I can't speak to every MB version on every system.
Make sure MB is completely closed and put this new mb_LyricsReloaded.dll wherever your current mb_LyricsReloaded.dll file currently resides. I believe the two places on desktop type installs are
/%ProgramFiles%/MusicBee/Plugins
-or-
/%APPDATA%/Roaming/MusicBee/Plugins
(not %APPDATA%/Roaming/MusicBee/mb_LyricsReloaded/. That's where the log file is.)
Don't know anything about the Windows Store version, so you're on your own there. It shouldn't be different than replacing any other plugin.
Make sure you only have one copy referenced in MB. The only problem I ever had with it was when I first put my version in the program files plugin folder while the original was in the roaming plugin folder. MB complained about the log being in use already and crashed. If you get this error, it likely means you already have the plugin running from somewhere else.
Consider the above version experimental and act accordingly.
My version of the plugin will filter out everything in Genius lyrics between 1 and 75 characters between a set of [], so that result is not coming from my version of the plugin. You're either using an old version or, if not, you've got an old Genius yml still selected as a source rather than the one built into the newest version of the plugin.thanks, i fix it uncheck "rapgenius" i got "rapgenius" and "genius" to select...
Maybe @redwing can concoct some regex to deal with the <!--sse--> tag showing up and I'll incorporate it. I can brute force it out of there by removing it specifically but I have a feeling he could provide something more artful that could deal with more contingencies for different tags.
I think I'm done with this plugin. I will remove all my posts in this thread not to confuse people.why? we love u
If you have any questions or requests, talk to frankz.
My version of the plugin will filter out everything in Genius lyrics between 1 and 75 characters between a set of []THIS!!! Well worth the wait for the update. Thanks frankz for updating this very useful plugin.
THIS!!! Well worth the wait for the update. Thanks frankz for updating this very useful plugin.Most of the heavy lifting was done by OP and redwing. I just kind of glued everything back together.
Can you tell me (us) what providers are now included in the dll? I'd like to clean up my old providers directory and get rid of the yml files that are no longer needed. I've already deleted genius.
Thanks.
Good info. Thanks.Here's the full code that's in the DLL. I don't know what's in the providers sub-directory but you can compare.
Is there any difference between your A-Z Lyrics Universe and the azlyrics.com YML in the providers sub-directory?
name: A-Z Lyrics Universe
variables:
artist:
type: artist
filters:
- lowercase
- strip_nonascii
title:
type: title
filters: artist
headers:
User-Agent: 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0' # Firefox 30 Win x64 user agent
config:
url: "http://www.azlyrics.com/lyrics/{artist}/{title}.html"
pattern: ['<!-- start of lyrics -->(?<lyrics>.+?)<!-- end of lyrics -->', s]
post-filters:
- strip_html
- trim
- utf8_encode
The only thing left in my providers sub-directory is metrolyrics.com. Any plans to incorporate it into the dll? I can provide the YML if needed. With that done, I can delete the entire sub-directory.I added metrolyrics from the thread but I wound up taking it back out for the release because it gave a lot of garbage data (coding and "Oops we don't seem to have lyrics for that" or something similar) when there were not lyrics there for a song. If I can figure out how to get around that I'll put it back in, but it seemed too buggy for a "cleaned up" version of the plugin.
I added metrolyrics from the thread but I wound up taking it back out for the release because it gave a lot of garbage data (coding and "Oops we don't seem to have lyrics for that" or something similar) when there were not lyrics there for a song. If I can figure out how to get around that I'll put it back in, but it seemed too buggy for a "cleaned up" version of the plugin.Great. It's now gone from my providers sub-directory.
the website genius start with RAPGENIUS for only hip hop lyrics...after this, they created genius.com with all type of songsTHIS!!! Well worth the wait for the update. Thanks frankz for updating this very useful plugin.Most of the heavy lifting was done by OP and redwing. I just kind of glued everything back together.
Can you tell me (us) what providers are now included in the dll? I'd like to clean up my old providers directory and get rid of the yml files that are no longer needed. I've already deleted genius.
Thanks.
Here are the current providers:
A-Z Lyrics Universe
Cušpajz
Genius
Letras de músicas
LyricWiki Gracenote
LyricWiki
(I asked above if these are now part of MB proper. If so, there's no need for them to be here and I can get rid of them)
Musixmatch_Asian
Musixmatch
Oldies Lyrics
Rap Genius
(Is this the same as Genius? If so, it can go, too.)
Smriti
Song Lyrics
Teksty
Urban Lyrics
Hindi Lyrics
If anyone is interested in more (too much?) detail about what's new, what's out, and what else changed, you can see my posts here (https://getmusicbee.com/forum/index.php?topic=9994.msg144719#msg144719) and here (https://getmusicbee.com/forum/index.php?topic=9994.msg144966#msg144966).
the website genius start with RAPGENIUS for only hip hop lyrics...after this, they created genius.com with all type of songs
u can delete rapgenius
solved it unchecking "rapgenius" i check only "genius"the website genius start with RAPGENIUS for only hip hop lyrics...after this, they created genius.com with all type of songs
u can delete rapgenius
OK, thanks for the info. If/when I update, it'll be gone.
Are you still getting the <!--sse--> tag with the embedded Genius provider in the updated plug-in, or is that solved?
So what I suspect turns out to be true; and I indeed needs that line to ignore any character after the coma in Artist tag when filtering to reconstruct url.where is the "The Musixmatch_updated" can you show me the code?please thanks
I have a file formatted as:
Artist: Nas, Q-Tip
Album artist: Nas
When I remove out ", Q-Tip" part from Artist tag, lyrics loaded normally. Once I put it back and redid search for lyrics -> no lyrics found (the link http://genius.com/nas-q-tip-one-love-lyrics doesn't exist).Code15/04/2018 01:06:14 [DEBUG] Lyrics request: - Nas - One Love - Illmatic - Genius
15/04/2018 01:06:14 [INFO] Genius tries to load the lyrics...
15/04/2018 01:06:14 [DEBUG] The constructed URL: http://genius.com/nas-one-love-lyrics
15/04/2018 01:06:15 [DEBUG] gzip compression detected
15/04/2018 01:06:15 [DEBUG] lyrics found
15/04/2018 01:06:24 [DEBUG] Lyrics request: - Nas, Q-Tip - One Love - Illmatic - Genius
15/04/2018 01:06:24 [INFO] Genius tries to load the lyrics...
15/04/2018 01:06:24 [DEBUG] The constructed URL: http://genius.com/nas-q-tip-one-love-lyrics
15/04/2018 01:06:26 [DEBUG] Lyrics request: - Nas, Q-Tip - One Love - Illmatic - Genius
15/04/2018 01:06:26 [INFO] Genius tries to load the lyrics...
15/04/2018 01:06:26 [DEBUG] The constructed URL: http://genius.com/nas-q-tip-one-love-lyrics
To test whether the plugin use Artist or Album Artist for searching. I retagged the file as below
Artist: (left blank)
Album artist: Nas
->Nothing appears in the lyrics box (even the no lyrics found line) + nothing appears when I clicked redo search either.
One last bit to make sure, I set the file like this:
Artist: Nas
Album artist: (left blank)
-> Everything works perfectly, lyrics found.
==> To sum up, the plugin takes Artist tag and don't care/can't take info from Album Artist tag.
Oh and my bad overlooking emmaoninternet's contribution. I'll edit my post.
The Musixmatch_updated works great, though it suffers the same issue with multiple artist tracks. Regardless, thank you for fixing it.
Report a problemWriter(s): Paul Westerberg, Chris Mars, Tommy Stinson
No translations available
One of the providers I'm using is fetching lyrics with unwanted text at the end of the string, for example:That looks like Musixmatch.QuoteReport a problemWriter(s): Paul Westerberg, Chris Mars, Tommy Stinson
No translations available
Has anyone else experienced this?
would love to have lyricsraag.com (https://lyricsraag.com/) as one of the lyrics tagging site
Get hindi songs lyrics on these sites
http://www.lyricsbell.com/
http://www.lyricsoff.com/
http://www.lyricsbull.com/