leinelissen / jellyfin-audio-player

🎵 A gorgeous Jellyfin audio streaming app for iOS and Android
https://fintunes.app
MIT License
712 stars 27 forks source link

Support for .lrc lyric files #151

Open maarcuss opened 1 year ago

maarcuss commented 1 year ago

Wondering if it's possible we could get support for .lrc files that would view lyrics to songs in the app

leinelissen commented 1 year ago

Hey, great suggestion! Does Jellyfin support importing .lrc files? And if they do, do they already support playing them back?

maarcuss commented 1 year ago

No, I don’t think so, I guess it would have to be supported there first? Another solution could be Fintunes downloading lyrics from something like Musixmatch.

leinelissen commented 1 year ago

Apparently support for this has been merged in https://github.com/jellyfin/jellyfin/pull/8381. It's got an endpoint that can request the lyrics files, so that should help immensely with integrating. Let me see what I can do.

vijayvcm commented 6 months ago

Hi @leinelissen Any update on this one?

leinelissen commented 5 months ago

Hey @vijayvcm, this is not a priority at this moment. If anyone wants to take a look, I can give some pointers.

akrv7591 commented 4 weeks ago

Hi @leinelissen I want to work on it. If there is no ongoing development.

leinelissen commented 3 weeks ago

Hi @akrv7591, there is none at the moment, so that would be awesome. You can start by getting the project running. My implementation hunches are the following:

Just try things out and let me know if you run into things. Don't bother getting things perfect the first time around, I might loop in with some design feedback. We can iterate until everything fits together.

akrv7591 commented 3 weeks ago

Thank a lot for great detailed pointers. I will let you know when I finish prototype.

akrv7591 commented 3 weeks ago

It seems /Items is not sending lyrics. I have searched Jellyfin api with no success

leinelissen commented 3 weeks ago

Right! From what I can see on my end, /Items is sending the HasLyrics property. So if it is set to true you can use the GetLyrics operation to retrieve them, and then merge it manually with the track data.

akrv7591 commented 3 weeks ago

First prototype is ready youtube video showing how it works I've used react-native-lyric library to render music lyrics. For now when lyrics screen is mounted it will check if Track has HasLyrics property then fetches lyrics from jellyfin api endpoint(/Audio/:audioId/Lyrics). It is just prototype now. I did not used state management yet. Should we store lyrics to cache? @leinelissen Can you share some ideas

leinelissen commented 3 weeks ago

Right, congrats on getting so far along already! This is starting to shape up nicely. Couple remarks from my end:

Lastly, feel free to already create a pull request, so I can take a look at the code. I can help out with some of the design details if you get the brunt of the implementation down.

akrv7591 commented 3 weeks ago

Should I make pull request as a whole Lyrics implementation or smaller commits?

leinelissen commented 3 weeks ago

Make a pull request for the whole thing, we can update it gradually.

akrv7591 commented 3 weeks ago

I have made pull request