[youtube] Fix extraction.
[youtube-dl] / youtube_dl / extractor / skynewsarabia.py
index 3499b8cd5dc2a90497acdfe8557015f699ae9e7f..fffc9aa2277e3a0f35d24c585eec5be1e59d5c17 100644 (file)
@@ -9,7 +9,7 @@ from ..utils import (
 )
 
 
-class SkyNewArabiaBaseIE(InfoExtractor):
+class SkyNewsArabiaBaseIE(InfoExtractor):
     _IMAGE_BASE_URL = 'http://www.skynewsarabia.com/web/images'
 
     def _call_api(self, path, value):
@@ -23,6 +23,7 @@ class SkyNewArabiaBaseIE(InfoExtractor):
 
     def _extract_video_info(self, video_data):
         video_id = compat_str(video_data['id'])
+        topic = video_data.get('topicTitle')
         return {
             '_type': 'url_transparent',
             'url': 'limelight:media:%s' % self._get_limelight_media_id(video_data['videoUrl'][0]['url']),
@@ -32,15 +33,15 @@ class SkyNewArabiaBaseIE(InfoExtractor):
             'thumbnail': self._get_image_url(video_data['mediaAsset']['imageUrl']),
             'timestamp': parse_iso8601(video_data.get('date')),
             'duration': parse_duration(video_data.get('runTime')),
-            'tags': video_data.get('tags'),
-            'categories': [video_data.get('topicTitle')],
+            'tags': video_data.get('tags', []),
+            'categories': [topic] if topic else [],
             'webpage_url': 'http://www.skynewsarabia.com/web/video/%s' % video_id,
             'ie_key': 'LimelightMedia',
         }
 
 
-class SkyNewsArabiaIE(SkyNewArabiaBaseIE):
-    _IE_NAME = 'skynewsarabia:video'
+class SkyNewsArabiaIE(SkyNewsArabiaBaseIE):
+    IE_NAME = 'skynewsarabia:video'
     _VALID_URL = r'https?://(?:www\.)?skynewsarabia\.com/web/video/(?P<id>[0-9]+)'
     _TEST = {
         'url': 'http://www.skynewsarabia.com/web/video/794902/%D9%86%D8%B5%D9%81-%D9%85%D9%84%D9%8A%D9%88%D9%86-%D9%85%D8%B5%D8%A8%D8%A7%D8%AD-%D8%B4%D8%AC%D8%B1%D8%A9-%D9%83%D8%B1%D9%8A%D8%B3%D9%85%D8%A7%D8%B3',
@@ -65,8 +66,8 @@ class SkyNewsArabiaIE(SkyNewArabiaBaseIE):
         return self._extract_video_info(video_data)
 
 
-class SkyNewsArabiaArticleIE(SkyNewArabiaBaseIE):
-    _IE_NAME = 'skynewsarabia:video'
+class SkyNewsArabiaArticleIE(SkyNewsArabiaBaseIE):
+    IE_NAME = 'skynewsarabia:article'
     _VALID_URL = r'https?://(?:www\.)?skynewsarabia\.com/web/article/(?P<id>[0-9]+)'
     _TESTS = [{
         'url': 'http://www.skynewsarabia.com/web/article/794549/%D8%A7%D9%94%D8%AD%D8%AF%D8%A7%D8%AB-%D8%A7%D9%84%D8%B4%D8%B1%D9%82-%D8%A7%D9%84%D8%A7%D9%94%D9%88%D8%B3%D8%B7-%D8%AE%D8%B1%D9%8A%D8%B7%D8%A9-%D8%A7%D9%84%D8%A7%D9%94%D9%84%D8%B9%D8%A7%D8%A8-%D8%A7%D9%84%D8%B0%D9%83%D9%8A%D8%A9',
@@ -98,6 +99,7 @@ class SkyNewsArabiaArticleIE(SkyNewArabiaBaseIE):
         article_data = self._call_api('article', article_id)
         media_asset = article_data['mediaAsset']
         if media_asset['type'] == 'VIDEO':
+            topic = article_data.get('topicTitle')
             return {
                 '_type': 'url_transparent',
                 'url': 'limelight:media:%s' % self._get_limelight_media_id(media_asset['videoUrl'][0]['url']),
@@ -106,8 +108,8 @@ class SkyNewsArabiaArticleIE(SkyNewArabiaBaseIE):
                 'description': article_data.get('summary'),
                 'thumbnail': self._get_image_url(media_asset['imageUrl']),
                 'timestamp': parse_iso8601(article_data.get('date')),
-                'tags': article_data.get('tags'),
-                'categories': [article_data.get('topicTitle')],
+                'tags': article_data.get('tags', []),
+                'categories': [topic] if topic else [],
                 'webpage_url': url,
                 'ie_key': 'LimelightMedia',
             }