|
|
|
@ -123,6 +123,10 @@ class TEDIE(InfoExtractor):
|
|
|
|
|
'params': {
|
|
|
|
|
'skip_download': True,
|
|
|
|
|
},
|
|
|
|
|
}, {
|
|
|
|
|
# with own formats and private Youtube external
|
|
|
|
|
'url': 'https://www.ted.com/talks/spencer_wells_a_family_tree_for_humanity',
|
|
|
|
|
'only_matching': True,
|
|
|
|
|
}]
|
|
|
|
|
|
|
|
|
|
_NATIVE_FORMATS = {
|
|
|
|
@ -210,16 +214,6 @@ class TEDIE(InfoExtractor):
|
|
|
|
|
|
|
|
|
|
player_talk = talk_info['player_talks'][0]
|
|
|
|
|
|
|
|
|
|
external = player_talk.get('external')
|
|
|
|
|
if isinstance(external, dict):
|
|
|
|
|
service = external.get('service')
|
|
|
|
|
if isinstance(service, compat_str):
|
|
|
|
|
ext_url = None
|
|
|
|
|
if service.lower() == 'youtube':
|
|
|
|
|
ext_url = external.get('code')
|
|
|
|
|
|
|
|
|
|
return self.url_result(ext_url or external['uri'])
|
|
|
|
|
|
|
|
|
|
resources_ = player_talk.get('resources') or talk_info.get('resources')
|
|
|
|
|
|
|
|
|
|
http_url = None
|
|
|
|
@ -294,6 +288,16 @@ class TEDIE(InfoExtractor):
|
|
|
|
|
'vcodec': 'none',
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
if not formats:
|
|
|
|
|
external = player_talk.get('external')
|
|
|
|
|
if isinstance(external, dict):
|
|
|
|
|
service = external.get('service')
|
|
|
|
|
if isinstance(service, compat_str):
|
|
|
|
|
ext_url = None
|
|
|
|
|
if service.lower() == 'youtube':
|
|
|
|
|
ext_url = external.get('code')
|
|
|
|
|
return self.url_result(ext_url or external['uri'])
|
|
|
|
|
|
|
|
|
|
self._sort_formats(formats)
|
|
|
|
|
|
|
|
|
|
video_id = compat_str(talk_info['id'])
|
|
|
|
|