commit: 1d3cd2973041afb42d9e903735a0fcee7bd8c447
parent 4ef1fc970727a1bbdd9f20bea54c37deb8794fb0
Author: Remita Amine <remitamine@gmail.com>
Date: Thu, 24 Dec 2020 17:39:13 +0100
[9c9media] improve info extraction
Diffstat:
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/youtube_dl/extractor/ninecninemedia.py b/youtube_dl/extractor/ninecninemedia.py
@@ -5,10 +5,11 @@ import re
from .common import InfoExtractor
from ..utils import (
- parse_iso8601,
- float_or_none,
ExtractorError,
+ float_or_none,
int_or_none,
+ parse_iso8601,
+ try_get,
)
@@ -35,7 +36,7 @@ class NineCNineMediaIE(InfoExtractor):
'$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)
manifest_base_url = content_package_url + 'manifest.'
@@ -52,7 +53,7 @@ class NineCNineMediaIE(InfoExtractor):
self._sort_formats(formats)
thumbnails = []
- for image in content.get('Images', []):
+ for image in (content.get('Images') or []):
image_url = image.get('Url')
if not image_url:
continue
@@ -70,7 +71,7 @@ class NineCNineMediaIE(InfoExtractor):
continue
container.append(e_name)
- season = content.get('Season', {})
+ season = content.get('Season') or {}
info = {
'id': content_id,
@@ -79,13 +80,14 @@ class NineCNineMediaIE(InfoExtractor):
'timestamp': parse_iso8601(content.get('BroadcastDateTime')),
'episode_number': int_or_none(content.get('Episode')),
'season': season.get('Name'),
- 'season_number': season.get('Number'),
+ 'season_number': int_or_none(season.get('Number')),
'season_id': season.get('Id'),
- 'series': content.get('Media', {}).get('Name'),
+ 'series': try_get(content, lambda x: x['Media']['Name']),
'tags': tags,
'categories': categories,
'duration': float_or_none(content_package.get('Duration')),
'formats': formats,
+ 'thumbnails': thumbnails,
}
if content_package.get('HasClosedCaptions'):