mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-01-07 17:16:08 +00:00
[9c9media] improve info extraction
This commit is contained in:
parent
4ef1fc9707
commit
1d3cd29730
|
@ -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'):
|
||||||
|
|
Loading…
Reference in a new issue