New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request] Lyric support #338
Comments
Embedded lyrics display is very necessary for music library。 |
Great news in this topic!!! This means that we could implement this feature now. However, I have no experience in Flutter yet. Could therefore also become nothing. |
Awesome! I guess combined with this new API and the fact that any files that have embedded lyrics tags can also be used to acquire lyrics, this should cover almost all cases. The implementation could first test if there are (mp3) tags embedded with lyrics info, and if there are try to parse them with an LRC parser. If there are no tags or parsing fails, the API could be tried next. Ideally, this should probably be done when a song is fetched for playback, or downloaded for offline use. @iPaulTech if you need any help with the UI stuff just ask me. I'd be happy to design some mockups for you :) |
Oh you've right... There is a download function 😄. I think it would be better, if the lyric comes only from the Jellyfin API. And would be saved for offline playback in the Finamp database (I think this is SQLite). I hope i can experiment with flutter soon. Because last weekend i've had build problems... But this should be fixed in the next days. I wait for the commits :). And for the UI, i like the implementation from the App "musicolet" (not really Opensource). |
The potential problem with that is that is only exposes |
Mh... Thats not good. But i think this should not be a "Finamp problem"... It would be better if the user would use some script for extract the lyrics to seperated files on the server side... I also do not know how this would be with transcoded streams... If the metadata are not in the transcoded files you would habe a Problem... People should do the backend rightly and not a simple client... What is with the Web Client for Jellyfin... This would be bad if only Finamp has the lyrics from inside the .mp3 or .FLAC files... |
You're right of course, the API should ideally support embedded tags as well. I'd suggest to start with using just the API and then seeing if we can also add client-side support for embedded tags until the backend catches up. Also, I'm curious what @jmshrv's opinion is on this 🤔 |
This is really exciting! Awesome to see that its becoming part of Jellyfin. just_audio currently doesn't support viewing a song's metadata tags, but it should be possible to add (although it would require me writing Objective-C 🤢) - ryanheise/just_audio#88 Ideally, Jellyfin itself should handle this. I'd assume it's possible as Jellyfin already looks at tags to organise the library. It also looks like the code is pretty easy to extend as LRC and TXT implementations are nicely split into providers, so it'll probably be easier to add a tag provider than to add tag extraction support inside Finamp/just_audio. As for downloads, Finamp's download system is a mess that I've been meaning to strip out for a while. I don't have the time to do it now, so I guess we can't wait for that to happen. It's currently spread out across 5 key value databases (+ the SQLite DB that flutter_downloader creates), and its a horrible blob of functions that just have to manage everything themselves with no security if anything goes wrong - I'm amazed I don't get any bug reports mentioning downloads going missing or something. Since the lyric endpoint returns its own type instead of adding it to As for implementing the API bit, these are the relevant files:
|
I added support for embedded lyrics in this PR: jellyfin/jellyfin#9220 Works transparently for the client so just calling the one lyrics endpoint is fine. |
That's awesome, saves me a lot of work. Thanks! |
Thanks @DomiStyle! Just wondering, does this PR work for both downloaded and streamed songs? And pardon my lack of understanding—to get the lyrics in Jellyfin Server is that enabled by default, or something you need to set up before this PR would read them from the server? |
That PR is for Jellyfin itself, which previously had no way for asking for lyrics. Finamp will need to add support for the new endpoint, which I plan to do in the redesign :) |
Ha, right, I should have clicked the link to see where the PR originated from! Thanks for letting me know. |
I'll probably start working on this once I've finished implementing the new queueing system. This will happen in the redesign though, and I probably won't backport it myself. But backporting should be possible, if someone wants lyrics asap. |
Jellyfin releases are super slow so the redesign will probably be out by time lyrics are available in the server lol |
That's what I'm hoping for. Still haven't started, because the queue is driving me insane... |
+1 :) |
Well that didn't work out so well... Now that the beta is out, I'll first focus on the imminent issues, and then see when I have some time to tackle this. There's still no ETA for Jellyfin 10.9, but I'd like to make sure Finamp is ready for that release! |
hey you actually deliver on most of your promises :) |
Lyrics support is basically done at this point, just in time for the Jellyfin 10.9 update next week! It will be part of the next beta update |
Finamp is a fantastic project. Not sure how difficult it is to implement, but to be able to read downloaded lyrics files, or somehow have them pull from an external source on the fly, would be amazing.
The text was updated successfully, but these errors were encountered: