|
|
|
@ -279,8 +279,6 @@ class BandcampIE(InfoExtractor):
|
|
|
|
|
'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<subdomain>[^.]+)\.)?bandcamp\.com/album/(?P<id>[^/?#&]+)'
|
|
|
|
@ -407,8 +405,6 @@ class BandcampAlbumIE(BandcampIE): # XXX: Do not subclass from concrete IE
|
|
|
|
|
'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<id>\d+)'
|
|
|
|
@ -520,8 +516,6 @@ class BandcampWeeklyIE(BandcampIE): # XXX: Do not subclass from concrete IE
|
|
|
|
|
'episode_id': show_id,
|
|
|
|
|
'formats': formats,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BandcampUserIE(InfoExtractor):
|
|
|
|
|
IE_NAME = 'Bandcamp:user'
|
|
|
|
|
_VALID_URL = r'https?://(?!www\.)(?P<id>[^.]+)\.bandcamp\.com(?:/music)?/?(?:[#?]|$)'
|
|
|
|
|