def resolve(url): try: result = client.request(url) uri = re.findall("decodeURIComponent\(atob\('(.+?)'",result)[0] while not ('http') in uri: uri = base64.b64decode(uri) if not ('http') in uri: uri = re.findall("'(.+?)'",uri)[0] else: pass murl = re.findall('"src":"(.+?)"',uri)[0] result = client.request(murl,referer = url) base = urlparse.urlparse(murl).netloc items = client.parseDOM(result, 'video', attrs={'id': 'player'}) url = client.parseDOM(items, 'source', ret='src')[0] if ('http') in url: return url+test if url[0]!='/': url='http://%s/'%base+url else: url='http://%s'%base+url headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36 OPR/38.0.2220.25 (Edition beta)' ,'Referer':murl,'X-Requested-With':constants.get_shockwave(),'Host':base, 'Connection':'keep-alive','Accept-encoding':'gzip, deflate, lzma, sdch'} r2 = client.request(url,headers=headers) u2 = re.findall('(http://[^\s]+)',r2)[0] return u2 + '|%s' % urllib.urlencode({'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36 OPR/38.0.2220.25 (Edition beta)' ,'Referer':url,'X-Requested-With':constants.get_shockwave()}) except: return
def resolve(url): try: id = url.split("?v=")[-1].split("/")[-1].split("?")[0].split("&")[0] result = client.request('http://www.youtube.com/watch?v=%s' % id) message = client.parseDOM(result, 'div', attrs={'id': 'unavailable-submessage'}) message = ''.join(message) alert = client.parseDOM(result, 'div', attrs={'id': 'watch7-notification-area'}) if re.search('LIVE_WATCHING_NOW', result): url = live(result, id) if not url == None: return url if len(alert) > 0: raise Exception() if re.search('[a-zA-Z]', message): raise Exception() url = 'plugin://plugin.video.youtube/play/?video_id=%s' % id return url except: return
def resolve(url): try: result = client.request(url) uri = re.findall("decodeURIComponent\(atob\('(.+?)'", result)[0] while not ('http') in uri: uri = base64.b64decode(uri) if not ('http') in uri: uri = re.findall("'(.+?)'", uri)[0] else: pass murl = re.findall('"src":"(.+?)"', uri)[0] result = client.request(murl, referer=url) base = urlparse.urlparse(murl).netloc items = client.parseDOM(result, 'video', attrs={'id': 'player'}) url = client.parseDOM(items, 'source', ret='src')[0] if ('http') in url: return url + test if url[0] != '/': url = 'http://%s/' % base + url else: url = 'http://%s' % base + url headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36 OPR/38.0.2220.25 (Edition beta)', 'Referer': murl, 'X-Requested-With': constants.get_shockwave(), 'Host': base, 'Connection': 'keep-alive', 'Accept-encoding': 'gzip, deflate, lzma, sdch' } r2 = client.request(url, headers=headers) u2 = re.findall('(http://[^\s]+)', r2)[0] return u2 + '|%s' % urllib.urlencode({ 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36 OPR/38.0.2220.25 (Edition beta)', 'Referer': url, 'X-Requested-With': constants.get_shockwave() }) except: return
def resolve(url): try: id = url.split("?v=")[-1].split("/")[-1].split("?")[0].split("&")[0] result = client.request('http://www.youtube.com/watch?v=%s' % id) message = client.parseDOM(result, 'div', attrs = {'id': 'unavailable-submessage'}) message = ''.join(message) alert = client.parseDOM(result, 'div', attrs = {'id': 'watch7-notification-area'}) if re.search('LIVE_WATCHING_NOW', result): url = live(result, id) if not url == None: return url if len(alert) > 0: raise Exception() if re.search('[a-zA-Z]', message): raise Exception() url = 'plugin://plugin.video.youtube/play/?video_id=%s' % id return url except: return
def resolve(url): try: page = re.compile('//(.+?)/(?:embed|v)/([0-9a-zA-Z-_]+)').findall(url)[0] try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0] except: referer = page try: host = urlparse.parse_qs(urlparse.urlparse(url).query)['host'][0] except: host = 'www.sawlive.tv' page = 'http://sawlive.tv/embed/%s' % (page[1]) headers={'User-Agent': client.agent(),'Host': host, 'Referer': referer, 'Connection': 'keep-alive'} result = client.request(page, referer=referer, headers = headers) unpacked = '' packed = result.split('\n') for i in packed: try: unpacked += jsunpack.unpack(i) except: pass result += unpacked result = decryptionUtils.doDemystify(result) result = urllib.unquote_plus(result) r2 = result resul = None try: url = client.parseDOM(result, 'iframe', ret='src')[-1] except: result = unpacked try: url = client.parseDOM(result, 'iframe', ret='src')[-1] var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result) var_dict = dict(var) for v in var_dict.keys(): url = url.replace(v,var_dict[v]) url = url.replace('\'','').replace('\"','').replace('+','').replace(' ','') resul = client.request(url, headers = headers) except: pass if resul is None: aaa = r2.replace('var ','').replace('\' ','\' +').replace(' \'','+ \'') aaa = aaa.replace('document.write(','result =').replace('\');','\'') aaa = re.sub('function.+?\(\)[^}]+}\s*','',aaa) aaa = re.sub('=([^\'\"\s]+)\s*([^\'\";]+);',r'=\1+\2;',aaa) aaa = aaa.replace('"\' +swidth+ \'"','') aaa = aaa.replace('"\' +sheight+ \'"','') aaa = re.sub('([^+])\s([^+])',r'\1+\2',aaa) exec(aaa) result = urllib.unquote_plus(result) url = client.parseDOM(result, 'iframe', ret='src')[-1] result = client.request(url, headers = headers) else: result = resul unpacked = '' packed = result.split('\n') for i in packed: try: unpacked += jsunpack.unpack(i) except: pass result += unpacked result = urllib.unquote_plus(result) var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result) rplcs = re.findall(';.+?=(.+?).replace\([\"\'](.+?)[\"\']\s*,\s*[\"\']([^\"\']*)[\"\']',result) var_dict = dict(var) file = re.compile("'file'\s*(.+?)\)").findall(result)[0] file = file.replace('\'','') for v in var_dict.keys(): file = file.replace(v,var_dict[v]) file = file.replace('+','').replace(',','').strip().replace(' ', '') log("Sawlive: Found file url: " + file) if 'f4m' in file: return file try: log("Sawlive: Finding m3u8 link.") if not file.startswith('http'): raise Exception() url = client.request(file, output='geturl') if not '.m3u8' in url: raise Exception() url += '|%s' % urllib.urlencode({'User-Agent': client.agent(), 'Referer': file}) log("Sawlive: Found m3u8 link: " + url) return url except: log("Sawlive: m3u8 link not found, finding rtmp.") pass strm = re.compile("'streamer'\s*(.+?)\)").findall(result)[0] strm = strm.replace('\'','') for v in var_dict.keys(): strm = strm.replace(v,var_dict[v]) strm = strm.replace('+','').replace(',','').strip().replace(' ', '') swf = re.compile("SWFObject\('(.+?)'").findall(result)[0].replace(' ', '') url = '%s playpath=%s swfUrl=%s pageUrl=%s live=1 timeout=60' % (strm, file, swf, url) url = urllib.unquote(url).replace('unescape(','') for r in rplcs: url = url.replace(r[1],r[2]) log("Sawlive: rtmp link found: " + url) return url except Exception as e: log("Sawlive exception:\n" + str(e)) log("Sawlive: Resolver failed. Returning...") return
def resolve(url): try: page = re.compile('//(.+?)/(?:embed|v)/([0-9a-zA-Z-_]+)').findall( url)[0] page = 'http://%s/embed/%s' % (page[0], page[1]) try: referer = urlparse.parse_qs( urlparse.urlparse(url).query)['referer'][0] except: referer = page try: host = urlparse.parse_qs(urlparse.urlparse(url).query)['host'][0] except: host = 'sawlive.tv' headers = { 'User-Agent': client.agent(), 'Host': host, 'Referer': referer, 'Connection': 'keep-alive' } result = client.request(page, referer=referer) result = decryptionUtils.doDemystify(result) url = client.parseDOM(result, 'iframe', ret='src')[-1] url = url.replace(' ', '').replace('+', '') var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result) for i in range(100): for v in var: result = result.replace(" %s " % v[0], ' %s ' % v[1]) var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result) var_dict = dict(var) for v in var: if '+' in v[1]: ss = v[1].rstrip('+').replace('"+', '').split('+') sg = v[1].rstrip('+').replace('"+', '') for s in ss: sg = sg.replace(s, var_dict[s]) var_dict[v[0]] = sg.replace('+', '') for i in range(100): for v in var_dict.keys(): url = url.replace("'%s'" % v, var_dict[v]) for v in var_dict.keys(): url = url.replace("(%s)" % v, "(%s)" % var_dict[v]) result = client.request(url, headers=headers) result = decryptionUtils.doDemystify(result) var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result) var_dict = dict(var) file = re.compile("'file'\s*(.+?)\)").findall(result)[0] file = file.replace('\'', '') for v in var_dict.keys(): file = file.replace(v, var_dict[v]) file = file.replace('+', '').replace(',', '').strip() log("Sawlive: Found file url: " + file) try: log("Sawlive: Finding m3u8 link.") if not file.startswith('http'): raise Exception() url = client.request(file, output='geturl') if not '.m3u8' in url: raise Exception() url += '|%s' % urllib.urlencode({ 'User-Agent': client.agent(), 'Referer': file }) log("Sawlive: Found m3u8 link: " + url) return url except: log("Sawlive: m3u8 link not found, finding rtmp.") pass strm = re.compile("'streamer'\s*(.+?)\)").findall(result)[0] strm = strm.replace('\'', '') for v in var_dict.keys(): strm = strm.replace(v, var_dict[v]) strm = strm.replace('+', '').replace(',', '').strip() swf = re.compile("SWFObject\('(.+?)'").findall(result)[0] url = '%s playpath=%s swfUrl=%s pageUrl=%s live=1 timeout=60' % ( strm, file, swf, url) url = urllib.unquote(url).replace('unescape(', '') log("Sawlive: rtmp link found: " + url) return url except Exception as e: log("Sawlive exception:\n" + str(e)) log("Sawlive: Resolver failed. Returning...") return
def resolve(url): try: page = re.compile('//(.+?)/(?:embed|v)/([0-9a-zA-Z-_]+)').findall(url)[0] page = 'http://%s/embed/%s' % (page[0], page[1]) try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0] except: referer = page try: host = urlparse.parse_qs(urlparse.urlparse(url).query)['host'][0] except: host = 'sawlive.tv' headers={'User-Agent': client.agent(),'Host': host, 'Referer': referer, 'Connection': 'keep-alive'} result = client.request(page, referer=referer) unpacked = '' packed = result.split('\n') for i in packed: try: unpacked += jsunpack.unpack(i) except: pass result += unpacked result = urllib.unquote_plus(result) rplcs = re.findall(';.+?=(.+?).replace\([\"\'](.+?)[\"\']\s*,\s*[\"\']([^\"\']*)[\"\']',result) url = client.parseDOM(result, 'iframe', ret='src')[-1] url = url.replace(' ', '').replace('+','') var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result) for i in range(100): for v in var: result = result.replace(" %s " % v[0], ' %s '%v[1]) var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result) var_dict = dict(var) for v in var: if '+' in v[1]: ss = v[1].rstrip('+').replace('"+','').split('+') sg = v[1].rstrip('+').replace('"+','') for s in ss: sg = sg.replace(s, var_dict[s]) var_dict[v[0]]=sg.replace('+','') for i in range(100): for v in var_dict.keys(): url = url.replace("'%s'" % v, var_dict[v]) for v in var_dict.keys(): url = url.replace("(%s)" % v, "(%s)" % var_dict[v]) url = url.replace(' ', '').replace('+','').replace('"','').replace('\'','') for r in rplcs: url = url.replace(r[1],r[2]) result = client.request(url, headers = headers, mobile=True) unpacked = '' packed = result.split('\n') for i in packed: try: unpacked += jsunpack.unpack(i) except: pass result += unpacked result = urllib.unquote_plus(result) var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result) rplcs = re.findall(';.+?=(.+?).replace\([\"\'](.+?)[\"\']\s*,\s*[\"\']([^\"\']*)[\"\']',result) var_dict = dict(var) file = re.compile("'file'\s*(.+?)\)").findall(result)[0] file = file.replace('\'','') for v in var_dict.keys(): file = file.replace(v,var_dict[v]) file = file.replace('+','').replace(',','').strip().replace(' ', '') log("Sawlive: Found file url: " + file) if 'f4m' in file: return file try: log("Sawlive: Finding m3u8 link.") if not file.startswith('http'): raise Exception() url = client.request(file, output='geturl') if not '.m3u8' in url: raise Exception() url += '|%s' % urllib.urlencode({'User-Agent': client.agent(), 'Referer': file}) log("Sawlive: Found m3u8 link: " + url) return url except: log("Sawlive: m3u8 link not found, finding rtmp.") pass strm = re.compile("'streamer'\s*(.+?)\)").findall(result)[0] strm = strm.replace('\'','') for v in var_dict.keys(): strm = strm.replace(v,var_dict[v]) strm = strm.replace('+','').replace(',','').strip().replace(' ', '') swf = re.compile("SWFObject\('(.+?)'").findall(result)[0].replace(' ', '') url = '%s playpath=%s swfUrl=%s pageUrl=%s live=1 timeout=60' % (strm, file, swf, url) url = urllib.unquote(url).replace('unescape(','') for r in rplcs: url = url.replace(r[1],r[2]) log("Sawlive: rtmp link found: " + url) return url except Exception as e: log("Sawlive exception:\n" + str(e)) log("Sawlive: Resolver failed. Returning...") return
def resolve(url): try: page = re.compile('//(.+?)/(?:embed|v)/([0-9a-zA-Z-_]+)').findall(url)[0] try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0] except: referer = page try: host = urlparse.parse_qs(urlparse.urlparse(url).query)['host'][0] except: host = 'www.sawlive.tv' page = 'http://sawlive.tv/embed/%s' % (page[1]) headers={'User-Agent': client.agent(),'Host': host, 'Referer': referer, 'Connection': 'keep-alive'} result = client.request(page, referer=referer, headers = headers) unpacked = '' packed = result.split('\n') for i in packed: try: unpacked += jsunpack.unpack(i) except: pass result += unpacked result = urllib.unquote_plus(result) r2 = result resul = None try: url = client.parseDOM(result, 'iframe', ret='src')[-1] except: result = unpacked try: url = client.parseDOM(result, 'iframe', ret='src')[-1] var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result) var_dict = dict(var) for v in var_dict.keys(): url = url.replace(v,var_dict[v]) url = url.replace('\'','').replace('\"','').replace('+','').replace(' ','') resul = client.request(url, headers = headers) except: pass if resul is None: #aaa = r2.replace('var ','').replace('\' ','\' +').replace(' \'','+ \'') aaa = r2.replace('document.write(',' var result =').replace('\');','\'') aaa = aaa.replace('"\' +swidth+ \'"','') aaa = aaa.replace('"\' +sheight+ \'"','') aaa = re.sub('([^+\s])\s([^+\s])',r'\1+\2',aaa) aaa = aaa.replace('function+','function ') aaa = aaa.replace('var+','var ') aaa = aaa.replace('result+','result ') import js2py context = js2py.EvalJs() context.swidth = '400' context.sheight = '400' context.execute(aaa) result = context.result result = urllib.unquote_plus(result) url = client.parseDOM(result, 'iframe', ret='src')[-1] result = client.request(url, headers = headers) else: result = resul unpacked = '' packed = result.split('\n') for i in packed: try: unpacked += jsunpack.unpack(i) except: pass result += unpacked result = urllib.unquote_plus(result) var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result) rplcs = re.findall(';.+?=(.+?).replace\([\"\'](.+?)[\"\']\s*,\s*[\"\']([^\"\']*)[\"\']',result) var_dict = dict(var) file = re.compile("'file'\s*(.+?)\)").findall(result)[0] file = file.replace('\'','') for v in var_dict.keys(): file = file.replace(v,var_dict[v]) file = file.replace('+','').replace(',','').strip().replace(' ', '') log("Sawlive: Found file url: " + file) if 'f4m' in file: return file try: log("Sawlive: Finding m3u8 link.") if not file.startswith('http'): raise Exception() url = client.request(file, output='geturl') if not '.m3u8' in url: raise Exception() url += '|%s' % urllib.urlencode({'User-Agent': client.agent(), 'Referer': file}) log("Sawlive: Found m3u8 link: " + url) return url except: log("Sawlive: m3u8 link not found, finding rtmp.") pass strm = re.compile("'streamer'\s*(.+?)\)").findall(result)[0] strm = strm.replace('\'','') for v in var_dict.keys(): strm = strm.replace(v,var_dict[v]) strm = strm.replace('+','').replace(',','').strip().replace(' ', '') swf = re.compile("SWFObject\('(.+?)'").findall(result)[0].replace(' ', '') url = '%s playpath=%s swfUrl=%s pageUrl=%s live=1 timeout=60' % (strm, file, swf, url) url = urllib.unquote(url).replace('unescape(','') for r in rplcs: url = url.replace(r[1],r[2]) log("Sawlive: rtmp link found: " + url) return url except Exception as e: log("Sawlive exception:\n" + str(e)) log("Sawlive: Resolver failed. Returning...") return
def resolve(url): try: page = re.compile('//(.+?)/(?:embed|v)/([0-9a-zA-Z-_]+)').findall(url)[0] page = 'http://%s/embed/%s' % (page[0], page[1]) try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0] except: referer = page try: host = urlparse.parse_qs(urlparse.urlparse(url).query)['host'][0] except: host = 'sawlive.tv' headers={'User-Agent': client.agent(),'Host': host, 'Referer': referer, 'Connection': 'keep-alive'} result = client.request(page, referer=referer) result = decryptionUtils.doDemystify(result) url = client.parseDOM(result, 'iframe', ret='src')[-1] url = url.replace(' ', '').replace('+','') var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result) for i in range(100): for v in var: result = result.replace(" %s " % v[0], ' %s '%v[1]) var = re.compile('var\s(.+?)\s*=\s*[\'\"](.+?)[\'\"]').findall(result) var_dict = dict(var) for v in var: if '+' in v[1]: ss = v[1].rstrip('+').replace('"+','').split('+') sg = v[1].rstrip('+').replace('"+','') for s in ss: sg = sg.replace(s, var_dict[s]) var_dict[v[0]]=sg.replace('+','') for i in range(100): for v in var_dict.keys(): url = url.replace("'%s'" % v, var_dict[v]) for v in var_dict.keys(): url = url.replace("(%s)" % v, "(%s)" % var_dict[v]) result = client.request(url, headers = headers) result = decryptionUtils.doDemystify(result) file = re.compile("'file'.+?'(.+?)'").findall(result)[0] log("Sawlive: Found file url: " + file) try: log("Sawlive: Finding m3u8 link.") if not file.startswith('http'): raise Exception() url = client.request(file, output='geturl') if not '.m3u8' in url: raise Exception() url += '|%s' % urllib.urlencode({'User-Agent': client.agent(), 'Referer': file}) log("Sawlive: Found m3u8 link: " + url) return url except: log("Sawlive: m3u8 link not found, finding rtmp.") pass strm = re.compile("'streamer'.+?'(.+?)'").findall(result)[0] swf = re.compile("SWFObject\('(.+?)'").findall(result)[0] url = '%s playpath=%s swfUrl=%s pageUrl=%s live=1 timeout=30' % (strm, file, swf, url) url = urllib.unquote(url) log("Sawlive: rtmp link found: " + url) return url except Exception as e: log("Sawlive exception:\n" + str(e)) log("Sawlive: Resolver failed. Returning...") return
def resolve(url): try: page = re.compile('//(.+?)/(?:embed|v)/([0-9a-zA-Z-_]+)').findall(url)[0] page = 'http://%s/embed/%s' % (page[0], page[1]) try: referer = urlparse.parse_qs(urlparse.urlparse(url).query)['referer'][0] except: referer = page try: host = urlparse.parse_qs(urlparse.urlparse(url).query)['host'][0] except: host = 'sawlive.tv' headers={'User-Agent': client.agent(),'Host': host, 'Referer': referer, 'Connection': 'keep-alive'} result = client.request(page, referer=referer) unpacked = '' packed = result.split('\n') for i in packed: try: unpacked += jsunpack.unpack(i) except: pass result += unpacked result = urllib.unquote_plus(result) result = re.sub('\s\s+', ' ', result) url = client.parseDOM(result, 'iframe', ret='src')[-1] url = url.replace(' ', '') var = re.compile('var\s(.+?)\s*=\s*\'(.+?)\'').findall(result) for i in range(100): for v in var: url = url.replace("'%s'" % v[0], v[1]) for v in var: url = url.replace("(%s)" % v[0], "(%s)" % v[1]) url = re.sub(r"'unescape\((.+?)\)'", r'\1', url) url = re.sub(r"'(.+?)'", r'\1', url) #js functions replaced funcs = re.findall('function\s*(.+?)\((.+?)\){return\s*"?(.+?)\"?\;\}',result) params = re.findall(r"(un.+?)\((.+?)\)", url) funcs2 = re.findall('function\s*(.+?)\((.+?)\){var\s(.+?)\s*=\s*\'(.+?)\';return\s*"?(.+?)\"?\;\}',result) for p in params: for f in funcs: if p[0]==f[0]: if 'unescape(' not in f[2]: url = url.replace('%s(%s)'%(f[0],p[1]),f[2]) else: url = url.replace('%s(%s)'%(p[0],p[1]),p[1]) for f in funcs2: if p[0]==f[0]: url = url.replace('%s(%s)'%(f[0],p[1]),f[3]) result = client.request(url, headers=headers) file = re.compile("'file'.+?'(.+?)'").findall(result)[0] try: if not file.startswith('http'): raise Exception() url = client.request(file, output='geturl') if not '.m3u8' in url: raise Exception() url += '|%s' % urllib.urlencode({'User-Agent': client.agent(), 'Referer': file}) return url except: pass strm = re.compile("'streamer'.+?'(.+?)'").findall(result)[0] swf = re.compile("SWFObject\('(.+?)'").findall(result)[0] url = '%s playpath=%s swfUrl=%s pageUrl=%s live=1 timeout=30' % (strm, file, swf, url) return url except: return