diff --git a/yt_dlp/extractor/soundcloud.py b/yt_dlp/extractor/soundcloud.py index 0b75c9a725..eafa306f21 100644 --- a/yt_dlp/extractor/soundcloud.py +++ b/yt_dlp/extractor/soundcloud.py @@ -361,6 +361,7 @@ def extract_count(key): 'uploader_url': user.get('permalink_url'), 'timestamp': unified_timestamp(info.get('created_at')), 'title': info.get('title'), + 'track': info.get('title'), 'description': info.get('description'), 'thumbnails': thumbnails, 'duration': float_or_none(info.get('duration'), 1000), @@ -410,6 +411,7 @@ class SoundcloudIE(SoundcloudBaseIE): 'id': '62986583', 'ext': 'opus', 'title': 'Lostin Powers - She so Heavy (SneakPreview) Adrian Ackers Blueprint 1', + 'track': 'Lostin Powers - She so Heavy (SneakPreview) Adrian Ackers Blueprint 1', 'description': 'No Downloads untill we record the finished version this weekend, i was too pumped n i had to post it , earl is prolly gonna b hella p.o\'d', 'uploader': 'E.T. ExTerrestrial Music', 'uploader_id': '1571244', @@ -432,6 +434,7 @@ class SoundcloudIE(SoundcloudBaseIE): 'id': '47127627', 'ext': 'opus', 'title': 'Goldrushed', + 'track': 'Goldrushed', 'description': 'From Stockholm Sweden\r\nPovel / Magnus / Filip / David\r\nwww.theroyalconcept.com', 'uploader': 'The Royal Concept', 'uploader_id': '9615865', @@ -457,6 +460,7 @@ class SoundcloudIE(SoundcloudBaseIE): 'id': '123998367', 'ext': 'mp3', 'title': 'Youtube - Dl Test Video \'\' Ä↭', + 'track': 'Youtube - Dl Test Video \'\' Ä↭', 'description': 'test chars: "\'/\\ä↭', 'uploader': 'jaimeMF', 'uploader_id': '69767071', @@ -481,6 +485,7 @@ class SoundcloudIE(SoundcloudBaseIE): 'id': '123998367', 'ext': 'mp3', 'title': 'Youtube - Dl Test Video \'\' Ä↭', + 'track': 'Youtube - Dl Test Video \'\' Ä↭', 'description': 'test chars: "\'/\\ä↭', 'uploader': 'jaimeMF', 'uploader_id': '69767071', @@ -505,6 +510,7 @@ class SoundcloudIE(SoundcloudBaseIE): 'id': '343609555', 'ext': 'wav', 'title': 'The Following', + 'track': 'The Following', 'description': '', 'uploader': '80M', 'uploader_id': '312384765', @@ -530,6 +536,7 @@ class SoundcloudIE(SoundcloudBaseIE): 'id': '340344461', 'ext': 'wav', 'title': 'Uplifting Only 238 [No Talking] (incl. Alex Feed Guestmix) (Aug 31, 2017) [wav]', + 'track': 'Uplifting Only 238 [No Talking] (incl. Alex Feed Guestmix) (Aug 31, 2017) [wav]', 'description': 'md5:fa20ee0fca76a3d6df8c7e57f3715366', 'uploader': 'Ori Uplift Music', 'uploader_id': '12563093', @@ -555,6 +562,7 @@ class SoundcloudIE(SoundcloudBaseIE): 'id': '309699954', 'ext': 'mp3', 'title': 'Sideways (Prod. Mad Real)', + 'track': 'Sideways (Prod. Mad Real)', 'description': 'md5:d41d8cd98f00b204e9800998ecf8427e', 'uploader': 'garyvee', 'uploader_id': '2366352', @@ -581,6 +589,7 @@ class SoundcloudIE(SoundcloudBaseIE): 'id': '583011102', 'ext': 'opus', 'title': 'Mezzo Valzer', + 'track': 'Mezzo Valzer', 'description': 'md5:f4d5f39d52e0ccc2b4f665326428901a', 'uploader': 'Giovanni Sarani', 'uploader_id': '3352531', @@ -656,6 +665,11 @@ def _extract_set(self, playlist, token=None): 'playlistId': playlist_id, 'playlistSecretToken': token, }, headers=self._HEADERS) + album_info = traverse_obj(playlist, { + 'album': ('title', {str}), + 'album_artist': ('user', 'username', {str}), + 'album_type': ('set_type', {str}, {lambda x: x or 'playlist'}), + }) entries = [] for track in tracks: track_id = str_or_none(track.get('id')) @@ -667,11 +681,17 @@ def _extract_set(self, playlist, token=None): if token: url += '?secret_token=' + token entries.append(self.url_result( - url, SoundcloudIE.ie_key(), track_id)) + url, SoundcloudIE.ie_key(), track_id, url_transparent=True, **album_info)) return self.playlist_result( entries, playlist_id, playlist.get('title'), - playlist.get('description')) + playlist.get('description'), + **album_info, + **traverse_obj(playlist, { + 'uploader': ('user', 'username', {str}), + 'uploader_id': ('user', 'id', {str_or_none}), + }), + ) class SoundcloudSetIE(SoundcloudPlaylistBaseIE): @@ -683,6 +703,11 @@ class SoundcloudSetIE(SoundcloudPlaylistBaseIE): 'id': '2284613', 'title': 'The Royal Concept EP', 'description': 'md5:71d07087c7a449e8941a70a29e34671e', + 'uploader': 'The Royal Concept', + 'uploader_id': '9615865', + 'album': 'The Royal Concept EP', + 'album_artists': ['The Royal Concept'], + 'album_type': 'ep', }, 'playlist_mincount': 5, }, { @@ -968,6 +993,11 @@ class SoundcloudPlaylistIE(SoundcloudPlaylistBaseIE): 'id': '4110309', 'title': 'TILT Brass - Bowery Poetry Club, August \'03 [Non-Site SCR 02]', 'description': 're:.*?TILT Brass - Bowery Poetry Club', + 'uploader': 'Non-Site Records', + 'uploader_id': '33660914', + 'album_artists': ['Non-Site Records'], + 'album_type': 'playlist', + 'album': 'TILT Brass - Bowery Poetry Club, August \'03 [Non-Site SCR 02]', }, 'playlist_count': 6, }]