beetbox / beets

music library manager and MusicBrainz tagger
http://beets.io/
MIT License
12.6k stars 1.8k forks source link

Lyrics Plugin Doesn't Work Properly #2161

Closed MetaIronic closed 7 years ago

MetaIronic commented 7 years ago

When using the lyrics plugin I seem unable to get lyrics from genius or musixmatch, despite the documentation page claiming it can. An example of such a song is Sick and Tired - Denzel Curry. This song has complete lyrics on both genius and musixmatch yet when I run "beet lyrics Denzel Curry Sick and Tired" I get the result "lyrics: lyrics not found: Denzel Curry - Imperial - Sick And Tired". This is deeply vexing as I downloaded beets due to the fact it would solve my music lyrics problem in what seemed an elegant manner, with added tag checking benefits.

I have also tried enabling the custom google search by adding an api key. This has the same result as above

I am on Windows 8.1 Running python 2.7.7 with beets 1.3.18

These are my config.yaml options excluding the library and directory

plugins: embedart fetchart lyrics
art_filename: albumcover

import:
    copy: no

lyrics:
    sources: google lyricwiki lyrics.com musixmatch genius

embedart:
    ifempty: yes

fetchart:
    cautious: yes
    minwidth: 480
    sources: coverart itunes amazon albumart google
sampsyo commented 7 years ago

As suggested in the issue template, can you please include the output of a verbose run (i.e., beet -vv lyrics)?

MetaIronic commented 7 years ago

Sorry I misread that section.

Thank you for the prompt response [with redacted config and data paths]

plugin paths: Sending event: pluginload library database: C:\Users\Luis\Documents\mystuff\beets\library.yaml library directory: C:\Users\Luis\Music Sending event: library_opened lyrics: google lyrics backend error: accessNotConfigured lyrics: lyrics not found: Denzel Curry - Imperial - Sick And Tired Sending event: cli_exit

sampsyo commented 7 years ago

Hmm, it looks like this search is striking out on each source for different reasons:

MetaIronic commented 7 years ago

I have set up a google api key as detailed on the lyrics plugin doc (http://beets.readthedocs.io/en/v1.3.17/plugins/lyrics.html)

Here are the lyrics https://www.musixmatch.com/lyrics/Denzel-Curry/Sick-And-Tired

sampsyo commented 7 years ago

OK, cool—did you enter the key and custom search engine ID into your config, and did that change anything in the verbose output?

Here's the weirdest part: I seem to be able to fetch those lyrics from Musixmatch just fine. Here's what I see after setting up a track to look like that one:

$ beet -vv lyrics -f denzel curry
[snip]
Sending event: library_opened
lyrics: failed to fetch: http://lyrics.wikia.com/Denzel_Curry:Sick_And_Tired (404)
lyrics: got lyrics from backend: MusiXmatch
lyrics: fetched lyrics: Denzel Curry - Imperial - Sick And Tired
Sending event: database_change
Sending event: cli_exit
MetaIronic commented 7 years ago

Ill try adding the custom id. Which ID should this be?

sampsyo commented 7 years ago

Sorry, I'm not the right person to ask about interacting with Google—you'll need to sort that out on your own.

I'm suspicious about why your version isn't even attempting to use LyricsWiki at all, though. Can you try removing google from your sources and seeing what changes?

MetaIronic commented 7 years ago

Sorry I had removed lyrics wiki upon recommendation by the aforementioned documentation when using the custom beets search.

sampsyo commented 7 years ago

Ah, OK. FWIW, it helps us developers to know exactly what config went with what output from beets.

Maybe it's worth trying a run with only musixmatch enabled?

MetaIronic commented 7 years ago

My current config.

plugins: embedart fetchart lyrics
art_filename: albumcover

import:
    copy: no

lyrics:
    sources: lyricwiki lyrics.com musixmatch
    google_API_key: [snip]

embedart:
    ifempty: yes

fetchart:
    cautious: yes
    minwidth: 480
    sources: coverart itunes amazon albumart google

The Resulting verbose output

C:\Python27\Scripts>beet -vv lyrics denzel curry sick and tired
[snip]
plugin paths:
Sending event: pluginload
[snip]
Sending event: library_opened
lyrics: failed to fetch: http://lyrics.wikia.com/Denzel_Curry:Sick_And_Tired (40
4)
lyrics: lyrics not found: Denzel Curry - Imperial - Sick And Tired
Sending event: cli_exit
MetaIronic commented 7 years ago

No avail with just musixmatch in sources either

sampsyo commented 7 years ago

That's really strange. Any chance you could try the latest source to see if we've fixed something recently? There are instructions in the FAQ.

MetaIronic commented 7 years ago

Also would it be possible to see the lyrics config you were able to access those lyrics with?

MetaIronic commented 7 years ago

No, updating to the latest version via the tarball did not help

MetaIronic commented 7 years ago

I tried adding the custom search URL ID that lyrics plugin purports to use and it is apparently a 403 error

sampsyo commented 7 years ago

Hmm… did you get the latest release (1.3.19) or the latest git source (1.4.0, in development)?

That was actually with a completely blank configuration; just the defaults.