]> jfr.im git - yt-dlp.git/commitdiff
[audius:artist] Add extractor (#323)
authorking-millez <redacted>
Thu, 20 May 2021 08:28:52 +0000 (18:28 +1000)
committerpukkandan <redacted>
Thu, 20 May 2021 10:25:55 +0000 (15:55 +0530)
Authored by: king-millez

yt_dlp/extractor/audius.py
yt_dlp/extractor/extractors.py

index 2cbc97fcd7a77e5ab77d0ca4c1b2102a806215e9..b4b718790a29acaebbb57e59f5f325b1541d2255 100644 (file)
@@ -245,3 +245,31 @@ def _real_extract(self, url):
         return self.playlist_result(entries, playlist_id,
                                     playlist_data.get('playlist_name', title),
                                     playlist_data.get('description'))
+
+
+class AudiusProfileIE(AudiusPlaylistIE):
+    IE_NAME = 'audius:artist'
+    IE_DESC = 'Audius.co profile/artist pages'
+    _VALID_URL = r'https?://(?:www)?audius\.co/(?P<id>[^\/]+)/?(?:[?#]|$)'
+    _TEST = {
+        'url': 'https://audius.co/pzl/',
+        'info_dict': {
+            'id': 'ezRo7',
+            'description': 'TAMALE\n\nContact: officialpzl@gmail.com',
+            'title': 'pzl',
+        },
+        'playlist_count': 24,
+    }
+
+    def _real_extract(self, url):
+        self._select_api_base()
+        profile_id = self._match_id(url)
+        try:
+            _profile_data = self._api_request('/full/users/handle/' + profile_id, profile_id)
+        except ExtractorError as e:
+            raise ExtractorError('Could not download profile info; ' + str(e))
+        profile_audius_id = _profile_data[0]['id']
+        profile_bio = _profile_data[0].get('bio')
+
+        api_call = self._api_request('/full/users/handle/%s/tracks' % profile_id, profile_id)
+        return self.playlist_result(self._build_playlist(api_call), profile_audius_id, profile_id, profile_bio)
index b835ca72ce126ddceaf8c5f97811dd5fe6e1b925..1671124ba1571d9c1ec75e69621d5a3f6f8154e9 100644 (file)
@@ -94,7 +94,8 @@
 from .audius import (
     AudiusIE,
     AudiusTrackIE,
-    AudiusPlaylistIE
+    AudiusPlaylistIE,
+    AudiusProfileIE,
 )
 from .awaan import (
     AWAANIE,