- Where to place the Zipped files? In a sub-directory under MB\Plugins? I placed the three files individually in the Plugins directory.You unzip the archive and put all three individual files in Plugins folder (so mb_Beenius.dll, Topten.JsonKit.dll and beenius.conf (optional) are in Plugins folder).
- Upon launching MB, I got this popup, which isn't very helpfulI'll look into fixing this popup in the next possible updates, dunno why does it show up every time you open Plugins, for now I recommend to ignore this thing and proceed.
- How to invoke it, especially if the Lyrics Reloaded (Updated) plugin is installed?You should enable a lyrics provider in Tags (2) section of Preferences (you'll see Genius via Beenius not to mix mine with any other custom providers).
- I selected a few files that had no lyrics > auto-tag by track > update missing lyrics and got nothing.There shouldn't be any feedback because you will see it every single time it tries to search for lyrics, it's a hella headache if you have more than a dozen tracks. No results = no lyrics, it's that simple. There are cases when there are lyrics available in the source but the author or something else does not match. You'll have to manually fix these entries because 80% of results in Genius are community-supported and inconsistend. For example, you can see album UNLOCKED from Denzel Curry and you'll see that the author is "Denzel Curry & Kenny Beats". For sure, you'll have to update your entry in MusicBee to suffice this entry and only then it'll match. I had many issues with these features cuz the track might have a dozen of these but in Genius it will only include the album author. MusicBee passes track artist (not the album artist) which includes all the features, 0.0.2 update brings the option to split these out (I have edited the track artists in my audio library to have format like A & B & C so the plugin splits out the "& B & C" part and searches only by A and the track title.
- There should be some feedback from the plugin that it's searching.
Furthermore, I can't recommend this to anyone, especially those who are using the Lyrics Reloaded (Updated) plugin, since I have no way of knowing if it even works.It was made only because the latest version of Lyrics Reloaded (Updated) didn't work. You have an option to proceed to mess with regexes, this is the alternative that requires any basic understanding of how MusicBee plugins work. If you were able to use Lyrics Reloaded, you won't have any issues with mine.
1. Add more and very basic documentation, even when redundant with MusicBee. You're familiar with how MusicBee works since you were able to make the plugin, and you designed it according to MusicBee's original specification. So step them through the process of copying the two files the the plugins folder, opening musicbee, going to preferences -> plugins -> enable Beeniuus. Then it should be an option in preferences -> Tags(2) -> lyrics drop-down.Added this to https://github.com/slonopot/Beenius, thanks
Also, I'm not sure if other lyric plugins need to be disabled, but lyrics-reloaded should be disabled. With them both enabled, lyrics-reloaded just doesn't seem to work, but benius is fine. (I wouldn't be surprised if it's because of how hacky lyrics-reloaded gets so that it can import those config files and pretend they are providers.)MusicBee passes the data to plugins in the user-managed configurable order until the first hit. If you use LyricsReloaded, you'll have Genius and Genius via Beenius in your settings. Next, when the search is invoked, MusicBee will invoke all the providers sequentially until any valid result. You can configure multiple sources to be requested in the desired order.
2. To get rid of that popup window about loading your plugin,, I think you maybe need to implement the ReceiveNotification() function since your plugin is configured to receive startup notifications, and while I'm not sure, it seems like MusicBee might be creating that popup since nothing handled it. If I'm 100% wrong I am sorry. Haven't looked into it much.I'll try if it'll need additional updates, the basic idea was to quickly make something that works and fill my library with lyrics. There's not much documentation to the APIs anyways.
3. Highly recommend adding a logger. They are incredibly helpful for plugins, especially if people are having issues, e.g. getting results, your config file settings or whatever. Especially since it's a new plugin, people cab also refer to it to help you.It's too simple to have any errors that aren't users. Genius might revoke the API key I've borrowed from their Android app and that's it. All the other issues are mismatches in the user library and Genius databases.
There were actually a few more things I preferred to ask about, but this is getting long and it seems most important to ask about your use of your client-side auth using your token with your token insecurely used by the plugin and also it being stored in the source code repo. Kinda only getting away with it now since the plugin isn’t getting used much,-------. But it is in your public repo.I'll look into requests if I'll see them in the first place. I've made this plugin for my own purpose and just wanted to share for the community to have an extra chance to mitigate mental damage brought by fixing the regexes in Lyrics Reloaded.
Agreed. LyricsReloaded as a downloadable plugin doesn't actually work. Users are required to find the forum thread and look through the latest posts to try to piece together the latest version of a yaml file and manually place it in the directory, and every minor change causes it to break. Additionally, almost all of the providers that are placed in the list don't work and can't be deleted. Only people on the LyricsReloaded forum topic are used to this idea as a workable solution, but as a downloadable plugin it's ridiculous.Furthermore, I can't recommend this to anyone, especially those who are using the Lyrics Reloaded (Updated) plugin, since I have no way of knowing if it even works.It was made only because the latest version of Lyrics Reloaded (Updated) didn't work. You have an option to proceed to mess with regexes, this is the alternative that requires any basic understanding of how MusicBee plugins work. If you were able to use Lyrics Reloaded, you won't have any issues with mine.
Added this to https://github.com/slonopot/Beenius, thanksSure. Is it possible to add that as a readme to the plugin page?
MusicBee passes the data to plugins in the user-managed configurable order until the first hit. If you use LyricsReloaded, you'll have Genius and Genius via Beenius in your settings. Next, when the search is invoked, MusicBee will invoke all the providers sequentially until any valid result. You can configure multiple sources to be requested in the desired order.That's not what occurs in my testing.
Yeah I know, hence my caveat about really not being sure. But a quick copy-paste of ReceiveNotification() from LyricsReloaded and some minor editing might knock it out quickly.2. To get rid of that popup window about loading your plugin,, I think you maybe need to implement the ReceiveNotification() function since your plugin is configured to receive startup notifications, and while I'm not sure, it seems like MusicBee might be creating that popup since nothing handled it. If I'm 100% wrong I am sorry. Haven't looked into it much.I'll try if it'll need additional updates, the basic idea was to quickly make something that works and fill my library with lyrics. There's not much documentation to the APIs anyways.
Come on now. Your plugin code may be simple, but MusicBee is not, and don't pretend it is guaranteed to be 100% bug free, especially with the proprietary allowedDistance code. If it fails for any reason, be it an application update, an unexpected input string, the Genius server being down, having a log that just outputs some information would be extremely helpful. Additionally, just knowing what it's searching for using the Beenius config would also be nice to have, especially for those really willing to tweak that config file.3. Highly recommend adding a logger. They are incredibly helpful for plugins, especially if people are having issues, e.g. getting results, your config file settings or whatever. Especially since it's a new plugin, people cab also refer to it to help you.It's too simple to have any errors that aren't users. Genius might revoke the API key I've borrowed from their Android app and that's it. All the other issues are mismatches in the user library and Genius databases.
There were actually a few more things I preferred to ask about, but this is getting long and it seems most important to ask about your use of your client-side auth using your token with your token insecurely used by the plugin and also it being stored in the source code repo. Kinda only getting away with it now since the plugin isn’t getting used much,-------. But it is in your public repo.I'll look into requests if I'll see them in the first place. I've made this plugin for my own purpose and just wanted to share for the community to have an extra chance to mitigate mental damage brought by fixing the regexes in Lyrics Reloaded.
Again, the API key is a public-private anonymous one that you can easily find in the Genius Android app. It's not mine, I don't care, I'll probably move it into config anyways since it could be eventually revoked.
Sure. Is it possible to add that as a readme to the plugin page?
That's not what occurs in my testing.It's strange indeed, I'll test it myself later and see if I can reproduce the behaviour. For now, I've made sure that Beenius doesn't work if I untick Genius via Beenius. I've deleted Lyrics Reloaded once made sure it doesn't work, will include it in future tests and see.
If both plugins are enabled, LyricsReloaded will only work until MusicBee is restarted, and for some reason it tries to load Genius via Beenius but fails. But after a restart, LyricsReloaded will no longer search. And even if the Genius via Beenius provider is unselected, Beenius is still used for some reason.
There's no Beenius log, so I don't know what's going on there.
Come on now. Your plugin code may be simple, but MusicBee is not, and don't pretend it is guaranteed to be 100% bug free, especially with the proprietary allowedDistance code. If it fails for any reason, be it an application update, an unexpected input string, the Genius server being down, having a log that just outputs some information would be extremely helpful. Additionally, just knowing what it's searching for using the Beenius config would also be nice to have, especially for those really willing to tweak that config file.I'll consider this a request and won't argue.
Ah, I didn't realize there was an anonymous one like that, my apologies. If at all configurable, probably a good idea. I would get my own token for this plugin.GeniusClient.cs -> private string GeniusAnonymousAndroidToken (if you've read through code ofc).
Found out I can actually add Musixmatch alongside Genius, added a poll.Bear in mind that with the Free API you can retrieve only 30% of the lyrics. You also have a daily API call limit. Anyway it would be a great idea!
Found out I can actually add Musixmatch alongside Genius, added a poll.Bear in mind that with the Free API you can retrieve only 30% of the lyrics. You also have a daily API call limit. Anyway it would be a great idea!
There's, again, an Android app with private API which has little protection and zero limits. I've already reversed everything they had done there, I think I'll extend Beenius with it later it if there's a demand.Looks cool! :-*
@slonopot- I appreciate the time you put into address all my questions/observations. I have tried the plugin again and tested with the same tracks I initially tested with. One track out of seven returned lyrics. I uninstalled your plugin and reactivated Lyrics Reloaded (Updated) and got seven out of seven.I might try and explain why your exact tracks couldn't be found if I'll have a list of artists and titles.
Thanks for trying.
I might try and explain why your exact tracks couldn't be found if I'll have a list of artists and titles.Is your plugin also looking at <Album>? If so, that may be the reason as the tracks I'm testing with are from a Paul McCartney live bootleg. I assume if it were only looking are <Artist> and <Title> It would come up with lyrics.
It does not look at Album, it only searches with track title and artistI might try and explain why your exact tracks couldn't be found if I'll have a list of artists and titles.Is your plugin also looking at <Album>? If so, that may be the reason as the tracks I'm testing with are from a Paul McCartney live bootleg. I assume if it were only looking are <Artist> and <Title> It would come up with lyrics.
Again I appreciate you taking the time to see if my "sample" tracks worked with your plugin.@phred Thanks for submitting the 7 edge-cases. They were actually helpful, but trying hundreds of artists over hundreds of songs is much more helpful for actually testing a lyrics plugin.
Supporting it for a while is fine, but as a moderator, it might be better to support longer-term solutions.My "job" as a moderator has nothing to do with supporting, or not supporting, any solutions. All comments I make are mine alone. I vocalize support for what I like and works for me. And I will also vocalize my feelings for things within MB that don't work.
I think the main threat is Genius pulling it's support, but that's much less a threat than Genius simply... changing its URL.
My "job" as a moderator has nothing to do with supporting, or not supporting, any solutions. All comments I make are mine alone. I vocalize support for what I like and works for me. And I will also vocalize my feelings for things within MB that don't work.
As a fellow user of MB, I would like to suggest to you that you stop "bashing" plugins that you don't like. If you're going to be critical of someone else's work, you're free to come up with a better solution. But don't start posting that "longer-term solutions" are better unless you're able to create that longer-term solution yourself.
Thanks for this, I think.
I wanted to give this a try, but you really need to provide more information. There should have some instructions as to how to install and use.
(...)
At this point I have uninstalled it from MB and deleted the files I copied to MB's plugin directory.
Furthermore, I can't recommend this to anyone, especially those who are using the Lyrics Reloaded (Updated) plugin, since I have no way of knowing if it even works.
In case with my plugin it's not really a threat, Genius will have to either discontinue their Android app completely or limit APIs (which will be then overriden with using proper user authorization in the plugin).
You were, honestly, a jerk, and someone who sounds like your opinion is so important it makes or breaks new plugins. Hopefully it's clear you don't.Please explain how my opinion makes or breaks new plugins? And while I can take your name calling, I suggest you don't do it with others. This is quite a civil forum and name calling will not be tolerated.
Edit: In terms of your weird accusations, see my other posts. You're a moderator that not only doesn't take it seriously, you're actively harmful.Again, show me where I'm not taking something seriously and being harmful.
I personally do not see MusixMatch as a huge need. I am an editor on Genius and believe that their platform is much more through and advanced compared to MM; most of the time MM is just Genius copied while removing the [Chorus] tags.
LyricReloaded's way ever gets tanked by Genius
I'm assuming column B is Lyrics Reloaded, yes?Well spotted phred.
Since the Beenius plugin by design searches ONLY the Genius database, and not the 3 additional ones used for the LyricsReloaded plugin in the test, doesn't that make a results comparison problematic?I did the comparison like this just out of personal interest.
@slonopot: Actually one last request: Please add the readme with installation and activation steps back to the plugin page, along with the Github link to "read more". That would ensure anyone can get Beenius working easily, and you could still maintain the full documentation and configuration options on Github.I've changed the description one more time to make sure even complete retards will end up reading up-to-date instructions on Github.
My two requests for the developer would be to create the log file inside the MusicBee Portable install directory to keep those completely portable, and to allow the option to show a source caption at the beginning of the lyrics display.Plugin is using environmental variables to get the /AppData/Roaming part and then appends /MusicBee/beenius.log. Steven should change the %APPDATA% variable for the portable process, you better ping him about this.
I was curious about how the Beenius plugin compared to the LyricsReloaded plugin.I've explaned earlier in this thread that it's inappropriate to compare LyricsReloaded to any other lyrics plugin out there, including mine. It's like comparing car and water because these both make sounds.
Could you please elaborate the "source caption" thing? An example would be nice.The option to put lyrics source at the top of the results; in the example below, "Source: Genius via Beenius" would replace "Source: Deezer."
The option to put lyrics source at the top of the results; in the example below, "Source: Genius via Beenius" would replace "Source: Deezer."
lol, thank you so much. I'll stop pestering you to deal with the peeps here. I'm also gone now.@slonopot: Actually one last request: Please add the readme with installation and activation steps back to the plugin page, along with the Github link to "read more". That would ensure anyone can get Beenius working easily, and you could still maintain the full documentation and configuration options on Github.I've changed the description one more time to make sure even complete retards will end up reading up-to-date instructions on Github.
@phred and @hiccup are literally trying to be QA testers. This forum is now officially hilarious.
Can you add some code to remove [Intro], [Verse], and stuff like that
result = Regex.Replace(result, @"\[.*\]\r?\n", string.Empty);
Is there any way I can make Beenius find the configuration file? I don't know what I''m doing wrong, but it never sees the configuration file, and uses the defaults.Where are you seeing the log file for Beenius you posted an image of? My Beenius stopped creating a separate log file since version 1.3.4. I use MusicBee 3.5.8606 Portable and Beenius 1.3.6.
Is there any way I can make Beenius find the configuration file? I don't know what I''m doing wrong, but it never sees the configuration file, and uses the defaults
My Beenius stopped creating a separate log file since version 1.3.4. I use MusicBee 3.5.8606 Portable and Beenius 1.3.6.
Have you confirmed that any changes you made to the defaults inside the beenius.conf file are still present? Please post a shot of its contents--it's possible that you may have accidently damaged the syntax in a way that makes it not visible to the dll.
MusicBee Portable 3.5.8606 P, installed to C:\MusicBee.
set BAT_DIR=%~dp0
set APPDATA=%BAT_DIR%\PortableData
start /d %BAT_DIR% MusicBee.exe
Is there a reason the plugin omits certain portions of lyrics?In the beenius.conf file, be sure this value is set to false:
For instance
https://genius.com/Blink-182-rich-lips-live-lyrics
The retrieved lyrics in musicbee will omit the stage banter at the end
"removeTags": false
Is there a reason the plugin omits certain portions of lyrics?
For instance
https://genius.com/Blink-182-rich-lips-live-lyrics
The retrieved lyrics in musicbee will omit the stage banter at the end