]> jfr.im git - yt-dlp.git/commitdiff
[ie/PatreonCampaign] Fix extraction (#7664)
authorbashonly <redacted>
Sat, 22 Jul 2023 13:10:25 +0000 (08:10 -0500)
committerGitHub <redacted>
Sat, 22 Jul 2023 13:10:25 +0000 (13:10 +0000)
Authored by: bashonly

yt_dlp/extractor/patreon.py

index 447087436de19bedd975cf955a79792ecb523c5a..9316789df213fcc8aa3cfc975a9c596ece6197ce 100644 (file)
@@ -2,21 +2,21 @@
 
 from .common import InfoExtractor
 from .vimeo import VimeoIE
-
 from ..compat import compat_urllib_parse_unquote
 from ..networking.exceptions import HTTPError
 from ..utils import (
+    KNOWN_EXTENSIONS,
+    ExtractorError,
     clean_html,
     determine_ext,
-    ExtractorError,
     int_or_none,
-    KNOWN_EXTENSIONS,
     mimetype2ext,
     parse_iso8601,
     str_or_none,
     traverse_obj,
     try_get,
     url_or_none,
+    urljoin,
 )
 
 
@@ -404,8 +404,8 @@ def _entries(self, campaign_id):
             posts_json = self._call_api('posts', campaign_id, query=params, note='Downloading posts page %d' % page)
 
             cursor = traverse_obj(posts_json, ('meta', 'pagination', 'cursors', 'next'))
-            for post in posts_json.get('data') or []:
-                yield self.url_result(url_or_none(traverse_obj(post, ('attributes', 'patreon_url'))), 'Patreon')
+            for post_url in traverse_obj(posts_json, ('data', ..., 'attributes', 'patreon_url')):
+                yield self.url_result(urljoin('https://www.patreon.com/', post_url), PatreonIE)
 
             if cursor is None:
                 break