diff --git a/yt_dlp/extractor/bandcamp.py b/yt_dlp/extractor/bandcamp.py index c2defe1bc..77dff9d67 100644 --- a/yt_dlp/extractor/bandcamp.py +++ b/yt_dlp/extractor/bandcamp.py @@ -278,6 +278,8 @@ def _real_extract(self, url): 'formats': formats, 'tags': traverse_obj(webpage, ({find_elements(cls='tag')}, ..., {clean_html})), } + + class BandcampAlbumIE(BandcampIE): # XXX: Do not subclass from concrete IE IE_NAME = 'Bandcamp:album' _VALID_URL = r'https?://(?:(?P[^.]+)\.)?bandcamp\.com/album/(?P[^/?#&]+)' @@ -404,6 +406,8 @@ def _real_extract(self, url): 'description': current.get('about'), 'entries': entries, } + + class BandcampWeeklyIE(BandcampIE): # XXX: Do not subclass from concrete IE IE_NAME = 'Bandcamp:weekly' _VALID_URL = r'https?://(?:www\.)?bandcamp\.com/?\?(?:.*?&)?show=(?P\d+)' @@ -508,6 +512,8 @@ def _real_extract(self, url): 'episode_id': show_id, 'formats': formats, } + + class BandcampUserIE(InfoExtractor): IE_NAME = 'Bandcamp:user' _VALID_URL = r'https?://(?!www\.)(?P[^.]+)\.bandcamp\.com(?:/music)?/?(?:[#?]|$)'