def check_directstreams(url, hoster='', quality='SD'): urls = [] host = hoster if 'google' in url or any(x in url for x in ['youtube.', 'docid=']): urls = directstream.google(url) if not urls: tag = directstream.googletag(url) if tag: urls = [{'quality': tag[0]['quality'], 'url': url}] if urls: host = 'gvideo' elif 'ok.ru' in url: urls = directstream.odnoklassniki(url) if urls: host = 'vk' elif 'vk.com' in url: urls = directstream.vk(url) if urls: host = 'vk' elif any(x in url for x in ['akamaized', 'blogspot', 'ocloud.stream']): urls = [{'url': url}] if urls: host = 'CDN' direct = True if urls else False if not urls: urls = [{'quality': quality, 'url': url}] return urls, host, direct
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources base_url = urlparse.urljoin(self.base_link, url) result = client.request(base_url) id = re.compile('var\s*view_id\s*=\s*"(\d*)"').findall(result)[0] for dil in ['tr', 'or', 'en']: query = self.player_link % (id, dil) result = client.request(query, referer=base_url) try: url = client.parseDOM(result, 'iframe', ret='src')[-1] if 'openload' in url: host = 'openload.co'; direct = False; url = [{'url': url, 'quality': 'HD'}] elif 'ok.ru' in url: host = 'vk'; direct = True; url = directstream.odnoklassniki(url) elif 'vk.com' in url: host = 'vk'; direct = True; url = directstream.vk(url) else: raise Exception() for i in url: sources.append( {'source': host, 'quality': i['quality'], 'language': 'en', 'url': i['url'], 'direct': direct, 'debridonly': False}) except: pass try: url = re.compile('"?file"?\s*:\s*"([^"]+)"\s*,\s*"?label"?\s*:\s*"(\d+)p?"').findall(result) links = [(i[0], '1080p') for i in url if int(i[1]) >= 1080] links += [(i[0], 'HD') for i in url if 720 <= int(i[1]) < 1080] links += [(i[0], 'SD') for i in url if 480 <= int(i[1]) < 720] for i in links: sources.append( {'source': 'gvideo', 'quality': i[1], 'language': 'en', 'url': i[0], 'direct': True, 'debridonly': False}) except: pass return sources except: return sources
def get_sources(self, url, hosthdDict, hostprDict, locDict): try: sources = [] if url == None: return sources base_url = urlparse.urljoin(self.base_link, url) result = client.request(base_url) id = re.compile('var\s*view_id\s*=\s*"(\d*)"').findall(result)[0] for dil in ['tr', 'or']: query = self.player_link % (id, dil) result = client.request(query, referer=base_url) try: url = client.parseDOM(result, 'iframe', ret='src')[-1] if 'openload' in url: host = 'openload.co' ; direct = False ; url = [{'url': url, 'quality': 'HD'}] elif 'ok.ru' in url: host = 'vk' ; direct = True ; url = directstream.odnoklassniki(url) elif 'vk.com' in url: host = 'vk' ; direct = True ; url = directstream.vk(url) else: raise Exception() for i in url: sources.append({'source': host, 'quality': i['quality'], 'provider': 'dizigold', 'url': i['url'], 'direct': direct, 'debridonly': False}) except: pass try: url = re.compile('"?file"?\s*:\s*"([^"]+)"\s*,\s*"?label"?\s*:\s*"(\d+)p?"').findall(result) links = [(i[0], '1080p') for i in url if int(i[1]) >= 1080] links += [(i[0], 'HD') for i in url if 720 <= int(i[1]) < 1080] links += [(i[0], 'SD') for i in url if 480 <= int(i[1]) < 720] for i in links: sources.append({'source': 'gvideo', 'quality': i[1], 'provider': 'dizigold', 'url': i[0], 'direct': True, 'debridonly': False}) except: pass return sources except: return sources
def sources(self, url, hostDict, hostprDict): sources = [] try: if not url: return sources links = self.links_found(url) hostdict = hostDict + hostprDict for url in links: try: valid, host = source_utils.is_host_valid(url, hostdict) if 'mehliz' in url: host = 'MZ' direct = True urls = (self.mz_server(url)) elif 'ok.ru' in url: host = 'vk' direct = True urls = (directstream.odnoklassniki(url)) else: direct = False urls = [{'quality': 'SD', 'url': url}] for x in urls: sources.append({ 'source': host, 'quality': x['quality'], 'language': 'en', 'url': x['url'], 'direct': direct, 'debridonly': False }) except: pass return sources except: return sources
def sources(self, url, hostDict, hostprDict): try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) path = urlparse.urlparse(url).path result = client.request(url) result = re.sub(r'[^\x00-\x7F]+', '', result) result = client.parseDOM(result, 'li') result = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'a')) for i in result] result = \ [i[0] for i in result if len(i[0]) > 0 and path in i[0][0] and len(i[1]) > 0 and 'Altyaz' in i[1][0]][ 0][0] url = urlparse.urljoin(self.base_link, result) result = client.request(url) result = re.sub(r'[^\x00-\x7F]+', '', result) result = client.parseDOM(result, 'div', attrs={'class': 'video-player'})[0] result = client.parseDOM(result, 'iframe', ret='wpfc-data-original-src')[-1] try: url = base64.b64decode( urlparse.parse_qs( urlparse.urlparse(result).query)['id'][0]) if not url.startswith('http'): raise Exception() except: url = client.request(result) url = urllib.unquote_plus(url.decode('string-escape')) frame = client.parseDOM(url, 'iframe', ret='src') if not frame[-1].startswith('http'): frame = 'http:' + frame[-1] else: frame = frame[-1] if len(frame) > 0: url = [client.request(frame, output='geturl')] else: url = re.compile('"(.+?)"').findall(url) url = [ i for i in url if 'ok.ru' in i or 'vk.com' in i or 'openload.io' in i or 'openload.co' in i or 'oload.tv' in i ][0] url = url.replace('openload.io', 'openload.co').replace( 'oload.tv', 'openload.co') try: url = 'http://ok.ru/video/%s' % urlparse.parse_qs( urlparse.urlparse(url).query)['mid'][0] except: pass if 'openload.co' in url: host = 'openload.co' direct = False url = [{'url': url, 'quality': 'HD'}] elif 'ok.ru' in url: host = 'vk' direct = True url = directstream.odnoklassniki(url) elif 'vk.com' in url: host = 'vk' direct = True url = directstream.vk(url) else: raise Exception() for i in url: sources.append({ 'source': host, 'quality': i['quality'], 'language': 'en', 'url': i['url'], 'direct': direct, 'debridonly': False }) return sources except: return sources
def get_sources(self, url, hostDict, hostprDict, locDict): try: sources = [] if url == None: return sources if not str(url).startswith('http'): data = urlparse.parse_qs(url) data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data]) title = cleantitle.get(data['tvshowtitle']) season, episode = '%01d' % int(data['season']), '%01d' % int(data['episode']) year = re.findall('(\d{4})', data['premiered'])[0] url = cache.get(self.dizibox_tvcache, 120) url = [i[0] for i in url if title == i[1]][-1] url = urlparse.urljoin(self.base_link, url) result = client.request(url) if not season == '1': url = client.parseDOM(result, 'a', ret='href', attrs={'class': 'season-.+?'}) url = [i for i in url if '/%s-sezon-' % season in i][0] result = client.request(url) url = client.parseDOM(result, 'a', ret='href') url = [i for i in url if '%s-sezon-%s-bolum-' % (season, episode) in i][0] atr = re.findall('%s.+?\s+(\d{4})' % url, result)[0] if not atr == year: raise Exception() url = urlparse.urljoin(self.base_link, url) result = client.request(url) result = re.sub(r'[^\x00-\x7F]+', '', result) url = re.compile('(<a.*?</a>)', re.DOTALL).findall(result) url = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'a')) for i in url] url = [(i[0][0], i[1][0]) for i in url if len(i[0]) > 0 and len(i[1]) > 0] url = [i[0] for i in url if i[1] == 'Altyazsz'][0] result = client.request(url) result = re.sub(r'[^\x00-\x7F]+', '', result) headers = {'Referer': url} url = client.parseDOM(result, 'span', attrs={'class': 'object-wrapper'})[0] url = client.parseDOM(url, 'iframe', ret='src')[0] url = client.replaceHTMLCodes(url) url = client.request(url, headers=headers) url = client.parseDOM(url, 'param', ret='value', attrs={'name': 'flashvars'})[0] url = urllib.unquote_plus(url) url = 'http://ok.ru/video/%s' % urlparse.parse_qs(urlparse.urlparse(url).query)['mid'][0] url = directstream.odnoklassniki(url) for i in url: sources.append( {'source': 'vk', 'quality': i['quality'], 'provider': 'Dizibox', 'url': i['url'], 'direct': True, 'debridonly': False}) return sources except: return sources
def get_sources(self, url, hostDict, hostprDict, locDict): try: sources = [] if url == None: return sources if not str(url).startswith('http'): data = urlparse.parse_qs(url) data = dict([(i, data[i][0]) if data[i] else (i, '') for i in data]) title = cleantitle.get(data['tvshowtitle']) season, episode = '%01d' % int(data['season']), '%01d' % int( data['episode']) year = re.findall('(\d{4})', data['premiered'])[0] url = cache.get(self.dizibox_tvcache, 120) url = [i[0] for i in url if title == i[1]][-1] url = urlparse.urljoin(self.base_link, url) result = client.request(url) if not season == '1': url = client.parseDOM(result, 'a', ret='href', attrs={'class': 'season-.+?'}) url = [i for i in url if '/%s-sezon-' % season in i][0] result = client.request(url) url = client.parseDOM(result, 'a', ret='href') url = [ i for i in url if '%s-sezon-%s-bolum-' % (season, episode) in i ][0] atr = re.findall('%s.+?\s+(\d{4})' % url, result)[0] if not atr == year: raise Exception() url = urlparse.urljoin(self.base_link, url) result = client.request(url) result = re.sub(r'[^\x00-\x7F]+', '', result) url = re.compile('(<a.*?</a>)', re.DOTALL).findall(result) url = [(client.parseDOM(i, 'a', ret='href'), client.parseDOM(i, 'a')) for i in url] url = [(i[0][0], i[1][0]) for i in url if len(i[0]) > 0 and len(i[1]) > 0] url = [i[0] for i in url if i[1] == 'Altyazsz'][0] result = client.request(url) result = re.sub(r'[^\x00-\x7F]+', '', result) headers = {'Referer': url} url = client.parseDOM(result, 'span', attrs={'class': 'object-wrapper'})[0] url = client.parseDOM(url, 'iframe', ret='src')[0] url = client.replaceHTMLCodes(url) url = client.request(url, headers=headers) url = client.parseDOM(url, 'param', ret='value', attrs={'name': 'flashvars'})[0] url = urllib.unquote_plus(url) url = 'http://ok.ru/video/%s' % urlparse.parse_qs( urlparse.urlparse(url).query)['mid'][0] url = directstream.odnoklassniki(url) for i in url: sources.append({ 'source': 'vk', 'quality': i['quality'], 'provider': 'Dizibox', 'url': i['url'], 'direct': True, 'debridonly': False }) return sources except: return sources
def sources(self, url, hostDict, hostprDict): sources = [] try: if not url: return sources ref = urlparse.urljoin(self.base_link, url) r = client.request(ref) p = re.findall('load_player\((\d+)\)', r) r = client.request(urlparse.urljoin(self.base_link, self.player_link), post={'id': p[0]}, referer=ref, XHR=True) url = json.loads(r).get('value') link = client.request(url, XHR=True, output='geturl', referer=ref) if '1movies.' in link: r = client.request(link, XHR=True, referer=ref) r = [(match[1], match[0]) for match in re.findall( '''['"]?file['"]?\s*:\s*['"]([^'"]+)['"][^}]*['"]?label['"]?\s*:\s*['"]([^'"]*)''', r, re.DOTALL)] r = [(re.sub('[^\d]+', '', x[0]), x[1].replace('\/', '/')) for x in r] r = [x for x in r if x[0]] links = [(x[1], '4K') for x in r if int(x[0]) >= 2160] links += [(x[1], '1440p') for x in r if int(x[0]) >= 1440] links += [(x[1], '1080p') for x in r if int(x[0]) >= 1080] links += [(x[1], 'HD') for x in r if 720 <= int(x[0]) < 1080] links += [(x[1], 'SD') for x in r if int(x[0]) < 720] for url, quality in links: sources.append({ 'source': 'gvideo', 'quality': quality, 'language': 'en', 'url': url, 'direct': True, 'debridonly': False }) else: valid, host = source_utils.is_host_valid(link, hostDict) if not valid: return urls = [] if 'google' in link: host = 'gvideo' direct = True urls = directstream.google(link) if 'google' in link and not urls and directstream.googletag( link): host = 'gvideo' direct = True urls = [{ 'quality': directstream.googletag(link)[0]['quality'], 'url': link }] elif 'ok.ru' in link: host = 'vk' direct = True urls = directstream.odnoklassniki(link) elif 'vk.com' in link: host = 'vk' direct = True urls = directstream.vk(link) else: direct = False urls = [{'quality': 'HD', 'url': link}] for x in urls: sources.append({ 'source': host, 'quality': x['quality'], 'language': 'en', 'url': x['url'], 'direct': direct, 'debridonly': False }) return sources except: return sources