jeffvli / feishin

A modern self-hosted music player.
https://feishin.vercel.app
GNU General Public License v3.0
2.46k stars 103 forks source link

Embedded lyrics missing when using "shuffle all" #175

Closed jixunmoe closed 7 months ago

jixunmoe commented 1 year ago

Expected Behavior

Lyrics been fetched and shown.

Current Behavior

Lyrics missing when using "shuffle all".

Steps to Reproduce

  1. Create a navidrome instance where all songs contained LRC lyrics embedded to the media and indexed.
  2. "Shuffle all" from the interface.
  3. No lyrics available when switched to the Lyrics tab.

Possible Solution (Not obligatory)

Workaround: play from tracks section and manually shuffle from there.

Context

The old client (sonixd) is able to display the lyrics text content as it is.

When requesting the random api (/rest/getRandomSongs.view), the response does not include lyrics:

{
  "subsonic-response": {
    "status": "ok",
    "version": "1.16.1",
    "type": "navidrome",
    "serverVersion": "0.49.3 (8b93962f)",
    "randomSongs": {
      "song": [
        {
          "id": "5bbb499925c655b4147298e40785dc93",
          "parent": "61c01b1ddfe2f4872fc39888a1793e0c",
          "isDir": false,
          "title": "玫瑰少年",
          "album": "UGLY BEAUTY",
          "artist": "蔡依林",
          "track": 2,
          "year": 2018,
          "coverArt": "mf-5bbb499925c655b4147298e40785dc93_64921e97",
          "size": 4879472,
          "contentType": "audio/mp4",
          "suffix": "m4a",
          "duration": 191,
          "bitRate": 200,
          "path": "蔡依林/UGLY BEAUTY/02 - 玫瑰少年.m4a",
          "playCount": 3,
          "played": "2023-07-04T22:28:05Z",
          "discNumber": 1,
          "created": "2023-06-20T22:06:02.855677599Z",
          "albumId": "61c01b1ddfe2f4872fc39888a1793e0c",
          "artistId": "060545170130c81c5505fda49b58d018",
          "type": "music",
          "isVideo": false
        }
      ]
    }
  }
}

When playing directly from the tracks interface, it makes a request to song /api/song which had lyrics populated.

The same issue can also be observed (not always!) from the album or search page, as those filtering endpoints does not provide lyrics field neither.

Your Environment

kgarner7 commented 7 months ago

When you upgrade to Navidrome 0.51 (or later releases), this will be resolved by #484. This issue (as you noted) comes up because the getRandomSongs doesn't return a full Navidrome track object.

kgarner7 commented 7 months ago

I'm going to close this, as it is resolved using Navidrome 0.51 and development Feishin https://github.com/jeffvli/feishin/commit/83d5fee4426ae8ac41662debadf613ca21c0e045 (no longer relying on the song lyrics property)