diff options
Diffstat (limited to 'youtube_dl')
-rwxr-xr-x | youtube_dl/InfoExtractors.py | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py index eb1f32480..45a23989a 100755 --- a/youtube_dl/InfoExtractors.py +++ b/youtube_dl/InfoExtractors.py @@ -4160,9 +4160,9 @@ class SpiegelIE(InfoExtractor): } return [info] -class liveleakIE(InfoExtractor): +class LiveLeakIE(InfoExtractor): - _VALID_URL = r'^(?:http?://)?(?:\w+\.)?liveleak\.com/view\?(?:.*?)i=(?P<video_id>\d+)(?:.*)' + _VALID_URL = r'^(?:http?://)?(?:\w+\.)?liveleak\.com/view\?(?:.*?)i=(?P<video_id>[\w_]+)(?:.*)' IE_NAME = u'liveleak' def _real_extract(self, url): @@ -4171,17 +4171,20 @@ class liveleakIE(InfoExtractor): self._downloader.trouble(u'ERROR: invalid URL: %s' % url) return - video_id = mobj.group(1) - if video_id.endswith('/index.html'): - video_id = video_id[:-len('/index.html')] + video_id = mobj.group('video_id') webpage = self._download_webpage(url, video_id) - video_url = u'http://edge.liveleak.com/80281E/u/u/ll2_player_files/mp55/player.swf?config=http://www.liveleak.com/player?a=config%26item_token=' + video_id + m = re.search(r'file: "(.*?)",', webpage) + if not m: + self._downloader.report_error(u'unable to find video url') + return + video_url = m.group(1) + m = re.search(r'<meta property="og:title" content="(?P<title>.*?)"', webpage) if not m: self._downloader.trouble(u'Cannot find video title') - title = unescapeHTML(m.group('title')) + title = unescapeHTML(m.group('title')).replace('LiveLeak.com -', '').strip() m = re.search(r'<meta property="og:description" content="(?P<desc>.*?)"', webpage) if m: @@ -4189,13 +4192,19 @@ class liveleakIE(InfoExtractor): else: desc = None + m = re.search(r'By:.*?(\w+)</a>', webpage) + if m: + uploader = clean_html(m.group(1)) + else: + uploader = None info = { 'id': video_id, 'url': video_url, 'ext': 'mp4', 'title': title, - 'description': desc + 'description': desc, + 'uploader': uploader } return [info] @@ -4250,6 +4259,6 @@ def gen_extractors(): TEDIE(), MySpassIE(), SpiegelIE(), - liveleakIE(), + LiveLeakIE(), GenericIE() ] |