diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py index 33dbaa3de..79c4f4b9e 100755 --- a/youtube_dl/InfoExtractors.py +++ b/youtube_dl/InfoExtractors.py @@ -779,6 +779,38 @@ def _real_extract(self, url): 'ext': video_extension.decode('utf-8'), }] +class RedtubeIE(InfoExtractor): + """Information Extractor for redtube""" + _VALID_URL = r'(?:http://)?(?:www\.)?redtube\.com/(?P[0-9]+)' + IE_NAME = u'redtube' + + def _real_extract(self,url): + mobj = re.match(self._VALID_URL, url) + if mobj is None: + self._downloader.report_error(u'invalid URL: %s' % url) + return + video_id = mobj.group('id') + video_extension = 'mp4' + webpage = self._download_webpage(url, video_id) + self.report_extraction(video_id) + mobj = re.search(r'',webpage) + if mobj is not None: + video_url = mobj.group(1) + else: + self._downloader.report_error(u'unable to extract media URL') + return + mobj = re.search('

'+r'(.+)'+r'

',webpage) + if mobj is not None: + video_title = mobj.group(1) + else: + video_title = 'Redtube - %s' % time.ctime() + + return [{ + 'id': video_id, + 'url': video_url, + 'ext': video_extension, + 'title': video_title, + }] class DailymotionIE(InfoExtractor): """Information Extractor for Dailymotion""" @@ -4236,6 +4268,7 @@ def gen_extractors(): TEDIE(), MySpassIE(), SpiegelIE(), + RedtubeIE(), LiveLeakIE(), ARDIE(), TumblrIE(),