X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fted.py;h=dfa1176a3e4e4eef333dcb829773c189bf9916ba;hb=f219743e33a9a640bfc3845d74282774e51e1ad4;hp=ccad1c7c2087b533712b62aedaed43abcfa0bf90;hpb=9fd5ce0cbe473b7f70246b09e7f480507d8d2acf;p=youtube-dl diff --git a/youtube_dl/extractor/ted.py b/youtube_dl/extractor/ted.py index ccad1c7c2..dfa1176a3 100644 --- a/youtube_dl/extractor/ted.py +++ b/youtube_dl/extractor/ted.py @@ -14,6 +14,15 @@ class TEDIE(InfoExtractor): (/lang/(.*?))? # The url may contain the language /(?P\w+) # Here goes the name and then ".html" ''' + _TEST = { + u'url': u'http://www.ted.com/talks/dan_dennett_on_our_consciousness.html', + u'file': u'102.mp4', + u'md5': u'2d76ee1576672e0bd8f187513267adf6', + u'info_dict': { + u"description": u"md5:c6fa72e6eedbd938c9caf6b2702f5922", + u"title": u"Dan Dennett: The illusion of consciousness" + } + } @classmethod def suitable(cls, url): @@ -58,7 +67,7 @@ class TEDIE(InfoExtractor): webpage = self._download_webpage(url, video_id, 'Downloading \"%s\" page' % video_name) self.report_extraction(video_name) # If the url includes the language we get the title translated - title = self._html_search_regex(r'(?P.*)</span>', + title = self._html_search_regex(r'<span .*?id="altHeadline".+?>(?P<title>.*)</span>', webpage, 'title') json_data = self._search_regex(r'<script.*?>var talkDetails = ({.*?})</script>', webpage, 'json data') @@ -68,12 +77,20 @@ class TEDIE(InfoExtractor): thumbnail = self._search_regex(r'</span>[\s.]*</div>[\s.]*<img src="(.*?)"', webpage, 'thumbnail') + formats = [{ + 'ext': 'mp4', + 'url': stream['file'], + 'format': stream['id'] + } for stream in info['htmlStreams']] info = { - 'id': info['id'], - 'url': info['htmlStreams'][-1]['file'], - 'ext': 'mp4', - 'title': title, - 'thumbnail': thumbnail, - 'description': desc, - } + 'id': info['id'], + 'title': title, + 'thumbnail': thumbnail, + 'description': desc, + 'formats': formats, + } + + # TODO: Remove when #980 has been merged + info.update(info['formats'][-1]) + return info