summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorSergey M․ <[email protected]>2020-09-19 06:34:34 +0700
committerSergey M․ <[email protected]>2020-09-19 06:34:34 +0700
commitcd85a1bb8b24eaf6a421a32a985d4c3ad4f80597 (patch)
treea027f18f295082e37eb95b2ec434bbac9b5dc862
parentce5b904050b4610bac6d99673bbe9181a3af3db5 (diff)
downloadyoutube-dl-cd85a1bb8b24eaf6a421a32a985d4c3ad4f80597.tar.gz
youtube-dl-cd85a1bb8b24eaf6a421a32a985d4c3ad4f80597.zip
[pornhub] Extract metadata from JSON-LD (closes #26614)
-rw-r--r--youtube_dl/extractor/pornhub.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/youtube_dl/extractor/pornhub.py b/youtube_dl/extractor/pornhub.py
index c64c870dc..529f3f711 100644
--- a/youtube_dl/extractor/pornhub.py
+++ b/youtube_dl/extractor/pornhub.py
@@ -17,6 +17,7 @@ from ..utils import (
determine_ext,
ExtractorError,
int_or_none,
+ merge_dicts,
NO_DEFAULT,
orderedSet,
remove_quotes,
@@ -59,13 +60,14 @@ class PornHubIE(PornHubBaseIE):
'''
_TESTS = [{
'url': 'http://www.pornhub.com/view_video.php?viewkey=648719015',
- 'md5': '1e19b41231a02eba417839222ac9d58e',
+ 'md5': 'a6391306d050e4547f62b3f485dd9ba9',
'info_dict': {
'id': '648719015',
'ext': 'mp4',
'title': 'Seductive Indian beauty strips down and fingers her pink pussy',
'uploader': 'Babes',
'upload_date': '20130628',
+ 'timestamp': 1372447216,
'duration': 361,
'view_count': int,
'like_count': int,
@@ -82,8 +84,8 @@ class PornHubIE(PornHubBaseIE):
'id': '1331683002',
'ext': 'mp4',
'title': '重庆婷婷女王足交',
- 'uploader': 'Unknown',
'upload_date': '20150213',
+ 'timestamp': 1423804862,
'duration': 1753,
'view_count': int,
'like_count': int,
@@ -121,6 +123,7 @@ class PornHubIE(PornHubBaseIE):
'params': {
'skip_download': True,
},
+ 'skip': 'This video has been disabled',
}, {
'url': 'http://www.pornhub.com/view_video.php?viewkey=ph557bbb6676d2d',
'only_matching': True,
@@ -338,7 +341,7 @@ class PornHubIE(PornHubBaseIE):
video_uploader = self._html_search_regex(
r'(?s)From:&nbsp;.+?<(?:a\b[^>]+\bhref=["\']/(?:(?:user|channel)s|model|pornstar)/|span\b[^>]+\bclass=["\']username)[^>]+>(.+?)<',
- webpage, 'uploader', fatal=False)
+ webpage, 'uploader', default=None)
view_count = self._extract_count(
r'<span class="count">([\d,\.]+)</span> [Vv]iews', webpage, 'view')
@@ -356,7 +359,11 @@ class PornHubIE(PornHubBaseIE):
if div:
return re.findall(r'<a[^>]+\bhref=[^>]+>([^<]+)', div)
- return {
+ info = self._search_json_ld(webpage, video_id, default={})
+ # description provided in JSON-LD is irrelevant
+ info['description'] = None
+
+ return merge_dicts({
'id': video_id,
'uploader': video_uploader,
'upload_date': upload_date,
@@ -372,7 +379,7 @@ class PornHubIE(PornHubBaseIE):
'tags': extract_list('tags'),
'categories': extract_list('categories'),
'subtitles': subtitles,
- }
+ }, info)
class PornHubPlaylistBaseIE(PornHubBaseIE):