diff options
-rw-r--r-- | test/tests.json | 9 | ||||
-rwxr-xr-x | youtube_dl/InfoExtractors.py | 24 |
2 files changed, 33 insertions, 0 deletions
diff --git a/test/tests.json b/test/tests.json index c2c6421fd..30ab11fd8 100644 --- a/test/tests.json +++ b/test/tests.json @@ -640,5 +640,14 @@ "uploader": "videoseconds", "title": "Instagram photo by @videoseconds (Videos)" } + }, + { + "name": "Break", + "url": "http://www.break.com/video/when-girls-act-like-guys-2468056", + "file": "2468056.mp4", + "md5": "a3513fb1547fba4fb6cfac1bffc6c46b", + "info_dict": { + "title": "When Girls Act Like D-Bags" + } } ] diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py index 4aec8c687..11176dd6a 100755 --- a/youtube_dl/InfoExtractors.py +++ b/youtube_dl/InfoExtractors.py @@ -4575,6 +4575,29 @@ class StatigrIE(InfoExtractor): 'uploader' : uploader }] +class BreakIE(InfoExtractor): + _VALID_URL = r'(?:http://)?(?:www\.)?break\.com/video/([^/]+)' + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + if mobj is None: + raise ExtractorError(u'Invalid URL: %s' % 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, + }] + def gen_extractors(): """ Return a list of an instance of every supported extractor. The order does matter; the first extractor matched is the one handling the URL. @@ -4642,6 +4665,7 @@ def gen_extractors(): Vbox7IE(), GametrailersIE(), StatigrIE(), + BreakIE(), GenericIE() ] |