|
|
|
@ -13,6 +13,7 @@ from ..utils import (
|
|
|
|
|
xpath_attr,
|
|
|
|
|
update_url_query,
|
|
|
|
|
ExtractorError,
|
|
|
|
|
strip_or_none,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -163,17 +164,21 @@ class TurnerBaseIE(AdobePassIE):
|
|
|
|
|
'height': int_or_none(image.get('height')),
|
|
|
|
|
} for image in video_data.findall('images/image')]
|
|
|
|
|
|
|
|
|
|
is_live = xpath_text(video_data, 'isLive') == 'true'
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
'id': video_id,
|
|
|
|
|
'title': title,
|
|
|
|
|
'title': self._live_title(title) if is_live else title,
|
|
|
|
|
'formats': formats,
|
|
|
|
|
'subtitles': subtitles,
|
|
|
|
|
'thumbnails': thumbnails,
|
|
|
|
|
'description': xpath_text(video_data, 'description'),
|
|
|
|
|
'thumbnail': xpath_text(video_data, 'poster'),
|
|
|
|
|
'description': strip_or_none(xpath_text(video_data, 'description')),
|
|
|
|
|
'duration': parse_duration(xpath_text(video_data, 'length') or xpath_text(video_data, 'trt')),
|
|
|
|
|
'timestamp': self._extract_timestamp(video_data),
|
|
|
|
|
'upload_date': xpath_attr(video_data, 'metas', 'version'),
|
|
|
|
|
'series': xpath_text(video_data, 'showTitle'),
|
|
|
|
|
'season_number': int_or_none(xpath_text(video_data, 'seasonNumber')),
|
|
|
|
|
'episode_number': int_or_none(xpath_text(video_data, 'episodeNumber')),
|
|
|
|
|
'is_live': is_live,
|
|
|
|
|
}
|
|
|
|
|