hook up with Jellyfin lyrics

This commit is contained in:
Drew Weymouth
2024-05-17 08:38:43 -07:00
parent e7b2b821f3
commit 3273f45594
3 changed files with 25 additions and 1 deletions
@@ -354,6 +354,28 @@ func (j *jellyfinMediaProvider) RescanLibrary() error {
return j.client.RefreshLibrary()
}
var _ mediaprovider.LyricsProvider = (*jellyfinMediaProvider)(nil)
func (j *jellyfinMediaProvider) GetLyrics(tr *mediaprovider.Track) (*mediaprovider.Lyrics, error) {
l, err := j.client.GetLyrics(tr.ID)
if err != nil {
return nil, err
}
return &mediaprovider.Lyrics{
Title: l.Metadata.Title,
Artist: l.Metadata.Artist,
Synced: l.Metadata.IsSynced,
Lines: sharedutil.MapSlice(l.Lyrics, toLyricLine),
}, nil
}
func toLyricLine(ll jellyfin.LyricLine) mediaprovider.LyricLine {
return mediaprovider.LyricLine{
Text: ll.Text,
Start: float64(ll.Start) / float64(runTimeTicksPerSecond),
}
}
func toTrack(ch *jellyfin.Song) *mediaprovider.Track {
if ch == nil {
return nil