diff options
| -rw-r--r-- | youtube_dl/extractor/generic.py | 12 | ||||
| -rw-r--r-- | youtube_dl/extractor/ted.py | 11 | 
2 files changed, 19 insertions, 4 deletions
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 273a3e282..8065b5611 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -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', +            }          }      ] diff --git a/youtube_dl/extractor/ted.py b/youtube_dl/extractor/ted.py index aab026936..ad1a46c33 100644 --- a/youtube_dl/extractor/ted.py +++ b/youtube_dl/extractor/ted.py @@ -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)  | 
