X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fcbsnews.py;h=8ddcc5097e3bb7b83392e056080846daaab30924;hb=0d769bcb781b46a00ddf958d6ea945560f2d6cd5;hp=8f864699f93675afe2ce00db21a13c4110bff46b;hpb=66159b38aad38d55f84a358a0c2ed2add9a2946d;p=youtube-dl.git diff --git a/youtube_dl/extractor/cbsnews.py b/youtube_dl/extractor/cbsnews.py index 8f864699f..8ddcc5097 100644 --- a/youtube_dl/extractor/cbsnews.py +++ b/youtube_dl/extractor/cbsnews.py @@ -3,7 +3,10 @@ from __future__ import unicode_literals from .common import InfoExtractor from .theplatform import ThePlatformIE -from ..utils import parse_duration +from ..utils import ( + parse_duration, + find_xpath_attr, +) class CBSNewsIE(ThePlatformIE): @@ -46,6 +49,15 @@ class CBSNewsIE(ThePlatformIE): }, ] + def _parse_smil_subtitles(self, smil, namespace=None, subtitles_lang='en'): + closed_caption_e = find_xpath_attr(smil, self._xpath_ns('.//param', namespace), 'name', 'ClosedCaptionURL') + return { + 'en': [{ + 'ext': 'ttml', + 'url': closed_caption_e.attrib['value'], + }] + } if closed_caption_e is not None and closed_caption_e.attrib.get('value') else [] + def _real_extract(self, url): video_id = self._match_id(url) @@ -61,18 +73,12 @@ class CBSNewsIE(ThePlatformIE): thumbnail = item.get('mediaImage') or item.get('thumbnail') subtitles = {} - if 'mpxRefId' in video_info: - subtitles['en'] = [{ - 'ext': 'ttml', - 'url': 'http://www.cbsnews.com/videos/captions/%s.adb_xml' % video_info['mpxRefId'], - }] - formats = [] for format_id in ['RtmpMobileLow', 'RtmpMobileHigh', 'Hls', 'RtmpDesktop']: pid = item.get('media' + format_id) if not pid: continue - release_url = 'http://link.theplatform.com/s/dJ5BDC/%s?format=SMIL&mbr=true' % pid + release_url = 'http://link.theplatform.com/s/dJ5BDC/%s?mbr=true' % pid tp_formats, tp_subtitles = self._extract_theplatform_smil(release_url, video_id, 'Downloading %s SMIL data' % pid) formats.extend(tp_formats) subtitles = self._merge_subtitles(subtitles, tp_subtitles)