From 1bd838608fda2da789c8991ec7fc194ed5ec0a1f Mon Sep 17 00:00:00 2001 From: minusf Date: Fri, 20 Feb 2015 18:24:20 +0100 Subject: [PATCH 1/2] prefer 'code' to 'uri' if present --- youtube_dl/extractor/ted.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/youtube_dl/extractor/ted.py b/youtube_dl/extractor/ted.py index 10b3b706a..5e5322974 100644 --- a/youtube_dl/extractor/ted.py +++ b/youtube_dl/extractor/ted.py @@ -134,9 +134,13 @@ class TEDIE(SubtitlesInfoExtractor): if talk_info.get('external') is not None: self.to_screen('Found video from %s' % talk_info['external']['service']) + if 'code' in talk_info['external']: + ext_url = talk_info['external']['code'] + else: + ext_url = talk_info['external']['uri'] return { '_type': 'url', - 'url': talk_info['external']['uri'], + 'url': ext_url, } formats = [{ From a461a11989e147c30e3611005861cc63dcd16af3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergey=20M=E2=80=A4?= Date: Sat, 21 Feb 2015 00:14:38 +0600 Subject: [PATCH 2/2] [ted] Improve external video handling and add test --- youtube_dl/extractor/ted.py | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/youtube_dl/extractor/ted.py b/youtube_dl/extractor/ted.py index 5e5322974..59678399d 100644 --- a/youtube_dl/extractor/ted.py +++ b/youtube_dl/extractor/ted.py @@ -83,6 +83,22 @@ class TEDIE(SubtitlesInfoExtractor): 'params': { '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 = { @@ -132,15 +148,16 @@ class TEDIE(SubtitlesInfoExtractor): talk_info = self._extract_info(webpage)['talks'][0] - if talk_info.get('external') is not None: - self.to_screen('Found video from %s' % talk_info['external']['service']) - if 'code' in talk_info['external']: - ext_url = talk_info['external']['code'] - else: - ext_url = talk_info['external']['uri'] + external = talk_info.get('external') + if external: + service = external['service'] + self.to_screen('Found video from %s' % service) + ext_url = None + if service.lower() == 'youtube': + ext_url = external.get('code') return { '_type': 'url', - 'url': ext_url, + 'url': ext_url or external['uri'], } formats = [{