Jellyfin: Implement get_similar_tracks
authorJohn Carr <john.carr@unrouted.co.uk>
Tue, 25 Jun 2024 08:04:12 +0000 (09:04 +0100)
committerJohn Carr <john.carr@unrouted.co.uk>
Sat, 29 Jun 2024 12:51:50 +0000 (13:51 +0100)
music_assistant/server/providers/jellyfin/__init__.py
music_assistant/server/providers/jellyfin/manifest.json
requirements_all.txt

index 4438744255ec2eefa39d52a4132caca395ac6c9c..61856e7f7d7e263f5029469903b2084fd184a340 100644 (file)
@@ -166,6 +166,7 @@ class JellyfinProvider(MusicProvider):
             ProviderFeature.BROWSE,
             ProviderFeature.SEARCH,
             ProviderFeature.ARTIST_ALBUMS,
+            ProviderFeature.SIMILAR_TRACKS,
         )
 
     @property
@@ -486,6 +487,12 @@ class JellyfinProvider(MusicProvider):
             path=url,
         )
 
+    async def get_similar_tracks(self, prov_track_id, limit=25) -> list[Track]:
+        """Retrieve a dynamic list of tracks based on the provided item."""
+        resp = await self._client.get_similar_tracks(prov_track_id, limit=limit)
+        print("get_similar_tracks", [track["Name"] for track in resp["Items"]])
+        return [parse_track(self.logger, self.instance_id, self._client, track) for track in resp["Items"]]
+
     async def _get_music_libraries(self) -> list[JellyMediaLibrary]:
         """Return all supported libraries a user has access to."""
         response = await self._client.get_media_folders()
index 74714c7a16baecd95eccb9816b4e7a60874e6cb8..27cd9827939d39c89c65786baeb2ae8283000446 100644 (file)
@@ -4,7 +4,7 @@
   "name": "Jellyfin Media Server Library",
   "description": "Support for the Jellyfin streaming provider in Music Assistant.",
   "codeowners": ["@lokiberra", "@Jc2k"],
-  "requirements": ["aiojellyfin==0.8.3"],
+  "requirements": ["aiojellyfin==0.9.0"],
   "documentation": "https://music-assistant.io/music-providers/jellyfin/",
   "multi_instance": true
 }
index b5e390463f46c526621330a8979df279de7a7161..49c6a98f4e1462e5df6aa208cd30c467805fbd63 100644 (file)
@@ -4,7 +4,7 @@ Brotli>=1.0.9
 aiodns>=3.0.0
 aiofiles==24.1.0
 aiohttp==3.9.5
-aiojellyfin==0.8.3
+aiojellyfin==0.9.0
 aiorun==2024.5.1
 aioslimproto==3.0.1
 aiosqlite==0.20.0