[ted] Improve external video handling and add test

This commit is contained in:
Sergey M․ 2015-02-21 00:14:38 +06:00
parent 1bd838608f
commit a461a11989

View file

@ -83,6 +83,22 @@ class TEDIE(SubtitlesInfoExtractor):
'params': { 'params': {
'skip_download': True, 'skip_download': True,
}, },
}, {
# YouTube video
'url': 'http://www.ted.com/talks/jeffrey_kluger_the_sibling_bond',
'add_ie': ['Youtube'],
'info_dict': {
'id': 'aFBIPO-P7LM',
'ext': 'mp4',
'title': 'The hidden power of siblings: Jeff Kluger at TEDxAsheville',
'description': 'md5:3d7a4f50d95ca5dd67104e2a20f43fe1',
'uploader': 'TEDx Talks',
'uploader_id': 'TEDxTalks',
'upload_date': '20111216',
},
'params': {
'skip_download': True,
},
}] }]
_NATIVE_FORMATS = { _NATIVE_FORMATS = {
@ -132,15 +148,16 @@ def _talk_info(self, url, video_name):
talk_info = self._extract_info(webpage)['talks'][0] talk_info = self._extract_info(webpage)['talks'][0]
if talk_info.get('external') is not None: external = talk_info.get('external')
self.to_screen('Found video from %s' % talk_info['external']['service']) if external:
if 'code' in talk_info['external']: service = external['service']
ext_url = talk_info['external']['code'] self.to_screen('Found video from %s' % service)
else: ext_url = None
ext_url = talk_info['external']['uri'] if service.lower() == 'youtube':
ext_url = external.get('code')
return { return {
'_type': 'url', '_type': 'url',
'url': ext_url, 'url': ext_url or external['uri'],
} }
formats = [{ formats = [{