Add duration to album tracks
authorMarvin Schenkel <marvinschenkel@gmail.com>
Fri, 8 Jul 2022 21:56:11 +0000 (23:56 +0200)
committerMarvin Schenkel <marvinschenkel@gmail.com>
Fri, 8 Jul 2022 21:56:11 +0000 (23:56 +0200)
music_assistant/music_providers/ytmusic/ytmusic.py

index bca7effd27d302785d51391fb88b40c39f6044a4..c72b9be833609ac777040686d867bf6c65b990a3 100644 (file)
@@ -415,6 +415,11 @@ class YoutubeMusicProvider(MusicProvider):
             track.metadata.explicit = track_obj["isExplicit"]
         if "duration" in track_obj and track_obj["duration"].isdigit():
             track.duration = track_obj["duration"]
+        elif (
+            "duration_seconds" in track_obj
+            and str(track_obj["duration_seconds"]).isdigit()
+        ):
+            track.duration = track_obj["duration_seconds"]
         available = True
         if "isAvailable" in track_obj:
             available = track_obj["isAvailable"]
@@ -456,12 +461,8 @@ class YoutubeMusicProvider(MusicProvider):
     @classmethod
     async def _parse_thumbnails(cls, thumbnails_obj: dict) -> List[MediaItemImage]:
         """Parse and sort a list of thumbnails and return the highest quality."""
-        thumbnails_sorted = sorted(
-            thumbnails_obj, key=itemgetter("width"), reverse=True
-        )[0]
-        return [
-            MediaItemImage(ImageType.THUMB, thumb["url"]) for thumb in thumbnails_sorted
-        ]
+        thumb = sorted(thumbnails_obj, key=itemgetter("width"), reverse=True)[0]
+        return [MediaItemImage(ImageType.THUMB, thumb["url"])]
 
     @classmethod
     async def _parse_stream_format(cls, track_obj: dict) -> dict: