Add support for lyrics - #519
Conversation
|
thanks for work here, but is this a dupe of #488 ? |
|
Not exactly a dupe since I've added also the possibility of fetching the lyrics from the embedded tag. Since i couldn't work on that pull request I've decided to make a new one. I should have implemented all things that weren't implemented on the other pull request |
|
How can i test it? I can't understand how to build it |
|
Hi, I suggest to build a custom docker image and use that in your
These are the steps needed to build and use the image, but i have noticed that it returns an error. The problem is the one fixed by #526. Changing the Dockerfile with the changes proposed by #526 fixes the issue and let you build the image. |
|
That's works. Thank you! |
|
Any updates? Will this get merged? |
|
The feature works fine, I've been using it for a few months without any problems. We should wait for a response from @sentriz |
|
For client testing, I just pushed a branch onto @spezifisch 's fork of stmps that implements showing synchronized lyrics fetched from @danielepintore 's fork. It's functional. stmps uses mpv as the player, and gets time sync's every second, which means lyrics timings are always just a little off. I found it's better to switch lyric lines early, rather than later, so that the lyric line is shown when the vocals happen; anyway, it works. I'd be thrilled to see @danielepintore 's fork merged; now there's one more client that can use it! |
|
Hey @sentriz any update on this getting merged? I've just rebased to master and I think it's ready to be merged |
|
FWI I have a hard fork of stmps that has support for lyrics (and cover art, and song metadata) that depends on (the lyrics part) this feature; my fork is in AUR and Alpine testing. I'm waiting on this being merged before moving the package from Alpine testing to community -- users can use Navidrome, which has this support, but since I use gonic I'm gating on this. |
Squashed commit of the following: commit 897fa82 Author: sentriz <senan@senan.xyz> Date: Tue Aug 26 11:03:43 2025 +0100 bump ts commit bd356a9 Author: Daniele Pintore <daniele.pintore1@gmail.com> Date: Thu Jul 24 16:09:28 2025 +0200 fix(lint): use NewError correctly commit c0d6cb2 Author: Daniele Pintore <daniele.pintore1@gmail.com> Date: Thu Jul 24 15:32:30 2025 +0200 fix(lyrics): if lrc is formatted with empty spaces remove them commit ef4f722 Author: Daniele Pintore <daniele.pintore1@gmail.com> Date: Thu Jun 20 15:21:02 2024 +0200 chore: fix tests commit 24a9439 Author: Daniele Pintore <pintdany@gmail.com> Date: Wed Jun 19 17:30:34 2024 +0200 fix typo commit 4dfdff1 Author: Daniele Pintore <pintdany@gmail.com> Date: Wed Jun 19 17:29:51 2024 +0200 Add check for getLyrics function commit e04c6dd Author: Daniele Pintore <pintdany@gmail.com> Date: Wed Jun 19 17:16:22 2024 +0200 Add support for lyrics commit 0a745b1 Author: Daniele Pintore <pintdany@gmail.com> Date: Wed Jun 19 10:29:03 2024 +0200 Add songLyrics extension since the getLyricsBySongId method is implemented Release-As: 0.18.0
* Add songLyrics extension since the getLyricsBySongId method is implemented * Add support for lyrics * Add check for getLyrics function * fix typo * chore: fix tests * fix(lyrics): if lrc is formatted with empty spaces remove them * fix(lint): use NewError correctly bump ts
|
thank you @danielepintore and sorry for the delay! |
Closes sentriz#519 to fix popup_menu attempt to subtract with overflow bug.
In this pull request I've added support for lyrics.
When we make a scan now we check for lyrics inside the file using
taglib, once the scan process in finished we have all lyrics saved on the db so we can retrieve them faster. When we are looking for a lyrics it first checks if there is a embedded lyric, if there is we return that, otherwise it looks for a fileSONG_NAME.lrcand reads the lyrics from it. If there isn't a.lrcfile an empty response is provided.I've added support for both
getLyricsandgetLyricsBySongIdmethods. I have even created a migration, but i'm not so sure if that works fine maybe give that a double check.Let me know if there is something to change.
P.S. I have used some code from #488