jacquesh / foo_openlyrics

An open-source lyric display panel for foobar2000
MIT License
450 stars 26 forks source link

Feature request: Ability to search for lyrics from track context menu #58

Closed rk-kontur closed 3 years ago

rk-kontur commented 3 years ago

Hi Jacques,

I just found your foobar component openlyrics and must say: I am very impressed. Keep up the excellent work, plz!!

The plugin seems very comprehensible, there is just one thing I miss: there is no way to add a shortcut enabling users to start a search. This would be especially useful for batch processing a big numer of files unattendedly. Is there a chance to implement this?

For what its worth: I just donated two books on your buymeacoffee site. :)

Best to you and this great project!!!

jacquesh commented 3 years ago

I'm glad you find it helpful, and your support is much appreciated!

For supporting batch lyric download: In what way would it be helpful to download many lyrics at once in a batch? They wouldn't be shown until you played the actual track and they'd be automatically searched/retrieved at that point anyway.

rk-kontur commented 3 years ago

Hey Jacques, thanks for getting back. My setup is: large library in foobar (mostly lossless) and several lossy libraries on altogether 5 android devices. These lossy libraries change a lot. After having used foobar mobile for a while, I switched to Musicolet, because

  1. this player can display lyrics
  2. it is one of the very few programs that work completely well without any internet connection
  3. in general, I prefer programs to not make use of the internet unless explicitly needed / wanted by me and then I always go for software that lets me decide in which way I expose myself to the digital world

I keep my files well tagged and have decided on going the tag based lyrics route as this makes it far easier handling the main and lossy libraries while still having all tag info in one place.

Apart from this more organisational aspect: lyrics for me sometimes take quite a while to be downloaded. This is another reason why I would very much prefer to do the lyrics searching unattendedly. Inside foobar, I would set up a filter (CUI) to see which files do not yet have lyrics and batch run openlyrics on them.

jacquesh commented 3 years ago

Just to summarise and check that I understand correctly: You use another media player (Musicolet) doesn't support retrieving lyrics and you want to use openlyrics as a way to quickly attach lyrics to many files such that they can be displayed in Musicolet. Is that accurate?

If so then I might consider it, but to be honest it seems unlikely that I'd add it in the near future. I'm not trying to make a general-purpose lyric-scraping engine, I just want to see some lyrics inside foobar >_<

rk-kontur commented 3 years ago

I understand the main purpose of you component. I was just asking if there was any way to use it like it was needed for my purpose. All that is needed, really would be exposing the command to execute inside the shortcut setup menu, just like view->openlyrics panel.

foobar is my main player. I use it for everything: tagging, replaygain and moving stuff to the right place. In general: I make sure the files are in proper order, including lyrics tags. Your plugin works great when it comes to fetching lyrics and displaying them. Unfortunately, every time it searches the internet, I wait between 5 and 10 seconds until the servers have been queried. This makes it a very slow process to make sure all files have lyrics as every file would need to be played for at least 10 seconds.

With the mobile music players I prefer to remain online (as with all apps that do not directly need internet such as browser or mail), that is why I used foobar and (due to a lack of features) I currently use Musicolet. The scenario here is pretty straightforward: I convert the lossless files to aac, preserving all tags and copying folder art, then I copy the lossy library to the device.

So, the ideal scenario would be that the main library in foobar would have all the lyrics already properly tagged as then I would never be filling the mobile device with any tracks that does not contain lyrics.

jacquesh commented 3 years ago

Ok fair. I can add a context-menu item to download lyrics for non-playing tracks (as LSP3 does). That would let you kick off a batch retrieval for many lyrics and then leave it to do its thing. Then it'd give you a progress bar and say "we've done 12/25 tracks, current track is ArtistName - TrackTitle" or something.

Two things to note though:

  1. The download for each track would not be any faster than the usual download though. Sure it'd be much faster than leaving the entire playlist to play (in which case each track would take several minutes rather than 10 seconds) but it would obviously take at least as long as each download does serially. Probably a bit longer since I'd want to space it out a little and avoid hammering servers when asked to download many lyrics at once (so make it ensure that it doesn't move faster than 1 track every 10 or 15 seconds or something, I dunno).
  2. This would be following the same process as the existing auto-search (so no ability to modify search params for each track, it searches sources in the order you configured and saves the first result it finds if its new, etc).

Would that cover your use-case?

rk-kontur commented 3 years ago

That sounds absolutely fantastic! I am fine with a delay for the servers, the main thing is to not have to do all this by hand clicking tracks I do - at that moment - not want to hear. Also, the search parameters need not be altered. So essentially: YES, that would very nicely cover my use case.

THANK YOU!

SpamReceiver commented 3 years ago

If possible, make this new context menu entry work for the "Album View" as well as the "Playlist View". Other views to consider?

If possible, make it work for single selections as well as for multiple selections, please.

Reapor-Yurnero commented 3 years ago

@jacquesh I noticed that this is closed but for some reason i can't find the interface for bulk search. Could you please give me a pointer to this?

nvm I noticed that this has not yet been released.

rk-kontur commented 3 years ago

Hey Jacques,

THANKS so much for addressing my request. I was on holiday when you released it and the mail notification was washed away during my absence. Only now I realised the update was out.

GREAT. Thanks again.

But I have the same problem as Reapor-Yurnero: I cannot find any bulk-search option. I looked everywhere in context menu, otpions and also in the context submenu of options to make sure I do not oversee anything.

Did we miss something nonetheles?

rk-kontur commented 3 years ago

EDIT: HECK. Found it "Search for lyrics" on context menu when more than one file is selected.

I don't know for the life of me why I did not find it before ... THANKS

One issue, I found: For me, when bulk searching, it seems that foobar sort of gets very lagging when changing playback to a different file. It takes about 2-3 seconds when switching to a different fil. This is just a minor thing but I just wondered ...

jacquesh commented 3 years ago

@rk-kontur It should show up when only one file is selected as well :)

What do you mean by "sort of gets very lagging?" I know the progress bar doesn't animate smoothly (I'm not sure why, but tbh I wasn't too fussed at the time, I'd like to fix that at some point but eh) and there is intentionally a several-second-long gap between searches for files, but I don't get any actual slowdown (or even a jump in the amount of work being done) on my end. A gif or something of what you're seeing would be useful.

Please create a new issue for that though. That would be a bug, whereas this ticket is a request for a feature :)