diff options
| author | Sergey M․ <dstftw@gmail.com> | 2015-02-21 00:14:38 +0600 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2015-02-21 00:14:38 +0600 | 
| commit | a461a11989e147c30e3611005861cc63dcd16af3 (patch) | |
| tree | 3edba0871a870f95c5055a9935892d2faf45f8b8 | |
| parent | 1bd838608fda2da789c8991ec7fc194ed5ec0a1f (diff) | |
[ted] Improve external video handling and add test
| -rw-r--r-- | youtube_dl/extractor/ted.py | 31 | 
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 = [{  | 
