diff options
| -rw-r--r-- | youtube_dl/extractor/generic.py | 7 | ||||
| -rw-r--r-- | youtube_dl/extractor/ted.py | 5 | 
2 files changed, 11 insertions, 1 deletions
| diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 5a4933146..273a3e282 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -487,6 +487,13 @@ class GenericIE(InfoExtractor):          if mobj is None:              # Broaden the search a little bit: JWPlayer JS loader              mobj = re.search(r'[^A-Za-z0-9]?file["\']?:\s*["\'](http(?![^\'"]+\.[0-9]+[\'"])[^\'"]+)["\']', webpage) + +        # Look for embedded TED player +        mobj = re.search( +            r'<iframe[^>]+?src=(["\'])(?P<url>http://embed\.ted\.com/.+?)\1', webpage) +        if mobj is not None: +            return self.url_result(mobj.group('url'), 'TED') +          if mobj is None:              # Try to find twitter cards info              mobj = re.search(r'<meta (?:property|name)="twitter:player:stream" (?:content|value)="(.+?)"', webpage) diff --git a/youtube_dl/extractor/ted.py b/youtube_dl/extractor/ted.py index 3968b718e..aab026936 100644 --- a/youtube_dl/extractor/ted.py +++ b/youtube_dl/extractor/ted.py @@ -11,7 +11,7 @@ from ..utils import (  class TEDIE(SubtitlesInfoExtractor): -    _VALID_URL = r'''(?x)http://www\.ted\.com/ +    _VALID_URL = r'''(?x)http://(?P<type>www|embed)\.ted\.com/          (              (?P<type_playlist>playlists(?:/\d+)?) # We have a playlist              | @@ -48,6 +48,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          name = m.group('name')          if m.group('type_talk'):              return self._talk_info(url, name) | 
