projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f413472
)
[pornhub] Improve locked videos detection (closes #22449, closes #22780)
author
Sergey M․
<dstftw@gmail.com>
Tue, 31 Dec 2019 16:43:43 +0000
(23:43 +0700)
committer
Sergey M․
<dstftw@gmail.com>
Tue, 31 Dec 2019 16:43:43 +0000
(23:43 +0700)
youtube_dl/extractor/pornhub.py
patch
|
blob
|
history
diff --git
a/youtube_dl/extractor/pornhub.py
b/youtube_dl/extractor/pornhub.py
index 75ed69cde3db4c4116be3089f77f8f43f3205271..b3251ccd9b2300188f7efce561c3c5d1fbff702e 100644
(file)
--- 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,
determine_ext,
ExtractorError,
int_or_none,
+ NO_DEFAULT,
orderedSet,
remove_quotes,
str_to_int,
orderedSet,
remove_quotes,
str_to_int,
@@
-227,9
+228,9
@@
class PornHubIE(PornHubBaseIE):
else:
thumbnail, duration = [None] * 2
else:
thumbnail, duration = [None] * 2
- def extract_js_vars(webpage, pattern,
fatal=True
):
+ def extract_js_vars(webpage, pattern,
default=NO_DEFAULT
):
assignments = self._search_regex(
assignments = self._search_regex(
- pattern, webpage, 'encoded url',
fatal=fatal
)
+ pattern, webpage, 'encoded url',
default=default
)
if not assignments:
return {}
if not assignments:
return {}
@@
-270,11
+271,15
@@
class PornHubIE(PornHubBaseIE):
FORMAT_PREFIXES = ('media', 'quality')
js_vars = extract_js_vars(
webpage, r'(var\s+(?:%s)_.+)' % '|'.join(FORMAT_PREFIXES),
FORMAT_PREFIXES = ('media', 'quality')
js_vars = extract_js_vars(
webpage, r'(var\s+(?:%s)_.+)' % '|'.join(FORMAT_PREFIXES),
-
fatal=Fals
e)
+
default=Non
e)
if js_vars:
for key, format_url in js_vars.items():
if any(key.startswith(p) for p in FORMAT_PREFIXES):
add_video_url(format_url)
if js_vars:
for key, format_url in js_vars.items():
if any(key.startswith(p) for p in FORMAT_PREFIXES):
add_video_url(format_url)
+ if not video_urls and re.search(
+ r'<[^>]+\bid=["\']lockedPlayer', webpage):
+ raise ExtractorError(
+ 'Video %s is locked' % video_id, expected=True)
if not video_urls:
js_vars = extract_js_vars(
if not video_urls:
js_vars = extract_js_vars(