Merge branch 'srgssr' of https://github.com/remitamine/youtube-dl into remitamine...
[youtube-dl] / youtube_dl / extractor / democracynow.py
index 824b8e2c5c6251960f26fdb049f9d033c9f00a45..6cd395e1169d8253c589efe3da2d24f1632b0356 100644 (file)
@@ -17,6 +17,7 @@ class DemocracynowIE(InfoExtractor):
     IE_NAME = 'democracynow'
     _TESTS = [{
         'url': 'http://www.democracynow.org/shows/2015/7/3',
+        'md5': 'fbb8fe3d7a56a5e12431ce2f9b2fab0d',
         'info_dict': {
             'id': '2015-0703-001',
             'ext': 'mp4',
@@ -25,6 +26,7 @@ class DemocracynowIE(InfoExtractor):
         },
     }, {
         'url': 'http://www.democracynow.org/2015/7/3/this_flag_comes_down_today_bree',
+        'md5': 'fbb8fe3d7a56a5e12431ce2f9b2fab0d',
         'info_dict': {
             'id': '2015-0703-001',
             'ext': 'mp4',
@@ -38,7 +40,7 @@ class DemocracynowIE(InfoExtractor):
         webpage = self._download_webpage(url, display_id)
         description = self._og_search_description(webpage)
 
-        js = self._parse_json(self._search_regex(
+        json_data = self._parse_json(self._search_regex(
             r'<script[^>]+type="text/json"[^>]*>\s*({[^>]+})', webpage, 'json'),
             display_id)
         video_id = None
@@ -54,19 +56,19 @@ class DemocracynowIE(InfoExtractor):
             subtitles[lang].append(info_dict)
 
         # chapter_file are not subtitles
-        if 'caption_file' in js:
+        if 'caption_file' in json_data:
             add_subtitle_item(default_lang, {
-                'url': compat_urlparse.urljoin(url, js['caption_file']),
+                'url': compat_urlparse.urljoin(url, json_data['caption_file']),
             })
 
-        for subtitle_item in js.get('captions', []):
+        for subtitle_item in json_data.get('captions', []):
             lang = subtitle_item.get('language', '').lower() or default_lang
             add_subtitle_item(lang, {
                 'url': compat_urlparse.urljoin(url, subtitle_item['url']),
             })
 
         for key in ('file', 'audio', 'video'):
-            media_url = js.get(key, '')
+            media_url = json_data.get(key, '')
             if not media_url:
                 continue
             media_url = re.sub(r'\?.*', '', compat_urlparse.urljoin(url, media_url))
@@ -78,8 +80,8 @@ class DemocracynowIE(InfoExtractor):
         self._sort_formats(formats)
 
         return {
-            'id': video_id,
-            'title': js.get('title'),
+            'id': video_id or display_id,
+            'title': json_data['title'],
             'description': description,
             'subtitles': subtitles,
             'formats': formats,