[ted] Simplify embed code (#2587)
authorPhilipp Hagemeister <phihag@phihag.de>
Thu, 20 Mar 2014 15:33:23 +0000 (16:33 +0100)
committerPhilipp Hagemeister <phihag@phihag.de>
Thu, 20 Mar 2014 15:33:23 +0000 (16:33 +0100)
youtube_dl/extractor/generic.py
youtube_dl/extractor/ted.py

index 273a3e282028081a397b94c5226f89645f248c91..8065b56117e34c929a2f33faebbe294c48e2def6 100644 (file)
@@ -159,6 +159,18 @@ class GenericIE(InfoExtractor):
                 # m3u8 download
                 'skip_download': True,
             },
+        },
+        # Embedded TED video
+        {
+            'url': 'http://en.support.wordpress.com/videos/ted-talks/',
+            'md5': 'deeeabcc1085eb2ba205474e7235a3d5',
+            'info_dict': {
+                'id': '981',
+                'ext': 'mp4',
+                'title': 'My web playroom',
+                'uploader': 'Ze Frank',
+                'description': 'md5:ddb2a40ecd6b6a147e400e535874947b',
+            }
         }
     ]
 
index aab026936bc542b7e333c09e28add575024c2cb1..ad1a46c3385713056b94d2f00e38558e8ea69b1c 100644 (file)
@@ -11,7 +11,9 @@ from ..utils import (
 
 
 class TEDIE(SubtitlesInfoExtractor):
-    _VALID_URL = r'''(?x)http://(?P<type>www|embed)\.ted\.com/
+    _VALID_URL = r'''(?x)
+        (?P<proto>https?://)
+        (?P<type>www|embed)(?P<urlmain>\.ted\.com/
         (
             (?P<type_playlist>playlists(?:/\d+)?) # We have a playlist
             |
@@ -19,6 +21,7 @@ class TEDIE(SubtitlesInfoExtractor):
         )
         (/lang/(.*?))? # The url may contain the language
         /(?P<name>\w+) # Here goes the name and then ".html"
+        .*)$
         '''
     _TEST = {
         'url': 'http://www.ted.com/talks/dan_dennett_on_our_consciousness.html',
@@ -48,9 +51,9 @@ class TEDIE(SubtitlesInfoExtractor):
 
     def _real_extract(self, url):
         m = re.match(self._VALID_URL, url, re.VERBOSE)
-        if m.group('type') == 'embed': # if the _VALID_URL is an embed 
-            desktop_url = re.sub("embed", "www", url) 
-            return self.url_result(desktop_url, 'TED') # pass the desktop version to the extractor
+        if m.group('type') == 'embed':
+            desktop_url = m.group('proto') + 'www' + m.group('urlmain')
+            return self.url_result(desktop_url, 'TED')
         name = m.group('name')
         if m.group('type_talk'):
             return self._talk_info(url, name)