Querying LyricFind (Getting Wrong Lyrics) - Plex Employee Feedback Appreciated

Hello

There’s two tracks on the original-cast studio recording of Hamilton the Musical: “Cabinet Battle #1” and “Cabinet Battle #2”.

The LyricFind lyrics of “Cabinet Battle #2” are being presented for both of these tracks. I emailed LyricFind and they confirmed that the lyrics in their DB for “Cabinet Battle #1” is correct. So the issue is on the Plex side when querying LyricFind. Plex must be sending the wrong query parameters which results in the lyrics for “Cabinet Battle #2” to be received instead of “Cabinet Battle #1

I have tried renaming the track title to “Cabinet Battle 1” and refreshing, but the same incorrect lyrics are being pulled in. I really don’t know what else I can do with the metadata. I’ve confirmed the track and disc number are both correct, as well as the rest of the metadata.

Besides finding/building a specific LRC file for this track, I’m not sure if there are any other options available to me to resolve this.

Could this be a bug in Plex with respect to how it queries lyrics for songs that contain special characters? (in this case a hash)

Thanks

Also, if you have this album in your collection, and the lyrics for “Cabinet Battle #1” come through correctly, please let me know. I’d be interested to know how you have your album and tracks named.

I’ve attached some relevant logging from com.plexapp.agents.lyricfind.log which shows Plex is getting the wrong lyrics for “Cabinet Battle #1

I thought initially Plex was perhaps querying on a per-song basis (since it was getting this one particular song wrong,) but it does appear to be querying at an album level (which really makes more sense, traffic wise.) The result of the album query is returning the wrong song.

Perhaps a Plex employee can tell me what is being sent to LyricFind. Is it just the artist (Lin-Manuel Miranda) and the album name (Hamilton: An American Musical), or are there additional parameters being sent? I’ve gone from thinking that this is a LyricFind issue to a Plex issue, and now I’m leaning towards LyricFInd again.

If I can confirm the details of what is being sent to LyricFind, then I can contact them again about this particular case. Also, can a Plex employee tell me what API they’re calling when they’re querying LyricFind? This will be relevant when I contact them.

Or, if the lyrics results are being cached on the main Plex servers (since I know I’m not the only one with this album, and making multiple calls to LyricFind may not make sense,) can you refresh the lyrics… perhaps when this was last done there was no “Cabinet Battle #1”, and “Cabinet Battle #2” is being served up as the next best match.

Thanks

2017-03-07 17:08:01,504 (-f600470) : DEBUG (networking:166) - Requesting ‘http://127.0.0.1:32400/services/lyricfind/search?reqtype=default&searchtype=track&limit=100&output=json&artist=Lin-Manuel%20Miranda&album=Hamilton%3A%20An%20American%20Musical
2017-03-07 17:08:01,650 (-f600470) : DEBUG (threadkit:234) - Starting a parallel task set named MatchLyrics with 46 tasks
2017-03-07 17:08:01,730 (-d1d8470) : INFO (init:32) - Adding Lyric What’d I Miss to track What’d I Miss
2017-03-07 17:08:01,756 (-e2be470) : INFO (init:32) - Adding Lyric Aaron Burr, Sir to track Aaron Burr, Sir
2017-03-07 17:08:01,768 (-cbee470) : INFO (init:32) - Adding Lyric Cabinet Battle #2 to track Cabinet Battle #1
2017-03-07 17:08:01,829 (-d1d8470) : INFO (init:32) - Adding Lyric My Shot to track My Shot
2017-03-07 17:08:01,843 (-e8da470) : INFO (init:32) - Adding Lyric Alexander Hamilton to track Alexander Hamilton
2017-03-07 17:08:01,870 (-e2be470) : INFO (init:32) - Adding Lyric Take a Break to track Take a Break
2017-03-07 17:08:01,954 (-d1d8470) : INFO (init:32) - Adding Lyric Say No to This to track Say No to This
2017-03-07 17:08:01,990 (-e8da470) : INFO (init:32) - Adding Lyric The Schuyler Sisters to track The Schuyler Sisters
2017-03-07 17:08:01,998 (-cbee470) : INFO (init:32) - Adding Lyric The Story of Tonight to track The Story of Tonight
2017-03-07 17:08:02,061 (-e2be470) : INFO (init:32) - Adding Lyric The Room Where It Happens to track The Room Where It Happens
2017-03-07 17:08:02,072 (-d1d8470) : INFO (init:32) - Adding Lyric Farmer Refuted to track Farmer Refuted
2017-03-07 17:08:02,115 (-e8da470) : INFO (init:32) - Adding Lyric Schuyler Defeated to track Schuyler Defeated
2017-03-07 17:08:02,153 (-e2be470) : INFO (init:32) - Adding Lyric Cabinet Battle #2 to track Cabinet Battle #2
2017-03-07 17:08:02,165 (-cbee470) : INFO (init:32) - Adding Lyric You’ll Be Back to track You’ll Be Back
2017-03-07 17:08:02,214 (-d1d8470) : INFO (init:32) - Adding Lyric Right Hand Man to track Right Hand Man
2017-03-07 17:08:02,248 (-e2be470) : INFO (init:32) - Adding Lyric A Winter’s Ball to track A Winter’s Ball
2017-03-07 17:08:02,289 (-e8da470) : INFO (init:32) - Adding Lyric Washington On Your Side to track Washington On Your Side
2017-03-07 17:08:02,303 (-cbee470) : INFO (init:32) - Adding Lyric One Last Time to track One Last Time
2017-03-07 17:08:02,322 (-d1d8470) : INFO (init:32) - Adding Lyric Helpless to track Helpless
2017-03-07 17:08:02,335 (-e2be470) : INFO (init:32) - Adding Lyric I Know Him to track I Know Him
2017-03-07 17:08:02,372 (-e8da470) : INFO (init:32) - Adding Lyric Satisfied to track Satisfied
2017-03-07 17:08:02,393 (-cbee470) : INFO (init:32) - Adding Lyric The Adams Administration to track The Adams Administration
2017-03-07 17:08:02,415 (-e2be470) : INFO (init:32) - Adding Lyric We Know to track We Know
2017-03-07 17:08:02,469 (-cbee470) : INFO (init:32) - Adding Lyric Hurricane to track Hurricane
2017-03-07 17:08:02,514 (-e8da470) : INFO (init:32) - Adding Lyric Wait for It to track Wait for It
2017-03-07 17:08:02,545 (-e2be470) : INFO (init:32) - Adding Lyric Stay Alive to track Stay Alive
2017-03-07 17:08:02,559 (-d1d8470) : INFO (init:32) - Adding Lyric The Story of Tonight (Reprise) to track The Story of Tonight (Reprise)
2017-03-07 17:08:02,559 (-cbee470) : INFO (init:32) - Adding Lyric The Reynolds Pamphlet to track The Reynolds Pamphlet
2017-03-07 17:08:02,602 (-e2be470) : INFO (init:32) - Adding Lyric Burn to track Burn
2017-03-07 17:08:02,619 (-e8da470) : INFO (init:32) - Adding Lyric Ten Duel Commandments to track Ten Duel Commandments
2017-03-07 17:08:02,669 (-cbee470) : INFO (init:32) - Adding Lyric Blow Us All Away to track Blow Us All Away
2017-03-07 17:08:02,736 (-d1d8470) : INFO (init:32) - Adding Lyric Meet Me Inside to track Meet Me Inside
2017-03-07 17:08:02,745 (-e2be470) : INFO (init:32) - Adding Lyric That Would Be Enough to track That Would Be Enough
2017-03-07 17:08:02,752 (-cbee470) : INFO (init:32) - Adding Lyric Stay Alive (Reprise) to track Stay Alive (Reprise)
2017-03-07 17:08:02,771 (-e8da470) : INFO (init:32) - Adding Lyric Guns and Ships to track Guns and Ships
2017-03-07 17:08:02,796 (-d1d8470) : INFO (init:32) - Adding Lyric It’s Quiet Uptown to track It’s Quiet Uptown
2017-03-07 17:08:02,874 (-d1d8470) : INFO (init:32) - Adding Lyric Your Obedient Servant to track Your Obedient Servant
2017-03-07 17:08:02,891 (-cbee470) : INFO (init:32) - Adding Lyric The Election of 1800 to track The Election of 1800
2017-03-07 17:08:02,911 (-e2be470) : INFO (init:32) - Adding Lyric History Has Its Eyes on You to track History Has Its Eyes on You
2017-03-07 17:08:02,931 (-cbee470) : INFO (init:32) - Adding Lyric Best of Wives and Best of Women to track Best of Wives and Best of Women
2017-03-07 17:08:02,963 (-d1d8470) : INFO (init:32) - Adding Lyric What Comes Next? to track What Comes Next?
2017-03-07 17:08:02,996 (-cbee470) : INFO (init:32) - Adding Lyric The World was Wide Enough to track The World was Wide Enough
2017-03-07 17:08:03,025 (-e2be470) : INFO (init:32) - Adding Lyric Dear Theodosia to track Dear Theodosia
2017-03-07 17:08:03,038 (-e8da470) : INFO (init:32) - Adding Lyric Yorktown (The World Turned Upside Down) to track Yorktown (The World Turned Upside Down)
2017-03-07 17:08:03,051 (-d1d8470) : INFO (init:32) - Adding Lyric Non-Stop to track Non-Stop
2017-03-07 17:08:03,065 (-cbee470) : INFO (init:32) - Adding Lyric Who Lives, Who Dies, Who Tells Your Story to track Who Lives, Who Dies, Who Tells Your Story
2017-03-07 17:08:03,077 (-f600470) : DEBUG (threadkit:244) - Parallel task set MatchLyrics ended
2017-03-07 17:08:03,272 (-f600470) : DEBUG (model:229) - Serializing to /share/CACHEDEV1_DATA/.qpkg/PlexMediaServer/Library/Plex Media Server/Metadata/Albums/2/57bb142b9cf5c35fb9f57f10e2658021f31e22e.bundle/Contents/com.plexapp.agents.lyricfind/Info.xml

Latest update:

I found a mistake with some lyrics in another song on this album. LyricFind corrected it. After a few days the corrected lyrics appeared in my Plex instance. However the issue with “Cabinet Battle #1” still remains. So I know that my Plex instance has the latest lyrics. This now rules out the possibility that my instance is using a stale version of the lyrics (that were possibly first created when lyrics for “Cabinet Battle #1” did not exist in the LyricFind DB.) LyricFind confirmed their lyrics for “Cabinet Battle #1” exist and are correct, so I’d expect to see them now. Since I do not, I can only surmise that the issue lies with how the lyrics are being queried or returned. The actual querying mechanism is a black box to me. I can see in the logs this line:

'http://127.0.0.1:32400/services/lyricfind/search?reqtype=default&searchtype=track&limit=100&output=json&artist=Lin-Manuel Miranda&album=Hamilton: An American Musical'

Which shows a query being performed against a Plex service. It’s this query that most likely returns the cached lyrics stored on some central Plex server. I doubt this query is forcing a call to the LyricFind DB (unless of course the album doesn’t exist in the cached set of lyrics.) I see three possibilities:

(i) There is an issue with how this query above is querying the cached lyrics on the server… the issue being it isn’t finding the lyrics for “Cabinet Battle #1”, but instead finding the lyrics for “Cabinet Battle #2” which it then assigns to the song “Cabinet Battle #1”.

(ii) There is an issue with the scheduled outbound query call the Plex servers occasionally makes to LyricFind to refresh its cache. LyricFind is returning the correct data, but Plex isn’t properly processing the lyrics for “Cabinet Battle #1

(iii) There is an issue on LyricFind’s end where it is receiving the correct query from the Plex servers but is not properly sending the lyrics for “Cabinet Battle #1

Can this please be looked into? I know this is just one song, but there could be an underlying issue that is affecting a far greater number of tracks.

Thanks for the report! The team is working on some tweaks to the LyricFind agent, which should hopefully improve matching in situations like this with track names that are nearly identical. It will take a Plex Media Server update to get out, but I can’t say for sure when a version with the change will be available, sorry.

Thanks Chris!

And just for reporting purposes, I sent this issue to LyricFind since there was a possibility it was their service that was replying incorrectly to incoming API calls. They confirmed that they can properly query their service and receive the expected result. Here is their reply to me

Hello Cameron,

I’ve looked into the issue and determined that our data and services properly distinguish the difference between Cabinet Battle #1 and Cabinet Battle #2, and that we provide the correct lyrics for each of those songs.

Any further issue is with Plex. A guess would be incorrect handling of the “#” character in a URL. For example Google vs Google

Regards,
Kyle

This is still an issue, which is fine (I understand the priorities of other tickets probably place this lower down in the queue.) Can I confirm that a ticket has been opened for this particular issue (which could be closed if the other LyricFind tweaks mentioned up above address this problem)?

Thanks

I can confirm this is still a issue as of version 1.15.3.876 (QNAP). Has a ticket for this been logged?