aboutsummaryrefslogtreecommitdiffstats
path: root/hypervideo_dl/extractor/spankbang.py
diff options
context:
space:
mode:
Diffstat (limited to 'hypervideo_dl/extractor/spankbang.py')
-rw-r--r--hypervideo_dl/extractor/spankbang.py32
1 files changed, 17 insertions, 15 deletions
diff --git a/hypervideo_dl/extractor/spankbang.py b/hypervideo_dl/extractor/spankbang.py
index 37cb8c8..dd849ae 100644
--- a/hypervideo_dl/extractor/spankbang.py
+++ b/hypervideo_dl/extractor/spankbang.py
@@ -26,17 +26,18 @@ class SpankBangIE(InfoExtractor):
)
'''
_TESTS = [{
- 'url': 'http://spankbang.com/3vvn/video/fantasy+solo',
- 'md5': '1cc433e1d6aa14bc376535b8679302f7',
+ 'url': 'https://spankbang.com/56b3d/video/the+slut+maker+hmv',
+ 'md5': '2D13903DE4ECC7895B5D55930741650A',
'info_dict': {
- 'id': '3vvn',
+ 'id': '56b3d',
'ext': 'mp4',
- 'title': 'fantasy solo',
- 'description': 'dillion harper masturbates on a bed',
+ 'title': 'The Slut Maker HMV',
+ 'description': 'Girls getting converted into cock slaves.',
'thumbnail': r're:^https?://.*\.jpg$',
- 'uploader': 'silly2587',
- 'timestamp': 1422571989,
- 'upload_date': '20150129',
+ 'uploader': 'Mindself',
+ 'uploader_id': 'mindself',
+ 'timestamp': 1617109572,
+ 'upload_date': '20210330',
'age_limit': 18,
}
}, {
@@ -70,7 +71,7 @@ class SpankBangIE(InfoExtractor):
}]
def _real_extract(self, url):
- mobj = re.match(self._VALID_URL, url)
+ mobj = self._match_valid_url(url)
video_id = mobj.group('id') or mobj.group('id_2')
webpage = self._download_webpage(
url.replace('/%s/embed' % video_id, '/%s/video' % video_id),
@@ -129,20 +130,20 @@ class SpankBangIE(InfoExtractor):
format_url = format_url[0]
extract_format(format_id, format_url)
- self._sort_formats(formats, field_preference=('preference', 'height', 'width', 'fps', 'tbr', 'format_id'))
+ self._sort_formats(formats)
info = self._search_json_ld(webpage, video_id, default={})
title = self._html_search_regex(
- r'(?s)<h1[^>]*>(.+?)</h1>', webpage, 'title', default=None)
+ r'(?s)<h1[^>]+\btitle=["\']([^"]+)["\']>', webpage, 'title', default=None)
description = self._search_regex(
r'<div[^>]+\bclass=["\']bottom[^>]+>\s*<p>[^<]*</p>\s*<p>([^<]+)',
webpage, 'description', default=None)
thumbnail = self._og_search_thumbnail(webpage, default=None)
uploader = self._html_search_regex(
- (r'(?s)<li[^>]+class=["\']profile[^>]+>(.+?)</a>',
- r'class="user"[^>]*><img[^>]+>([^<]+)'),
- webpage, 'uploader', default=None)
+ r'<svg[^>]+\bclass="(?:[^"]*?user[^"]*?)">.*?</svg>([^<]+)', webpage, 'uploader', default=None)
+ uploader_id = self._html_search_regex(
+ r'<a[^>]+href="/profile/([^"]+)"', webpage, 'uploader_id', default=None)
duration = parse_duration(self._search_regex(
r'<div[^>]+\bclass=["\']right_side[^>]+>\s*<span>([^<]+)',
webpage, 'duration', default=None))
@@ -157,6 +158,7 @@ class SpankBangIE(InfoExtractor):
'description': description,
'thumbnail': thumbnail,
'uploader': uploader,
+ 'uploader_id': uploader_id,
'duration': duration,
'view_count': view_count,
'formats': formats,
@@ -177,7 +179,7 @@ class SpankBangPlaylistIE(InfoExtractor):
}
def _real_extract(self, url):
- mobj = re.match(self._VALID_URL, url)
+ mobj = self._match_valid_url(url)
playlist_id = mobj.group('id')
display_id = mobj.group('display_id')