def __resolve(self, result): try: result = client.parseDOM(result, 'div', attrs={'id': 'player'})[0] try: url = client.parseDOM(result, 'iframe', ret='src')[0] except: pass try: url = base64.b64decode( re.compile('decode\("(.+?)"').findall(result)[0]) except: pass if 'proxy.link=tunemovie' in url: url = re.compile('proxy[.]link=tunemovie[*]([^&]+)').findall( url)[-1] key = base64.b64decode('Q05WTmhPSjlXM1BmeFd0UEtiOGg=') decrypter = pyaes.Decrypter( pyaes.AESModeOfOperationECB(key + (24 - len(key)) * '\0')) url = url.decode('hex') url = decrypter.feed(url) + decrypter.feed() url = resolvers.request(url) return url except: return
def __decrypt(self, key, txt): try: decrypter = pyaes.Decrypter(pyaes.AESModeOfOperationECB(key)) txt = decrypter.feed(txt) + decrypter.feed() return txt except: return
def __decrypt(self, key, txt): try: key = base64.b64decode(key) decrypter = pyaes.Decrypter(pyaes.AESModeOfOperationECB(key)) txt = base64.decodestring(txt) txt = decrypter.feed(txt) + decrypter.feed() return txt except: return
def _gkdecrypt(self, key, str): try: key += (24 - len(key)) * '\0' decrypter = pyaes.Decrypter(pyaes.AESModeOfOperationECB(key)) str = decrypter.feed(str.decode('hex')) + decrypter.feed() str = str.split('\0', 1)[0] return str except: return
def _decrypt(self, url): import base64 decrypter = pyaes.Decrypter( pyaes.AESModeOfOperationCBC( base64.urlsafe_b64decode( 'cXdlcnR5dWlvcGFzZGZnaGprbHp4YzEyMzQ1Njc4OTA='), '\0' * 16)) url = base64.decodestring(url) url = decrypter.feed(url) + decrypter.feed() return url
def evp_decode(cipher_text, passphrase, salt=None): cipher_text = base64.b64decode(cipher_text) if not salt: salt = cipher_text[8:16] cipher_text = cipher_text[16:] data = evpKDF(passphrase, salt) decrypter = pyaes.Decrypter( pyaes.AESModeOfOperationCBC(data['key'], data['iv'])) plain_text = decrypter.feed(cipher_text) plain_text += decrypter.feed() return plain_text
def get_sources(self, url, hosthdDict, hostDict, locDict): try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) result = client.source(url) u = client.parseDOM(result, 'meta', ret='content', attrs={'property': 'og:url'})[0] links = re.compile( '<a href="([?]link_id=.+?)".+?>(.+?)</a>').findall(result) links = [u + i[0] for i in links if 'server' in i[1].lower()] for u in links[:3]: try: result = client.source(u) url = client.parseDOM(result, 'source', ret='src', attrs={'type': 'video/.+?'}) if len(url) > 0: i = googleplus.tag(url[0])[0] sources.append({ 'source': 'GVideo', 'quality': i['quality'], 'provider': 'Clickplay', 'url': i['url'] }) url = re.compile( 'proxy[.]link=clickplay[*](.+?)"').findall(result)[-1] key = base64.b64decode('bW5pcUpUcUJVOFozS1FVZWpTb00=') decrypter = pyaes.Decrypter( pyaes.AESModeOfOperationECB(key + (24 - len(key)) * '\0')) url = url.decode('hex') url = decrypter.feed(url) + decrypter.feed() if 'google' in url: source = 'GVideo' elif 'vk.com' in url: source = 'VK' else: raise Exception() url = resolvers.request(url) for i in url: sources.append({ 'source': source, 'quality': i['quality'], 'provider': 'Clickplay', 'url': i['url'] }) except: pass return sources except: return sources
def get_sources(self, url, hosthdDict, hostDict, locDict): try: sources = [] if url == None: return sources content = re.compile('(.+?)\sS\d*E\d*$').findall(url) if len(content) == 0: query = urlparse.urljoin(self.base_link, self.detail_link % url) result = client.source(query) result = json.loads(result) result = result['data']['chapters'][0]['id'] else: url, s, e = re.compile('(.+?)\sS(\d*)E(\d*)$').findall(url)[0] ep = 'S%02dE%03d' % (int(s), int(e)) query = urlparse.urljoin(self.base_link, self.detail_link % url) result = client.source(query) result = json.loads(result) result = result['data']['chapters'] result = [ i['id'] for i in result if ep in i['title'].encode('utf-8').upper() ][0] url = urlparse.urljoin(self.base_link, self.stream_link % result) result = client.source(url) result = json.loads(result)['data'] for i in result: try: if not i['server'] == 'ggvideo': raise Exception() quality = i['quality'].replace('720p', 'HD') if not quality in ['1080p', 'HD']: quality = 'SD' key = base64.b64decode( 'cXdlcnR5dWlvcGFzZGZnaGprbHp4YzEyMzQ1Njc4OTA=') decrypter = pyaes.Decrypter( pyaes.AESModeOfOperationCBC(key, '\0' * 16)) url = base64.decodestring(i['stream']) url = decrypter.feed(url) + decrypter.feed() if not url.startswith('http'): raise Exception() sources.append({ 'source': 'GVideo', 'quality': quality, 'provider': 'PlayBox', 'url': url }) except: pass return sources except: return sources