]> git.bitcoin.ninja Git - youtube-dl/blobdiff - youtube_dl/extractor/ted.py
prefer 'code' to 'uri' if present
[youtube-dl] / youtube_dl / extractor / ted.py
index 944177426d5d719d152d3474f5b059410cb27955..5e53229740315a56ccb992be9b6b0d7e5e6cf66e 100644 (file)
@@ -13,7 +13,7 @@ from ..compat import (
 class TEDIE(SubtitlesInfoExtractor):
     _VALID_URL = r'''(?x)
         (?P<proto>https?://)
-        (?P<type>www|embed)(?P<urlmain>\.ted\.com/
+        (?P<type>www|embed(?:-ssl)?)(?P<urlmain>\.ted\.com/
         (
             (?P<type_playlist>playlists(?:/\d+)?) # We have a playlist
             |
@@ -98,7 +98,7 @@ class TEDIE(SubtitlesInfoExtractor):
 
     def _real_extract(self, url):
         m = re.match(self._VALID_URL, url, re.VERBOSE)
-        if m.group('type') == 'embed':
+        if m.group('type').startswith('embed'):
             desktop_url = m.group('proto') + 'www' + m.group('urlmain')
             return self.url_result(desktop_url, 'TED')
         name = m.group('name')
@@ -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 = [{