aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--yt_dlp/extractor/patreon.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/yt_dlp/extractor/patreon.py b/yt_dlp/extractor/patreon.py
index f5cb2a5d6..4d668cd37 100644
--- a/yt_dlp/extractor/patreon.py
+++ b/yt_dlp/extractor/patreon.py
@@ -55,6 +55,7 @@ class PatreonBaseIE(InfoExtractor):
class PatreonIE(PatreonBaseIE):
+ IE_NAME = 'patreon'
_VALID_URL = r'https?://(?:www\.)?patreon\.com/(?:creation\?hid=|posts/(?:[\w-]+-)?)(?P<id>\d+)'
_TESTS = [{
'url': 'http://www.patreon.com/creation?hid=743933',
@@ -433,8 +434,12 @@ class PatreonIE(PatreonBaseIE):
class PatreonCampaignIE(PatreonBaseIE):
-
- _VALID_URL = r'https?://(?:www\.)?patreon\.com/(?!rss)(?:(?:m|api/campaigns)/(?P<campaign_id>\d+)|(?P<vanity>[-\w]+))'
+ IE_NAME = 'patreon:campaign'
+ _VALID_URL = r'''(?x)
+ https?://(?:www\.)?patreon\.com/(?:
+ (?:m|api/campaigns)/(?P<campaign_id>\d+)|
+ (?P<vanity>(?!creation[?/]|posts/|rss[?/])[\w-]+)
+ )(?:/posts)?/?(?:$|[?#])'''
_TESTS = [{
'url': 'https://www.patreon.com/dissonancepod/',
'info_dict': {
@@ -496,10 +501,6 @@ class PatreonCampaignIE(PatreonBaseIE):
'only_matching': True,
}]
- @classmethod
- def suitable(cls, url):
- return False if PatreonIE.suitable(url) else super().suitable(url)
-
def _entries(self, campaign_id):
cursor = None
params = {