summary refs log tree commit diff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2020-12-26 21:16:55 +0700
committerSergey M․ <dstftw@gmail.com>2020-12-26 21:17:17 +0700
commit17e0f41d345b8cea7043b777bb68716219d3dc60 (patch)
treeec4cba3efb9dd3ed4ef78e6f12e3488c6f800dc8
parentb57b27ff8f442c134dd7e6245c4bfea829d770af (diff)
downloadyoutube-dl-17e0f41d345b8cea7043b777bb68716219d3dc60.tar.gz
youtube-dl-17e0f41d345b8cea7043b777bb68716219d3dc60.tar.xz
youtube-dl-17e0f41d345b8cea7043b777bb68716219d3dc60.zip
[pornhub] Fix review issues (closes #27393)
-rw-r--r--youtube_dl/extractor/pornhub.py22
1 files changed, 11 insertions, 11 deletions
diff --git a/youtube_dl/extractor/pornhub.py b/youtube_dl/extractor/pornhub.py
index 3b6498964..21ec48895 100644
--- a/youtube_dl/extractor/pornhub.py
+++ b/youtube_dl/extractor/pornhub.py
@@ -288,15 +288,13 @@ class PornHubIE(PornHubBaseIE):
             video_urls.append((v_url, None))
             video_urls_set.add(v_url)
 
-        def parse_quality_items(js_str):
-            if (url_or_none(js_str)):
-                return js_str
-            media_definitions = self._parse_json(js_str, video_id, fatal=False)
-            if isinstance(media_definitions, list):
-                for definition in media_definitions:
-                    if not isinstance(definition, dict):
-                        continue
-                    add_video_url(definition.get('url'))
+        def parse_quality_items(quality_items):
+            q_items = self._parse_json(quality_items, video_id, fatal=False)
+            if not isinstance(q_items, list):
+                return
+            for item in q_items:
+                if isinstance(item, dict):
+                    add_video_url(item.get('url'))
 
         if not video_urls:
             FORMAT_PREFIXES = ('media', 'quality', 'qualityItems')
@@ -305,8 +303,10 @@ class PornHubIE(PornHubBaseIE):
                 default=None)
             if js_vars:
                 for key, format_url in js_vars.items():
-                    if any(key.startswith(p) for p in FORMAT_PREFIXES):
-                        add_video_url(parse_quality_items(format_url))
+                    if key.startswith(FORMAT_PREFIXES[-1]):
+                        parse_quality_items(format_url)
+                    elif any(key.startswith(p) for p in FORMAT_PREFIXES[:2]):
+                        add_video_url(format_url)
             if not video_urls and re.search(
                     r'<[^>]+\bid=["\']lockedPlayer', webpage):
                 raise ExtractorError(