about summary refs log tree commit diff
path: root/youtube_dl/extractor/ted.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2015-02-21 00:14:38 +0600
committerSergey M․ <dstftw@gmail.com>2015-02-21 00:14:38 +0600
commita461a11989e147c30e3611005861cc63dcd16af3 (patch)
tree3edba0871a870f95c5055a9935892d2faf45f8b8 /youtube_dl/extractor/ted.py
parent1bd838608fda2da789c8991ec7fc194ed5ec0a1f (diff)
downloadyoutube-dl-a461a11989e147c30e3611005861cc63dcd16af3.tar.gz
youtube-dl-a461a11989e147c30e3611005861cc63dcd16af3.tar.xz
youtube-dl-a461a11989e147c30e3611005861cc63dcd16af3.zip
[ted] Improve external video handling and add test
Diffstat (limited to 'youtube_dl/extractor/ted.py')
-rw-r--r--youtube_dl/extractor/ted.py31
1 files 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 = [{