X-Git-Url: https://git.rapsys.eu/youtubedl/blobdiff_plain/bddc9fc577d16b1428924bf8a5c37ef1d9295f14..a3df54c98511f5038b0a4c959f87a1220198e076:/youtube_dl/extractor/ted.py?ds=sidebyside diff --git a/youtube_dl/extractor/ted.py b/youtube_dl/extractor/ted.py index ccad1c7..dfa1176 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