mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	| @@ -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
	 Yen Chi Hsuan
					Yen Chi Hsuan