X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fkeek.py;h=280134a2ae9fde0c8f67d850f0d50c38307d8b00;hb=80e98aed69102b0f300ac69001ab6ac64e2febec;hp=a7b88d2d96c728dab476d425cf0be3842dd57c6d;hpb=9e9c164052e982fa56ad11949f6c5d454c26aa44;p=youtube-dl diff --git a/youtube_dl/extractor/keek.py b/youtube_dl/extractor/keek.py index a7b88d2d9..280134a2a 100644 --- a/youtube_dl/extractor/keek.py +++ b/youtube_dl/extractor/keek.py @@ -1,40 +1,42 @@ +from __future__ import unicode_literals + import re from .common import InfoExtractor class KeekIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?keek\.com/(?:!|\w+/keeks/)(?P\w+)' - IE_NAME = u'keek' + _VALID_URL = r'https?://(?:www\.)?keek\.com/keek/(?P\w+)' + IE_NAME = 'keek' _TEST = { - u'url': u'https://www.keek.com/ytdl/keeks/NODfbab', - u'file': u'NODfbab.mp4', - u'md5': u'9b0636f8c0f7614afa4ea5e4c6e57e83', - u'info_dict': { - u"uploader": u"ytdl", - u"title": u"test chars: \"'/\\\u00e4<>This is a test video for youtube-dl.For more information, contact phihag@phihag.de ." - } + 'url': 'https://www.keek.com/keek/NODfbab', + 'md5': '9b0636f8c0f7614afa4ea5e4c6e57e83', + 'info_dict': { + 'id': 'NODfbab', + 'ext': 'mp4', + 'title': 'test chars: "\'/\\\xe4<>This is a test video for youtube-dl.For more information, contact phihag@phihag.de . - Video - Videos on Keek', + 'description': 'md5:35d42050a3ece241d5ddd7fdcc6fd896', + 'uploader': 'ytdl', + 'uploader_id': 'eGT5bab', + }, } def _real_extract(self, url): - m = re.match(self._VALID_URL, url) - video_id = m.group('videoID') + video_id = self._match_id(url) - video_url = u'http://cdn.keek.com/keek/video/%s' % video_id - thumbnail = u'http://cdn.keek.com/keek/thumbnail/%s/w100/h75' % video_id webpage = self._download_webpage(url, video_id) - - video_title = self._og_search_title(webpage) - - uploader = self._html_search_regex(r'
[\S\s]+?

(?P.+?)

', - webpage, u'uploader', fatal=False) - - info = { - 'id': video_id, - 'url': video_url, - 'ext': 'mp4', - 'title': video_title, - 'thumbnail': thumbnail, - 'uploader': uploader + uploader = uploader_id = None + matches = re.search(r'data-username="(?P[^"]+)"[^>]*data-user-id="(?P[^"]+)"', webpage) + if matches: + uploader, uploader_id = matches.groups() + + return { + 'id': video_id, + 'url': self._og_search_video_url(webpage), + 'ext': 'mp4', + 'title': self._og_search_title(webpage), + 'description': self._og_search_description(webpage), + 'thumbnail': self._og_search_thumbnail(webpage), + 'uploader': uploader, + 'uploader_id': uploader_id, } - return [info]