@@ -209,6 +209,15 @@ class BandcampAlbumIE(InfoExtractor):
 | 
			
		||||
            'id': 'entropy-ep',
 | 
			
		||||
        },
 | 
			
		||||
        'playlist_mincount': 3,
 | 
			
		||||
    }, {
 | 
			
		||||
        # not all tracks have songs
 | 
			
		||||
        'url': 'https://insulters.bandcamp.com/album/we-are-the-plague',
 | 
			
		||||
        'info_dict': {
 | 
			
		||||
            'id': 'we-are-the-plague',
 | 
			
		||||
            'title': 'WE ARE THE PLAGUE',
 | 
			
		||||
            'uploader_id': 'insulters',
 | 
			
		||||
        },
 | 
			
		||||
        'playlist_count': 2,
 | 
			
		||||
    }]
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
@@ -217,12 +226,16 @@ class BandcampAlbumIE(InfoExtractor):
 | 
			
		||||
        album_id = mobj.group('album_id')
 | 
			
		||||
        playlist_id = album_id or uploader_id
 | 
			
		||||
        webpage = self._download_webpage(url, playlist_id)
 | 
			
		||||
        tracks_paths = re.findall(r'<a href="(.*?)" itemprop="url">', webpage)
 | 
			
		||||
        if not tracks_paths:
 | 
			
		||||
        track_elements = re.findall(
 | 
			
		||||
            r'(?s)<div[^>]*>(.*?<a[^>]+href="([^"]+?)"[^>]+itemprop="url"[^>]*>.*?)</div>', webpage)
 | 
			
		||||
        if not track_elements:
 | 
			
		||||
            raise ExtractorError('The page doesn\'t contain any tracks')
 | 
			
		||||
        # Only tracks with duration info have songs
 | 
			
		||||
        entries = [
 | 
			
		||||
            self.url_result(compat_urlparse.urljoin(url, t_path), ie=BandcampIE.ie_key())
 | 
			
		||||
            for t_path in tracks_paths]
 | 
			
		||||
            for elem_content, t_path in track_elements
 | 
			
		||||
            if self._html_search_meta('duration', elem_content, default=None)]
 | 
			
		||||
 | 
			
		||||
        title = self._html_search_regex(
 | 
			
		||||
            r'album_title\s*:\s*"((?:\\.|[^"\\])+?)"',
 | 
			
		||||
            webpage, 'title', fatal=False)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user