aboutsummaryrefslogtreecommitdiff
path: root/yt_dlp/extractor/bandcamp.py
diff options
context:
space:
mode:
Diffstat (limited to 'yt_dlp/extractor/bandcamp.py')
-rw-r--r--yt_dlp/extractor/bandcamp.py41
1 files changed, 33 insertions, 8 deletions
diff --git a/yt_dlp/extractor/bandcamp.py b/yt_dlp/extractor/bandcamp.py
index 0abe05982..939c2800e 100644
--- a/yt_dlp/extractor/bandcamp.py
+++ b/yt_dlp/extractor/bandcamp.py
@@ -1,4 +1,3 @@
-import functools
import json
import random
import re
@@ -10,7 +9,6 @@ from ..utils import (
ExtractorError,
extract_attributes,
float_or_none,
- get_element_html_by_id,
int_or_none,
parse_filesize,
str_or_none,
@@ -21,7 +19,7 @@ from ..utils import (
url_or_none,
urljoin,
)
-from ..utils.traversal import traverse_obj
+from ..utils.traversal import find_element, traverse_obj
class BandcampIE(InfoExtractor):
@@ -45,6 +43,8 @@ class BandcampIE(InfoExtractor):
'uploader_url': 'https://youtube-dl.bandcamp.com',
'uploader_id': 'youtube-dl',
'thumbnail': 'https://f4.bcbits.com/img/a3216802731_5.jpg',
+ 'artists': ['youtube-dl "\'/\\ä↭'],
+ 'album_artists': ['youtube-dl "\'/\\ä↭'],
},
'skip': 'There is a limit of 200 free downloads / month for the test song',
}, {
@@ -271,6 +271,18 @@ class BandcampAlbumIE(BandcampIE): # XXX: Do not subclass from concrete IE
'timestamp': 1311756226,
'upload_date': '20110727',
'uploader': 'Blazo',
+ 'thumbnail': 'https://f4.bcbits.com/img/a1721150828_5.jpg',
+ 'album_artists': ['Blazo'],
+ 'uploader_url': 'https://blazo.bandcamp.com',
+ 'release_date': '20110727',
+ 'release_timestamp': 1311724800.0,
+ 'track': 'Intro',
+ 'uploader_id': 'blazo',
+ 'track_number': 1,
+ 'album': 'Jazz Format Mixtape vol.1',
+ 'artists': ['Blazo'],
+ 'duration': 19.335,
+ 'track_id': '1353101989',
},
},
{
@@ -282,6 +294,18 @@ class BandcampAlbumIE(BandcampIE): # XXX: Do not subclass from concrete IE
'timestamp': 1311757238,
'upload_date': '20110727',
'uploader': 'Blazo',
+ 'track': 'Kero One - Keep It Alive (Blazo remix)',
+ 'release_date': '20110727',
+ 'track_id': '38097443',
+ 'track_number': 2,
+ 'duration': 181.467,
+ 'uploader_url': 'https://blazo.bandcamp.com',
+ 'album': 'Jazz Format Mixtape vol.1',
+ 'uploader_id': 'blazo',
+ 'album_artists': ['Blazo'],
+ 'artists': ['Blazo'],
+ 'thumbnail': 'https://f4.bcbits.com/img/a1721150828_5.jpg',
+ 'release_timestamp': 1311724800.0,
},
},
],
@@ -289,6 +313,7 @@ class BandcampAlbumIE(BandcampIE): # XXX: Do not subclass from concrete IE
'title': 'Jazz Format Mixtape vol.1',
'id': 'jazz-format-mixtape-vol-1',
'uploader_id': 'blazo',
+ 'description': 'md5:38052a93217f3ffdc033cd5dbbce2989',
},
'params': {
'playlistend': 2,
@@ -363,10 +388,10 @@ class BandcampWeeklyIE(BandcampIE): # XXX: Do not subclass from concrete IE
_VALID_URL = r'https?://(?:www\.)?bandcamp\.com/?\?(?:.*?&)?show=(?P<id>\d+)'
_TESTS = [{
'url': 'https://bandcamp.com/?show=224',
- 'md5': 'b00df799c733cf7e0c567ed187dea0fd',
+ 'md5': '61acc9a002bed93986b91168aa3ab433',
'info_dict': {
'id': '224',
- 'ext': 'opus',
+ 'ext': 'mp3',
'title': 'BC Weekly April 4th 2017 - Magic Moments',
'description': 'md5:5d48150916e8e02d030623a48512c874',
'duration': 5829.77,
@@ -376,7 +401,7 @@ class BandcampWeeklyIE(BandcampIE): # XXX: Do not subclass from concrete IE
'episode_id': '224',
},
'params': {
- 'format': 'opus-lo',
+ 'format': 'mp3-128',
},
}, {
'url': 'https://bandcamp.com/?blah/blah@&show=228',
@@ -484,7 +509,7 @@ class BandcampUserIE(InfoExtractor):
or re.findall(r'<div[^>]+trackTitle["\'][^"\']+["\']([^"\']+)', webpage))
yield from traverse_obj(webpage, (
- {functools.partial(get_element_html_by_id, 'music-grid')}, {extract_attributes},
+ {find_element(id='music-grid', html=True)}, {extract_attributes},
'data-client-items', {json.loads}, ..., 'page_url', {str}))
def _real_extract(self, url):
@@ -493,4 +518,4 @@ class BandcampUserIE(InfoExtractor):
return self.playlist_from_matches(
self._yield_items(webpage), uploader, f'Discography of {uploader}',
- getter=functools.partial(urljoin, url))
+ getter=urljoin(url))