[ted] Simplify embed code (#2587)

This commit is contained in:
Philipp Hagemeister 2014-03-20 16:33:23 +01:00
parent 2bd9efd4c2
commit aab74fa106
2 changed files with 19 additions and 4 deletions

View file

@ -159,6 +159,18 @@ class GenericIE(InfoExtractor):
# m3u8 download # m3u8 download
'skip_download': True, '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',
}
} }
] ]

View file

@ -11,7 +11,9 @@ from ..utils import (
class TEDIE(SubtitlesInfoExtractor): 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 (?P<type_playlist>playlists(?:/\d+)?) # We have a playlist
| |
@ -19,6 +21,7 @@ class TEDIE(SubtitlesInfoExtractor):
) )
(/lang/(.*?))? # The url may contain the language (/lang/(.*?))? # The url may contain the language
/(?P<name>\w+) # Here goes the name and then ".html" /(?P<name>\w+) # Here goes the name and then ".html"
.*)$
''' '''
_TEST = { _TEST = {
'url': 'http://www.ted.com/talks/dan_dennett_on_our_consciousness.html', 'url': 'http://www.ted.com/talks/dan_dennett_on_our_consciousness.html',
@ -48,9 +51,9 @@ class TEDIE(SubtitlesInfoExtractor):
def _real_extract(self, url): def _real_extract(self, url):
m = re.match(self._VALID_URL, url, re.VERBOSE) m = re.match(self._VALID_URL, url, re.VERBOSE)
if m.group('type') == 'embed': # if the _VALID_URL is an embed if m.group('type') == 'embed':
desktop_url = re.sub("embed", "www", url) desktop_url = m.group('proto') + 'www' + m.group('urlmain')
return self.url_result(desktop_url, 'TED') # pass the desktop version to the extractor return self.url_result(desktop_url, 'TED')
name = m.group('name') name = m.group('name')
if m.group('type_talk'): if m.group('type_talk'):
return self._talk_info(url, name) return self._talk_info(url, name)