X-Git-Url: https://git.rapsys.eu/youtubedl/blobdiff_plain/feb5020b37d7d3ba4005a8bac6f4efece4ce4b8c..88ab9dae6d22f29ff7ac32f25c2d5c26d732edf1:/youtube_dl/extractor/breakcom.py diff --git a/youtube_dl/extractor/breakcom.py b/youtube_dl/extractor/breakcom.py index 34f555e..1bfc9f3 100644 --- a/youtube_dl/extractor/breakcom.py +++ b/youtube_dl/extractor/breakcom.py @@ -1,33 +1,40 @@ +from __future__ import unicode_literals + import re +import json from .common import InfoExtractor class BreakIE(InfoExtractor): - _VALID_URL = r'(?:http://)?(?:www\.)?break\.com/video/([^/]+)' + _VALID_URL = r'http://(?:www\.)?break\.com/video/([^/]+)' _TEST = { - u'url': u'http://www.break.com/video/when-girls-act-like-guys-2468056', - u'file': u'2468056.mp4', - u'md5': u'a3513fb1547fba4fb6cfac1bffc6c46b', - u'info_dict': { - u"title": u"When Girls Act Like D-Bags" + 'url': 'http://www.break.com/video/when-girls-act-like-guys-2468056', + 'md5': 'a3513fb1547fba4fb6cfac1bffc6c46b', + 'info_dict': { + 'id': '2468056', + 'ext': 'mp4', + 'title': 'When Girls Act Like D-Bags', } } def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) video_id = mobj.group(1).split("-")[-1] - webpage = self._download_webpage(url, video_id) - video_url = re.search(r"videoPath: '(.+?)',",webpage).group(1) - key = re.search(r"icon: '(.+?)',",webpage).group(1) - final_url = str(video_url)+"?"+str(key) - thumbnail_url = re.search(r"thumbnailURL: '(.+?)'",webpage).group(1) - title = re.search(r"sVidTitle: '(.+)',",webpage).group(1) - ext = video_url.split('.')[-1] - return [{ - 'id': video_id, - 'url': final_url, - 'ext': ext, - 'title': title, - 'thumbnail': thumbnail_url, - }] + embed_url = 'http://www.break.com/embed/%s' % video_id + webpage = self._download_webpage(embed_url, video_id) + info_json = self._search_regex(r'var embedVars = ({.*})\s*?', + webpage, 'info json', flags=re.DOTALL) + info = json.loads(info_json) + video_url = info['videoUri'] + youtube_id = info.get('youtubeId') + if youtube_id: + return self.url_result(youtube_id, 'Youtube') + + final_url = video_url + '?' + info['AuthToken'] + return { + 'id': video_id, + 'url': final_url, + 'title': info['contentName'], + 'thumbnail': info['thumbUri'], + }