[arte:+7] Look for json vp url in iframe (Closes #6895)
authorSergey M․ <dstftw@gmail.com>
Sun, 20 Sep 2015 05:45:19 +0000 (11:45 +0600)
committerSergey M․ <dstftw@gmail.com>
Sun, 20 Sep 2015 05:45:19 +0000 (11:45 +0600)
youtube_dl/extractor/arte.py

index 76de244774369dd53c510961ecf6b6a7641c7027..9ecb6786c240c9999a93d835cbad8e43f1001ef2 100644 (file)
@@ -4,6 +4,10 @@ from __future__ import unicode_literals
 import re
 
 from .common import InfoExtractor
+from ..compat import (
+    compat_parse_qs,
+    compat_urllib_parse_urlparse,
+)
 from ..utils import (
     find_xpath_attr,
     unified_strdate,
@@ -77,7 +81,13 @@ class ArteTVPlus7IE(InfoExtractor):
     def _extract_from_webpage(self, webpage, video_id, lang):
         json_url = self._html_search_regex(
             [r'arte_vp_url=["\'](.*?)["\']', r'data-url=["\']([^"]+)["\']'],
-            webpage, 'json vp url')
+            webpage, 'json vp url', default=None)
+        if not json_url:
+            iframe_url = self._html_search_regex(
+                r'<iframe[^>]+src=(["\'])(?P<url>.+\bjson_url=.+?)\1',
+                webpage, 'iframe url', group='iframe url')
+            json_url = compat_parse_qs(
+                compat_urllib_parse_urlparse(iframe_url).query)['json_url'][0]
         return self._extract_from_json_url(json_url, video_id, lang)
 
     def _extract_from_json_url(self, json_url, video_id, lang):