Browse Source

[9c9media] improve info extraction

Remita Amine 4 years ago
parent
commit
1d3cd29730
1 changed files with 9 additions and 7 deletions
  1. 9 7
      youtube_dl/extractor/ninecninemedia.py

+ 9 - 7
youtube_dl/extractor/ninecninemedia.py

@@ -5,10 +5,11 @@ import re
 
 
 from .common import InfoExtractor
 from .common import InfoExtractor
 from ..utils import (
 from ..utils import (
-    parse_iso8601,
-    float_or_none,
     ExtractorError,
     ExtractorError,
+    float_or_none,
     int_or_none,
     int_or_none,
+    parse_iso8601,
+    try_get,
 )
 )
 
 
 
 
@@ -35,7 +36,7 @@ class NineCNineMediaIE(InfoExtractor):
                 '$include': '[HasClosedCaptions]',
                 '$include': '[HasClosedCaptions]',
             })
             })
 
 
-        if content_package.get('Constraints', {}).get('Security', {}).get('Type'):
+        if try_get(content_package, lambda x: x['Constraints']['Security']['Type']):
             raise ExtractorError('This video is DRM protected.', expected=True)
             raise ExtractorError('This video is DRM protected.', expected=True)
 
 
         manifest_base_url = content_package_url + 'manifest.'
         manifest_base_url = content_package_url + 'manifest.'
@@ -52,7 +53,7 @@ class NineCNineMediaIE(InfoExtractor):
         self._sort_formats(formats)
         self._sort_formats(formats)
 
 
         thumbnails = []
         thumbnails = []
-        for image in content.get('Images', []):
+        for image in (content.get('Images') or []):
             image_url = image.get('Url')
             image_url = image.get('Url')
             if not image_url:
             if not image_url:
                 continue
                 continue
@@ -70,7 +71,7 @@ class NineCNineMediaIE(InfoExtractor):
                     continue
                     continue
                 container.append(e_name)
                 container.append(e_name)
 
 
-        season = content.get('Season', {})
+        season = content.get('Season') or {}
 
 
         info = {
         info = {
             'id': content_id,
             'id': content_id,
@@ -79,13 +80,14 @@ class NineCNineMediaIE(InfoExtractor):
             'timestamp': parse_iso8601(content.get('BroadcastDateTime')),
             'timestamp': parse_iso8601(content.get('BroadcastDateTime')),
             'episode_number': int_or_none(content.get('Episode')),
             'episode_number': int_or_none(content.get('Episode')),
             'season': season.get('Name'),
             'season': season.get('Name'),
-            'season_number': season.get('Number'),
+            'season_number': int_or_none(season.get('Number')),
             'season_id': season.get('Id'),
             'season_id': season.get('Id'),
-            'series': content.get('Media', {}).get('Name'),
+            'series': try_get(content, lambda x: x['Media']['Name']),
             'tags': tags,
             'tags': tags,
             'categories': categories,
             'categories': categories,
             'duration': float_or_none(content_package.get('Duration')),
             'duration': float_or_none(content_package.get('Duration')),
             'formats': formats,
             'formats': formats,
+            'thumbnails': thumbnails,
         }
         }
 
 
         if content_package.get('HasClosedCaptions'):
         if content_package.get('HasClosedCaptions'):