def resolve(url): data = util.extract_jwplayer_setup(util.request(url)) if data and 'sources' in data: result = [] for source in data['sources']: items = [] if source['file'].endswith('.smil'): tree = ElementTree.fromstring(util.request(source['file'])) base_path = tree.find('./head/meta').get('base') for video in tree.findall('./body/switch/video'): items.append({ 'url': '%s playpath=%s pageUrl=%s swfUrl=%s swfVfy=true' % (base_path, video.get('src'), url, 'http://static.flashx.tv/player6/jwplayer.flash.swf'), 'quality': video.get('height') + 'p' }) else: items.append({'url': source['file']}) if len(data['tracks']) > 0: for item in items: for track in data['tracks']: new_item = deepcopy(item) new_item['subs'] = track['file'] new_item['lang'] = ' %s subtitles' % track['label'] result.append(new_item) else: result += items return result return None
def resolve(url): refererurl = re.search(r'<iframe src="([^"]+)".*', util.request(url), re.I | re.S).group(1) try: data=[x for x in util.request(refererurl).splitlines() if 'file:' in x and '.mp4' in x][0] except: return None streamurl = re.search(r'.*file:"([^"]+?)".*', data).group(1) headers={'Referer': refererurl} return [{'url': streamurl, 'headers': headers}]
def resolve(url): m = _regex(url) if m: data = util.request(url) sid = re.search('sid=(?P<sid>[^\&]+)',data) if sid: data = util.request('http://www.vuuzla.com/app/deliver/playlist/%s?sid=%s' % (m.group('id'),sid.group('sid'))) link = re.search('<video.+?url=\"(?P<url>[^\"]+)',data) if link: return [{'url':link.group('url')}]
def resolve(url): if supports(url): data = util.request(url) m = re.search('flashvars.file=\"([^\"]+)', data, re.IGNORECASE | re.DOTALL) n = re.search('flashvars.filekey=\"([^\"]+)', data, re.IGNORECASE | re.DOTALL) if not m == None and not n == None: data = util.request( 'http://www.novamov.com/api/player.api.php?key=%s&file=%s&user=undefined&pass=undefined&codes=1' % (n.group(1), m.group(1))) stream = re.search('url=([^\&]+)', data).group(1) return [{'url': stream}]
def resolve(url): m = _regex(url) f = None if not m is None: try: data = util.request( 'http://www.zkouknito.cz/player/scripts/videoinfo_externi.php?id=%s' % m.group('id')) f = re.search('<file>([^<]+)', data, re.IGNORECASE | re.DOTALL) except Exception: data = util.request(url) f = re.search("\'file\':.*?'([^']+)", data, re.IGNORECASE | re.DOTALL) if f: return [{'url': f.group(1)}]
def resolve(url): if not _regex(url) == None: data = util.request(url.replace('&', '&')) data = util.substr(data, 'flashvars', 'params') domain = re.search('flashvars\.domain=\"([^\"]+)', data, re.IGNORECASE | re.DOTALL).group(1) file = re.search('flashvars\.file=\"([^\"]+)', data, re.IGNORECASE | re.DOTALL).group(1) key = re.search('flashvars\.filekey=\"([^\"]+)', data, re.IGNORECASE | re.DOTALL).group(1) data = util.request( '%s/api/player.api.php?key=%s&file=%s&user=undefined&codes=undefined&pass=undefined' % (domain, key, file)) m = re.search('url=(?P<url>[^\&]+)', data, re.IGNORECASE | re.DOTALL) if not m == None: return [{'url': m.group('url')}]
def _regex(url): match = re.search( "(hqq|netu)\.tv/watch_video\.php\?v=(?P<vid>[0-9A-Za-z]+)", url) if match: return match match = re.search( r'(hqq|netu)\.tv/player/embed_player\.php\?vid=(?P<vid>[0-9A-Za-z]+)', url) if match: return match match = re.search(r'(hqq|netu)\.tv/player/hash\.php\?hash=\d+', url) if match: match = re.search(r'var\s+vid\s*=\s*\'(?P<vid>[^\']+)\'', urllib.unquote(util.request(url))) if match: return match b64enc = re.search( r'data:text/javascript\;charset\=utf\-8\;base64([^\"]+)', url) b64dec = b64enc and base64.decodestring(b64enc.group(1)) enc = b64dec and re.search(r"\'([^']+)\'", b64dec).group(1) if enc: decoded = _decode(enc) match = re.search(r'<input name="vid"[^>]+? value="(?P<vid>[^"]+?)">', decoded) if re.search( r'<form(.+?)action="[^"]*(hqq|netu)\.tv/player/embed_player\.php"[^>]*>', decoded) and match: return match return None
def resolve(url): if supports(url): data = util.substr(util.request(url), '<body>', '</script>') m = re.search('url\[[\d]+\] = \'([^\']+)', data, re.IGNORECASE | re.DOTALL) if not m == None: return [{'url': m.group(1)}]
def url(url): m = _regex(url) if not m == None: data = latin2text(util.request('%s%s%s?mode=play' % (m.group('url') ,m.group('html'),m.group('id')))) f = re.search('<videos><video url=\'(.+?)[^ ] rating',data,re.IGNORECASE | re.DOTALL) if f: return [f.group(1)]
def url(url): m = _regex(url) if m: data = util.request('http://rutube.ru/trackinfo/' + m.group('id') + '.xml') n = re.search('<m3u8>([^<]+)', data, re.IGNORECASE | re.DOTALL) if not n == None: return [n.group(1).strip()]
def resolve(url): m = _regex(url) if not m == None: stream = None data = util.request('http://www.videozer.com/player_control/settings.php?v=%s&em=TRUE&fv=v1.1.12' % m.group('id')) json = data.replace('false','False').replace('true','True').replace('null','None') aData = eval('('+json+')') max_res = 99999 r = re.finditer('"l".*?:.*?"(.+?)".+?"u".*?:.*?"(.+?)"', json) chosen_res = 0 stream_url_part1 = False if r: for match in r: res, url = match.groups() if (res == 'LQ' ): res = 240 elif (res == 'SD') : res = 480 else: res = 720 if res > chosen_res and res <= max_res: stream_url_part1 = url.decode('base-64') chosen_res = res else: return if not stream_url_part1: return # Decode the link from the json data settings. spn_ik = unhexlify(__decrypt(aData["cfg"]["login"]["spen"], aData["cfg"]["login"]["salt"], 950569)).split(';') spn = spn_ik[0].split('&') ik = spn_ik[1] for item in ik.split('&') : temp = item.split('=') if temp[0] == 'ik' : key = __get_key(temp[1]) sLink = "" for item in spn : item = item.split('=') if(int(item[1])==1): sLink = sLink + item[0]+ '=' + __decrypt(aData["cfg"]["info"]["sece2"], aData["cfg"]["environment"]["rkts"], key) + '&' #decrypt32byte elif(int(item[1]==2)): sLink = sLink + item[0]+ '=' + __decrypt(aData["cfg"]["ads"]["g_ads"]["url"],aData["cfg"]["environment"]["rkts"], key) + '&' elif(int(item[1])==3): sLink = sLink + item[0]+ '=' + __decrypt(aData["cfg"]["ads"]["g_ads"]["type"],aData["cfg"]["environment"]["rkts"], key,26,25431,56989,93,32589,784152) + '&' elif(int(item[1])==4): sLink = sLink + item[0]+ '=' + __decrypt(aData["cfg"]["ads"]["g_ads"]["time"],aData["cfg"]["environment"]["rkts"], key,82,84669,48779,32,65598,115498) + '&' elif(int(item[1])==5): sLink = sLink + item[0]+ '=' + __decrypt(aData["cfg"]["login"]["euno"],aData["cfg"]["login"]["pepper"], key,10,12254,95369,39,21544,545555) + '&' elif(int(item[1])==6): sLink = sLink + item[0]+ '=' + __decrypt(aData["cfg"]["login"]["sugar"],aData["cfg"]["ads"]["lightbox2"]["time"], key,22,66595,17447,52,66852,400595) + '&' sLink = sLink + "start=0" sMediaLink = stream_url_part1 + '&' + sLink return [{'url':sMediaLink}]
def resolve(url): if supports(url): data = util.request(url) data = util.substr(data,'<div id=\"player_code','</div') try: video_id = re.search('flv\|\|([^\|]+)',data).group(1) return [{'url':'http://servertip.cz/cgi-bin/dl.cgi/%s/video.flv' % video_id}] except: pass
def resolve(link): if _regex(link): data = util.request(link) url = re.search('base_url\: \"(?P<url>[^\"]+)',data) file = re.search('file_name\: \"(?P<url>[^\"]+)',data) res = re.search('resolutions\: \"(?P<url>[^\"]+)',data) if url and file and res: url = '%s/%s/%s' % (url.group('url'),res.group('url'),file.group('url')) return [{'quality':res.group('url'),'url':url}]
def resolve(url): data = re.search(r'<script[^\.]+?\.setup\(([^\)]+?)\);', util.request(url), re.I | re.S) if data: data = demjson.decode(data.group(1).decode('string_escape')) if 'sources' in data: result = [] for source in data['sources']: result.append({'url': source['file'], 'quality': source['label']}) return result return None
def resolve(url): try: data = [ x for x in util.request('http:' + url).splitlines() if 'file:' in x and '.mp4' in x ][0] except: return None streamurl = re.search(r'.*file: *"([^"]+?)".*', data).group(1) return [{'url': streamurl}]
def resolve(url): m = _regex(url) if m: id = int(m.group('v')) params = { 'v':id, } quality = "480p" data = util.request("http://embed.publicvideohost.org/v.php?" + urllib.urlencode(params)) vurl = re.search('file\:(.*?)\"(?P<url>[^"]+)',data, re.IGNORECASE | re.DOTALL).group('url') return [{'quality':quality, 'url':vurl}]
def resolve(url): m = _regex(url) if m: #http://gosupark.com/embed-j3erxu8i2o30-630x320.html data = util.request('http://gosupark.com/' + m.group('url')) n = re.search('file: \"(.+?)\"', data, re.IGNORECASE | re.DOTALL) quality = '???' q = re.search('x(\d+)\.html', url) if q: quality = q.group(1) + 'p' if not n == None: return [{'quality': quality, 'url': n.group(1).strip()}]
def resolve(link): if not _regex(link) == None: data = util.request(link) data = util.substr(data, 'div id=\"playerWrap\"', '<embed>') if len(data) > 0: host = re.search('host=([^\&]+)', data, re.IGNORECASE | re.DOTALL).group(1) oid = re.search('oid=([^\&]+)', data, re.IGNORECASE | re.DOTALL).group(1) uid = re.search('uid=([^\&]+)', data, re.IGNORECASE | re.DOTALL).group(1) vtag = re.search('vtag=([^\&]+)', data, re.IGNORECASE | re.DOTALL).group(1) hd = re.search('hd_def=([^\&]+)', data, re.IGNORECASE | re.DOTALL).group(1) max_hd = re.search('hd=([^\&]+)', data, re.IGNORECASE | re.DOTALL).group(1) no_flv = re.search('no_flv=([^\&]+)', data, re.IGNORECASE | re.DOTALL).group(1) url = '%su%s/videos/%s' % (host, uid, vtag) if no_flv != '1': return [{ 'name': __name__, 'quality': '???', 'url': url + '.flv', 'surl': link, 'subs': '' }] if no_flv == '1': res = int(hd) if max_hd: res = int(max_hd) if res < 0: return [{ 'name': __name__, 'quality': '240p', 'url': url + '.flv', 'surl': link, 'subs': '' }] resolutions = ['240', '360', '480', '720', '1080'] ret = [] for index, resolution in enumerate(resolutions): if index > res: return ret ret.append({ 'name': __name__, 'quality': resolution + 'p', 'url': url + '.' + resolution + '.mp4', 'surl': link, 'subs': '' }) return ret
def resolve(url): m = _regex(url) if m: surl = m.group('url').replace('embed', 'iframe') data = util.request('http://played.to/%s' % surl) n = re.search('file: \"(.+?)\"', data, re.IGNORECASE | re.DOTALL) quality = '???' q = re.search('x(\d+)\.html', url) if q: quality = q.group(1) + 'p' if not n == None: return [{'quality': quality, 'url': n.group(1).strip()}]
def resolve(url): m = _regex(url) if not m == None: data = util.request(url) stream = re.search('_video_file = \'(?P<url>[^\']+)', data) if stream: return [{ 'name': __name__, 'quality': '360p', 'url': stream.group('url'), 'surl': url }]
def login_stale(): url = 'http://www.putlocker.com/cp.php' if not os.path.exists(cookie_file): return True # self.net.set_cookies(cookie_file) source = util.request(url) if re.search( '(?:<span class=pro_user>\( Pro \)</span>|<span class="free_user">\( Free \)</span>)', source): print('Putlocker account appears to be logged in.') return False else: return True
def resolve(url): m = _regex(url) if not m == None: url = re.sub('.*player.swf\?','',url) data = util.request('http://www.zideo.nl/player/config?'+url) try: link = re.search('<file>([^<]+)',data).group(1) # hd = re.search('<hd\.state>([^<]+)',data).group(1) # if hd == 'true': # link = re.search('<hd\.file>([^<]+)',data).group(1) return [{'url':link}] except: pass
def resolve(url): m = _regex(url) if m: data = util.request('http://streamin.to/'+m.group('url')) n = re.search('config:{file:\'(.+?)\'',data,re.IGNORECASE | re.DOTALL) k = re.search('streamer: \"(.+?)\"',data,re.IGNORECASE | re.DOTALL) quality = '???' q = re.search('x(\d+)\.html',url) if q: quality = q.group(1)+'p' if n and k: url = '%s playpath=%s' % (k.group(1).strip(),n.group(1).strip()) return [{'quality':quality,'url':url}]
def resolve(url): cookies = {} util.init_urllib(cookies) data = util.request(url) view = pickle.loads(util._cookie_jar.dump())[ '.mojevideo.sk']['/'].keys()[0] st = re.search(r'vHash=\[\'([^\']+)', data) if not st: return None st = st.group(1) tim = int(time.time()) base = 'http://fs5.mojevideo.sk:8080/securevd/' return [{'url': base + view.replace('view', '') + '.mp4?st=%s&e=%s|Cookie=%s=1' % (st, tim, view)}]
def resolve(url): realurl = re.search(r'<iframe src="([^"]+)".*', util.request(url), re.I | re.S).group(1) data = re.search(r'<script[^\.]+?\.setup\((.+?)\);', util.request(realurl), re.I | re.S) if data: data = data.group(1).decode('string_escape') data = re.sub(r'\w+\(([^\)]+?)\)', r'\1', data) # Strip JS functions data = re.sub(r': *([^"][a-zA-Z]+)', r':"\1"', data) # Fix incorrect JSON data = demjson.decode(data) if 'sources' in data: result = [] for source in data['sources']: if 'tracks' in data: for track in data['tracks']: result.append({ 'url': source['file'], 'subs': track['file'], 'lang': ' %s subtitles' % track['label'] }) return result return None
def resolve(url): m = _regex(url) if m: resp = urllib.request.urlopen(url) sessc = resp.headers.get('Set-Cookie').split(';')[0] resp.close() furl = "%s/w.jsp?id=%s&width=620&height=349&pos=&skin=0" % (BASE_URL,m.group('id')) headers = {'Cookie':sessc, 'Referer':url} data = util.request(furl,headers) m1 = re.search('document.cookie = "([^"]+?)"',data) m2 = re.search('src="(\/pcsevlet\?code=[^"]+)', data) if m1 and m2: headers['Cookie'] = headers['Cookie'] + '; ' + m1.group(1) headers['Referer'] = BASE_URL + '/flowplayer/flowplayer.commercial-3.2.16.swf' data = util.request(BASE_URL + m2.group(1),headers) m_vurl = re.search("'url':.*?'(http[^']+?mp4)'", data, re.DOTALL) m_surl = re.search("'captionUrl':.*?'(http[^']+)'",data, re.DOTALL) if m_vurl: resolved = {'url':m_vurl.group(1).strip(),'quality':'???'} if m_surl: resolved['subs'] = m_surl.group(1).strip() return [resolved] else: return []
def resolve(url): m = _regex(url) if not m == None: data = util.request(url) if data.find('jwplayer(\'mediaplayer') > 0: video = re.search('\'file\'\: \'(?P<url>.+?[flv|mp4])\'',data) if video: item = {} item['url'] = video.group('url') subs = re.search('\'file\'\: \'(?P<url>.+?srt)',data) if subs: item['subs'] = _furl(subs.group('url')) print(item) return [item]
def resolve(url): m = _regex(url) if m: id = int(m.group('id')) headers = { "Referer":"http://st.kset.kz/pl/pl.swf" } params = { 'id':id, 'ref':'http://kset.kz/video_frame.php?id=%d' % id, 'r':gen_random_decimal(0, 99999999999999) } quality = "480p" data = util.request("http://kset.kz/v.php?" + urllib.urlencode(params), headers=headers) item = util.json.loads(base64.decodestring(data)) return [{'quality':quality, 'url':item[u'file']}]
def resolve(url): m = _regex(url) if m: ret = [] data = util.request( "http://player.vimeo.com/v2/video/%s/config?type=moogaloop&referrer=&player_url=player.vimeo.com&v=1.0.0&cdn_url=http://a.vimeocdn.com" % m.group('id')) data = util.json.loads(data) h264 = data["request"]["files"]["h264"] for quality in h264.iterkeys(): item = {} item['title'] = data['video']['title'] item['length'] = data['video']['duration'] item['quality'] = quality == 'hd' and '720p' or '480p' item['url'] = h264[quality]['url'] ret.append(item) return ret
def _iframe(url): index = url.find('&') if index > 0: url = url[:index] iframe = re.search('(\d+)$', url, re.IGNORECASE | re.DOTALL) if iframe: data = util.request(url) ress = re.search( 'var api = flowplayer\(\),\s+resolutions = \{([^\}]+)\}', data, re.IGNORECASE | re.DOTALL) valid_ress = re.compile("<span[^>]*>([^<]+)</span>", re.IGNORECASE | re.DOTALL).findall(data) subs = re.search('<track.+?src=\"(?P<url>[^\"]+)', data, re.IGNORECASE | re.DOTALL) if ress: ret = [] ress = ress.group(1).strip().split(',') for r in ress: r = r.replace('"', '').split(':') res = r[0].strip() vurl = _furl(r[1].strip()) if res in valid_ress: v = { 'name': __name__, 'url': vurl, 'quality': res, 'surl': url, 'subs': '' } if subs: v['subs'] = _furl(subs.group('url')) ret.append(v) if len(ret) > 0: return ret video = re.search('url\: \'(?P<url>mp4[^\']+)', data, re.IGNORECASE | re.DOTALL) subs = re.search('captionUrl\: \'(?P<url>[^\']+)', data, re.IGNORECASE | re.DOTALL) if video: ret = {'name': __name__, 'quality': '720p', 'surl': url} ret['url'] = 'rtmp://koukni.cz/mp4 playpath=%s' % video.group( 'url') if subs: ret['subs'] = _furl(subs.group('url')) return [ret]