X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fbreakcom.py;h=1bfc9f35bbd5c7c929c8f21a20f7b9642d00bcb2;hb=948bcc60df48415ddbf3d7ea03bc3af53a9d928d;hp=34f555e891e1b6c1c079ef54ab976c53694b5daa;hpb=4269e78a80fae8a3227e11288f8fbbb944e3eb83;p=youtube-dl diff --git a/youtube_dl/extractor/breakcom.py b/youtube_dl/extractor/breakcom.py index 34f555e89..1bfc9f35b 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'], + }