summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorPhilipp Hagemeister <[email protected]>2014-03-20 16:33:23 +0100
committerPhilipp Hagemeister <[email protected]>2014-03-20 16:33:23 +0100
commitaab74fa10655213c24c6f38a5b0c6b18049e737a (patch)
tree32d60f91f8560aec75921258737ab80a0b08733c
parent2bd9efd4c2227a2a9a93e0f1d15ad8fa89d33867 (diff)
downloadyoutube-dl-aab74fa10655213c24c6f38a5b0c6b18049e737a.tar.gz
youtube-dl-aab74fa10655213c24c6f38a5b0c6b18049e737a.zip
[ted] Simplify embed code (#2587)
-rw-r--r--youtube_dl/extractor/generic.py12
-rw-r--r--youtube_dl/extractor/ted.py11
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)