[XHamster] Support xhday.com alias, extract `uploader_id`
* support xhday.com alias for xhamster.com (resolves #31023)
Authored by: dirkf
* extract `uploader_id`:
from 908b56eaf7
(PR https://github.com/yt-dlp/yt-dlp/pull/844)
Authored by: octotherp
This commit is contained in:
parent
0700fde640
commit
cc179df346
|
@ -1,3 +1,4 @@
|
||||||
|
# coding: utf-8
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import itertools
|
import itertools
|
||||||
|
@ -23,7 +24,7 @@ from ..utils import (
|
||||||
|
|
||||||
|
|
||||||
class XHamsterIE(InfoExtractor):
|
class XHamsterIE(InfoExtractor):
|
||||||
_DOMAINS = r'(?:xhamster\.(?:com|one|desi)|xhms\.pro|xhamster\d+\.com)'
|
_DOMAINS = r'(?:xhamster\.(?:com|one|desi)|xhms\.pro|xhamster\d+\.com|xhday\.com)'
|
||||||
_VALID_URL = r'''(?x)
|
_VALID_URL = r'''(?x)
|
||||||
https?://
|
https?://
|
||||||
(?:.+?\.)?%s/
|
(?:.+?\.)?%s/
|
||||||
|
@ -34,7 +35,7 @@ class XHamsterIE(InfoExtractor):
|
||||||
''' % _DOMAINS
|
''' % _DOMAINS
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
'url': 'https://xhamster.com/videos/femaleagent-shy-beauty-takes-the-bait-1509445',
|
'url': 'https://xhamster.com/videos/femaleagent-shy-beauty-takes-the-bait-1509445',
|
||||||
'md5': '98b4687efb1ffd331c4197854dc09e8f',
|
'md5': '34e1ab926db5dc2750fed9e1f34304bb',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': '1509445',
|
'id': '1509445',
|
||||||
'display_id': 'femaleagent-shy-beauty-takes-the-bait',
|
'display_id': 'femaleagent-shy-beauty-takes-the-bait',
|
||||||
|
@ -43,6 +44,7 @@ class XHamsterIE(InfoExtractor):
|
||||||
'timestamp': 1350194821,
|
'timestamp': 1350194821,
|
||||||
'upload_date': '20121014',
|
'upload_date': '20121014',
|
||||||
'uploader': 'Ruseful2011',
|
'uploader': 'Ruseful2011',
|
||||||
|
'uploader_id': 'ruseful2011',
|
||||||
'duration': 893,
|
'duration': 893,
|
||||||
'age_limit': 18,
|
'age_limit': 18,
|
||||||
},
|
},
|
||||||
|
@ -72,6 +74,7 @@ class XHamsterIE(InfoExtractor):
|
||||||
'timestamp': 1454948101,
|
'timestamp': 1454948101,
|
||||||
'upload_date': '20160208',
|
'upload_date': '20160208',
|
||||||
'uploader': 'parejafree',
|
'uploader': 'parejafree',
|
||||||
|
'uploader_id': 'parejafree',
|
||||||
'duration': 72,
|
'duration': 72,
|
||||||
'age_limit': 18,
|
'age_limit': 18,
|
||||||
},
|
},
|
||||||
|
@ -117,6 +120,9 @@ class XHamsterIE(InfoExtractor):
|
||||||
}, {
|
}, {
|
||||||
'url': 'http://de.xhamster.com/videos/skinny-girl-fucks-herself-hard-in-the-forest-xhnBJZx',
|
'url': 'http://de.xhamster.com/videos/skinny-girl-fucks-herself-hard-in-the-forest-xhnBJZx',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
|
}, {
|
||||||
|
'url': 'https://xhday.com/videos/strapless-threesome-xhh7yVf',
|
||||||
|
'only_matching': True,
|
||||||
}]
|
}]
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
|
@ -245,6 +251,7 @@ class XHamsterIE(InfoExtractor):
|
||||||
else:
|
else:
|
||||||
categories = None
|
categories = None
|
||||||
|
|
||||||
|
uploader_url = url_or_none(try_get(video, lambda x: x['author']['pageURL']))
|
||||||
return {
|
return {
|
||||||
'id': video_id,
|
'id': video_id,
|
||||||
'display_id': display_id,
|
'display_id': display_id,
|
||||||
|
@ -253,6 +260,8 @@ class XHamsterIE(InfoExtractor):
|
||||||
'timestamp': int_or_none(video.get('created')),
|
'timestamp': int_or_none(video.get('created')),
|
||||||
'uploader': try_get(
|
'uploader': try_get(
|
||||||
video, lambda x: x['author']['name'], compat_str),
|
video, lambda x: x['author']['name'], compat_str),
|
||||||
|
'uploader_url': uploader_url,
|
||||||
|
'uploader_id': uploader_url.split('/')[-1] if uploader_url else None,
|
||||||
'thumbnail': video.get('thumbURL'),
|
'thumbnail': video.get('thumbURL'),
|
||||||
'duration': int_or_none(video.get('duration')),
|
'duration': int_or_none(video.get('duration')),
|
||||||
'view_count': int_or_none(video.get('views')),
|
'view_count': int_or_none(video.get('views')),
|
||||||
|
@ -261,7 +270,7 @@ class XHamsterIE(InfoExtractor):
|
||||||
'dislike_count': int_or_none(try_get(
|
'dislike_count': int_or_none(try_get(
|
||||||
video, lambda x: x['rating']['dislikes'], int)),
|
video, lambda x: x['rating']['dislikes'], int)),
|
||||||
'comment_count': int_or_none(video.get('views')),
|
'comment_count': int_or_none(video.get('views')),
|
||||||
'age_limit': age_limit,
|
'age_limit': age_limit if age_limit is not None else 18,
|
||||||
'categories': categories,
|
'categories': categories,
|
||||||
'formats': formats,
|
'formats': formats,
|
||||||
}
|
}
|
||||||
|
@ -352,6 +361,7 @@ class XHamsterIE(InfoExtractor):
|
||||||
'description': description,
|
'description': description,
|
||||||
'upload_date': upload_date,
|
'upload_date': upload_date,
|
||||||
'uploader': uploader,
|
'uploader': uploader,
|
||||||
|
'uploader_id': uploader.lower() if uploader else None,
|
||||||
'thumbnail': thumbnail,
|
'thumbnail': thumbnail,
|
||||||
'duration': duration,
|
'duration': duration,
|
||||||
'view_count': view_count,
|
'view_count': view_count,
|
||||||
|
@ -420,6 +430,9 @@ class XHamsterUserIE(InfoExtractor):
|
||||||
'id': 'firatkaan',
|
'id': 'firatkaan',
|
||||||
},
|
},
|
||||||
'playlist_mincount': 1,
|
'playlist_mincount': 1,
|
||||||
|
}, {
|
||||||
|
'url': 'https://xhday.com/users/mobhunter',
|
||||||
|
'only_matching': True,
|
||||||
}]
|
}]
|
||||||
|
|
||||||
def _entries(self, user_id):
|
def _entries(self, user_id):
|
||||||
|
|
Loading…
Reference in New Issue