OS lyrics response from lms not displayed in Symfonium

Issue description:

Since v3.60.0, lms provides the content of external lyrics via the OS api, however Symfonium does not display them.

Logs:

Upload description: 655321 lms OS lyrics

Additional information:

 
As far as I can tell, in the Symfonium logs the lyrics=[ ] means it does not like the response from lms.
I’ve zipped up the logs + the song + lrc file I used to reproduce this.
lms log of the lyrics api request:

[2024-Nov-05 05:02:22.185] 1 - [info] "wthttp: 192.168.16.1   GET /rest/getLyricsBySongId.view?id=tr-570862&u=REDACTED&p=REDACTED&v=1.13.0&c=Symfonium&f=json HTTP/1.1 200 2109"
[2024-Nov-05 05:02:22.185] 1 - [info] "WebRequest: took 38.676 ms"

Using this get request in a browser yields this JSON:

{"subsonic-response":{"openSubsonic":true,"serverVersion":"6","status":"ok","type":"lms","version":"1.16.0","lyricsList":{"structuredLyrics":[{"lang":"xxx","synced":true,"lines":[{"start":10609,"value":"Occupy your mind, don't stay home"},{"start":15470,"value":"Talk to all your friends, but don't look at your phone"},{"start":20150,"value":"Scream into a bag, try to turn your brain off"},{"start":29440,"value":"Make a herbal tea, don't throw up"},{"start":33940,"value":"Remember how to breathe, maybe try and fuck"},{"start":38809,"value":"Stay away from love, maybe take your clothes off\n"},{"start":47831,"value":"'Cause you got me good"},{"start":52211,"value":"And I feel so stupid\n"},{"start":56951,"value":"And now we're doing it all the time"},{"start":60371,"value":"We only have the night"},{"start":65231,"value":"We only have the\n"},{"start":69251,"value":"Take a day off work, call your mum"},{"start":73931,"value":"Have a glass of wine, stay away from fun"},{"start":78491,"value":"Pretend like you don't care, pretend to take the night off"},{"start":87731,"value":"Try to get some sleep, no caffeine"},{"start":92351,"value":"Go and see Louise, maybe watch TV"},{"start":96971,"value":"Don't forget to wash, don't become a write-off\n"},{"start":106211,"value":"'Cause you got me good"},{"start":110831,"value":"And I feel so stupid\n"},{"start":115511,"value":"And now we're doing it all the time"},{"start":118631,"value":"We only have the night"},{"start":123431,"value":"We only have the"},{"start":127816,"value":""},{"start":164411,"value":"'Cause you got me good"},{"start":169031,"value":"And I feel so stupid\n"},{"start":173771,"value":"Now we're doing it all the time"},{"start":177017,"value":"We only have the night"},{"start":181697,"value":"We only have the"}]}]}}}

 

Reproduction steps:

 
Add a song with external lyrics to your library.
Let lms scan for changes.
Validate in the lms gui that the lyrics were correctly parsed.
Sync the lms provider in Symfonium.
Play the file.
 

Media provider:

Subsonic

Screenshots:

     

Hello!
Should be an array of “line” instead of “lines”. I guess symfonium then considers there is no lyrics. Will patch this.

1 Like

I would have t tested if you did not break my prod :stuck_out_tongue:

Ho and please do not zip before upload this is just time lost for all parties.

And yes it’s LMS that returns bad data.

Required value 'line' missing at $.subsonic-response.lyricsList.structuredLyrics[1]

Lovely! That explains why it also did not work during my previous tests unless the lyrics were embedded.

Okey dokey.

I’ve tested 10+ tracks in v3.60.1 and so far it works perfectly. Thank you!

1 Like