def getLiveSource(self): try: logger.debug(control.setting('livelocal')) if control.setting('livelocal') == 'true': dataPath = control.dataPath filename = os.path.join(dataPath, 'livestreams_wip.json') filename = open(filename) result = filename.read() filename.close() else: result = client.request(self.live_link) channels = json.loads(result) channelNames = channels.keys() channelNames.sort() for channel in channelNames: channelObj = channels[channel] if not channelObj['enabled'] == 'false': self.list.append({ 'name': channel, 'poster': channelObj['iconimage'], 'url': channelObj['channelUrl'], 'provider': 'json', 'direct': True }) return self.list except: pass
def resolve(url): try: result = client.source(url) dek = EnkDekoder.dekode(result) if not dek == None: url = client.parseDOM(dek, "param", attrs={"name": "flashvars"}, ret="value")[0] else: dek = result url = re.compile('file*:*"(http.+?)"').findall(dek)[0] if re.search(';video_url', url): url = re.findall(';video_url=(.+?)&', url)[0] elif re.search('iframe src=', url): url = re.findall('<iframe src="(.+?)"', url)[0] url = url.replace('_ipod.mp4', '.flv') url = url.replace('preview', 'edit') logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: quality = '' sources = [] if url == None: return sources try: result = client.source(url, headers=self.headers) except: result = '' result = json.loads(result) try : url = result['resultObj']['src'] url = url.replace('http://','https://').replace('/z/','/i/').replace('manifest.f4m', 'master.m3u8').replace('2000,_STAR.','2000,3000,4500,_STAR.') cookie = client.source(url, headers=self.headers, output='cookie') result = client.source(url, headers=self.headers) match = re.compile("BANDWIDTH=[0-9]+,RESOLUTION=[0-9]+x(.+?),[^\n]*\n([^\n]*)\n").findall(result) if match: for (res, url) in match: try : host = 'hotstar' quality = self.res_map[res] url = '%s|Cookie=%s' % (url, cookie) sources.append({'source': host, 'parts': '1', 'quality': quality, 'provider': 'Hotstar', 'url': url, 'direct':True}) except: pass except: pass logger.debug('%s SOURCES [%s]' % (__name__,sources)) return sources except: return sources
def run(self, content, name, url, year, imdb, tvdb, meta): if control.window.getProperty('PseudoTVRunning') == 'True': return control.player.play(url, control.item(path=url)) self.getVideoInfo(content, name, year, imdb, tvdb) if self.folderPath.startswith('plugin://') and not meta == None: poster, thumb, meta = self.getMeta(meta) else: poster, thumb, meta = self.getLibraryMeta(meta) logger.debug(' meta %s' % (meta)) if not type(url) == list: url = [url] playlist = control.playlist playlist.clear() for i in range(0, len(url)): if len(url) > 1: meta['title'] = '%s Part # %s' % (name, str(i + 1)) try: iconImage = meta['iconImage'] except: iconImage = 'DefaultVideo.png' item = control.item(name, path=url[i], iconImage=iconImage, thumbnailImage=thumb) item.setInfo(type='Video', infoLabels=meta) try: item.setArt({ 'poster': poster, 'tvshow.poster': poster, 'season.poster': poster }) except: pass item.setProperty('Video', 'true') item.setProperty('IsPlayable', 'true') playlist.add(url[i], item) control.player.play(playlist) for i in range(0, 240): if self.isPlayingVideo(): break xbmc.sleep(1000) while self.isPlayingVideo(): try: self.totalTime = self.getTotalTime() except: pass try: self.currentTime = self.getTime() except: pass xbmc.sleep(1000) control.window.clearProperty('script.trakt.ids') time.sleep(5)
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: quality = '' sources = [] if url == None: return sources self.login() #url = urlparse.urljoin(self.base_link_1, url) url = 'http://erosnow.com/profiles/1000218?platform=2&q=auto' try: result = client.source(url) except: result = '' result = json.loads(result) #try : # sources.append({'source': host, 'parts': '1', 'quality': quality, 'provider': 'Hotstar', 'url': url, 'direct':True}) #except: # client.printException('') # pass logger.debug('%s SOURCES [%s]' % (__name__,sources)) return sources except: return sources
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: quality = '' sources = [] if url == None: return sources self.login() #url = urlparse.urljoin(self.base_link_1, url) url = 'http://erosnow.com/profiles/1000218?platform=2&q=auto' try: result = client.source(url) except: result = '' result = json.loads(result) #try : # sources.append({'source': host, 'parts': '1', 'quality': quality, 'provider': 'Hotstar', 'url': url, 'direct':True}) #except: # client.printException('') # pass logger.debug('%s SOURCES [%s]' % (__name__, sources)) return sources except: return sources
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: sources = [] if url == None: return sources try: import xbmc ip = xbmc.getIPAddress() except: ip = 'London' url = 'http://cdn.einthusan.com/geturl/%s/hd/%s/' % (url, ip) url = client.request(url) sources.append({ 'source': 'einthusan', 'quality': 'HD', 'provider': 'Einthusan', 'url': url, 'direct': True }) logger.debug('%s SOURCES [%s]' % (__name__, sources)) return sources except: return sources
def resolve(url): try: result = client.source(url) url = re.findall('file: "(.+?)"',result)[0] logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def resolve(url): try: result = client.source(url) url = re.findall('file: "(.+?)"', result)[0] logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: quality = '' sources = [] if url == None: return sources url = self.movie_link % url url = urlparse.urljoin(self.base_link, url) rUrl = url try: result = client.source(url, referer=rUrl) except: result = '' result = result.decode('iso-8859-1').encode('utf-8') result = result.replace('\n', '').replace('\t', '') result = client.parseDOM(result, "div", attrs={"class": "movierip"}) for item in result: try: urls = client.parseDOM(item, "a", ret="href") quality = client.parseDOM(item, "a")[0] quality = quality.lower() if "scr rip" in quality: quality = "SCR" elif "dvd" in quality: quality = "HD" else: quality = "CAM" for i in range(0, len(urls)): urls[i] = client.urlRewrite(urls[i]) host = client.host(urls[0]) if len(urls) > 1: url = "##".join(urls) else: url = urls[0] sources.append({ 'source': host, 'parts': str(len(urls)), 'quality': quality, 'provider': 'DesiHit', 'url': url, 'direct': False }) except: pass logger.debug('%s SOURCES [%s]' % (__name__, sources)) return sources except: return sources
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: quality = '' sources = [] if url == None: return sources try: result = client.source(self.movie_link % (self.base_link_1, url)) except: result = '' result = result.decode('iso-8859-1').encode('utf-8') result = result.replace('\n', '') categories = client.parseDOM(result, "div", attrs={"id": "extras"}) categories = client.parseDOM(categories, "a", attrs={"rel": "category tag"}) for category in categories: category = category.lower() if "scr" in category: quality = "SCR" break elif "bluray" in category: quality = "HD" break links = client.parseDOM( result, "div", attrs={"class": "GTTabs_divs GTTabs_curr_div"}) links += client.parseDOM(result, "div", attrs={"class": "GTTabs_divs"}) for link in links: try: url = re.compile( '(SRC|src|data-config)=[\'|\"](.+?)[\'|\"]').findall( link)[0][1] host = client.host(url) sources.append({ 'source': host, 'parts': '1', 'quality': quality, 'provider': 'HDBuffer', 'url': url, 'direct': False }) except: pass logger.debug('%s SOURCES [%s]' % (__name__, sources)) return sources except: return sources
def resolve(self, url, resolverList): logger.debug('%s ORIGINAL URL [%s]' % (__name__, url)) try: cookie = url.split("|")[1] url = '%s|Cookie=%s&%s' % (url, cookie,urllib.urlencode(self.headers)) logger.debug('%s RESOLVED URL [%s]' % (__name__, url)) return [url] except: return False
def resolve(url): try: url = 'http://playu.net/embed-%s.html' % str(getVideoID(url)) result = client.source(url) url = re.findall('file: "(.+?)"',result)[0] logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) try: result = client.source(url, referer=self.base_link) except: result = '' result = result.decode('iso-8859-1').encode('utf-8') result = result.replace('\n', '').replace('\t', '') quality = client.parseDOM(result, "span", attrs={"class": "calidad2"})[0] parts = client.parseDOM(result, "div", attrs={"class": "player_nav"})[0] parts = client.parseDOM(parts, "a") items = client.parseDOM(result, "div", attrs={"id": "player2"})[0] items = client.parseDOM(items, "div", attrs={"class": "movieplay"}) for i in range(0, len(items)): try: part = parts[i] part = cleantitle.movie(part) if not "full" in part or "option" in part: continue url = re.compile( '(SRC|src|data-config)=[\'|\"](.+?)[\'|\"]').findall( items[i])[0][1] host = client.host(url) sources.append({ 'source': host, 'parts': '1', 'quality': quality, 'provider': 'DesiHDMovies', 'url': url, 'direct': False }) except: pass logger.debug('%s SOURCES [%s]' % (__name__, sources)) return sources except: return sources
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: quality = '' sources = [] if url == None: return sources try: result = client.source(url) except: result = '' result = result.decode('iso-8859-1').encode('utf-8') result = result.replace('\n','') quality = '' result = client.parseDOM(result, name="div", attrs={"class" : "entry-content rich-content"})[0] result = client.parseDOM(result, name="p") try : host = '' urls = [] result = result[1::] serversList = result[::2] linksList = result[1::2] for i in range(0, len(serversList)): try : links = linksList[i] urls = client.parseDOM(links, name="a", ret="href") for j in range(0, len(urls)): try : item = client.source(urls[j], mobile=True) item = client.parseDOM(item, "td")[0] item = re.compile('(SRC|src|data-config)=\"(.+?)\"').findall(item)[0][1] urls[j] = item except: pass if len(urls) > 1: url = "##".join(urls) else: url = urls[0] host = client.host(urls[0]) sources.append({'source': host, 'parts': str(len(urls)), 'quality': quality, 'provider': 'HindiLinks4U', 'url': url, 'direct':False}) except: pass except: pass logger.debug('%s SOURCES [%s]' % (__name__,sources)) return sources except: return sources
def resolve(url): try: user, password = getCredentials() url = 'http://api.premiumize.me/pm-api/v1.php?method=directdownloadlink¶ms[login]=%s¶ms[pass]=%s¶ms[link]=%s' % (user, password, urllib.quote_plus(url)) url = url.replace('filefactory.com/stream/', 'filefactory.com/file/') result = client.request(url, close=False) url = json.loads(result)['result']['location'] logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: quality = '' self.sources = [] if url == None: return self.sources try: result = client.source(url) except: result = '' result = result.decode('iso-8859-1').encode('utf-8') result = client.parseDOM(result, "div", attrs={"class":"col-md-12 mt20"})[0] try : item = client.parseDOM(result, "center")[0] url = re.compile('(SRC|src|data-config)=\"(.+?)\"').findall(item)[0][1] host = client.host(url) self.sources.append({'source': host, 'parts' : '1', 'quality': quality, 'provider': 'iBollyTV', 'url': url, 'direct':False}) except: pass hypermode = False if control.setting('hypermode') == 'false' else True threads = [] try : result = client.parseDOM(result, "div", attrs={"class":"table-responsive"})[0] result = client.parseDOM(result, "tbody")[0] result = client.parseDOM(result, "tr") for item in result: if hypermode : threads.append(workers.Thread(self.get_source, item)) else : self.get_source(item) if hypermode: [i.start() for i in threads] stillWorking = True while stillWorking: stillWorking = False stillWorking = [True for x in threads if x.is_alive() == True] except: pass logger.debug('%s SOURCES [%s]' % (__name__,self.sources)) return self.sources except: return self.sources
def resolve(self, url, resolverList): try : logger.debug('%s ORIGINAL URL [%s]' % (__name__, url)) result = client.source(url, headers=self.headers) try : result = json.loads(result) link = result['link'] except:link = client.parseDOM(result, "source", attrs={"type":"application/x-mpegurl"}, ret="src")[0] url = '%s|Referer=%s' % (link, url) logger.debug('%s RESOLVED URL [%s]' % (__name__, url)) return url except : return False
def resolve(url): try: user, password = getCredentials() url = 'http://api.premiumize.me/pm-api/v1.php?method=directdownloadlink¶ms[login]=%s¶ms[pass]=%s¶ms[link]=%s' % ( user, password, urllib.quote_plus(url)) url = url.replace('filefactory.com/stream/', 'filefactory.com/file/') result = client.request(url, close=False) url = json.loads(result)['result']['location'] logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def resolve(self, url, resolverList=None): logger.debug('%s ORIGINAL URL [%s]' % (__name__, url)) try: url = urlparse.urljoin(self.base_link, url) result = client.request(url) except: pass try: url = re.compile( '"?file"?\s*=\s*"(.+?)"\s+"?label"?\s*=\s*"(\d+)p?"').findall( result) url = [(int(i[1]), i[0]) for i in url] url = sorted(url, key=lambda k: k[0]) url = url[-1][1] try: u = client.request(url, output='headers', redirect=False)['Location'] except: u = client.request(url, output='geturl') q = directstream.googletag(u)[0]['quality'] url = u if 'requiressl=yes' in url: url = url.replace('http://', 'https://') else: url = url.replace('https://', 'http://') return url except: pass try: url = re.compile('file\s*=\s*"(.+?)"').findall(result)[0] if self.base_link in url: raise Exception() url = client.replaceHTMLCodes(url) return url except: pass try: url = json.loads(result)['embed_url'] logger.debug('%s RESOLVED URL [%s]' % (__name__, url)) return url except: pass
def resolve(self, url, resolverList): logger.debug('%s ORIGINAL URL [%s]' % (__name__, url)) try: post = {'el':self.user, 'pw':self.password, 'mobile':'', 'callingcode':'', 'type':'json', 'fbid':''} h = {'Referer':self.base_link} result = client.source(self.login_link, post=urllib.urlencode(post)) result = json.loads(result) t = result['success'] logger.debug('%s RESOLVED URL [%s]' % (__name__, url)) return [url] except: return False
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: quality = '' sources = [] if url == None: return sources url = self.movie_link % url url = urlparse.urljoin(self.base_link, url) rUrl = url try: result = client.source(url, referer=rUrl) except: result = '' result = result.decode('iso-8859-1').encode('utf-8') result = result.replace('\n','').replace('\t','') result = client.parseDOM(result, "div", attrs={"class":"movierip"}) for item in result: try : urls = client.parseDOM(item, "a", ret="href") quality = client.parseDOM(item, "a")[0] quality = quality.lower() if "scr rip" in quality: quality = "SCR" elif "dvd" in quality : quality = "HD" else: quality = "CAM" for i in range(0, len(urls)): urls[i] = client.urlRewrite(urls[i]) host = client.host(urls[0]) if len(urls) > 1: url = "##".join(urls) else: url = urls[0] sources.append({'source': host, 'parts' : str(len(urls)), 'quality': quality, 'provider': 'DesiHit', 'url': url, 'direct':False}) except : pass logger.debug('%s SOURCES [%s]' % (__name__,sources)) return sources except: return sources
def run(self, content, name, url, year, imdb, tvdb, meta): if control.window.getProperty('PseudoTVRunning') == 'True': return control.player.play(url, control.item(path=url)) self.getVideoInfo(content, name, year, imdb, tvdb) if self.folderPath.startswith('plugin://') and not meta == None: poster, thumb, meta = self.getMeta(meta) else: poster, thumb, meta = self.getLibraryMeta(meta) logger.debug(' meta %s' % (meta)) if not type(url) == list: url = [url] playlist = control.playlist playlist.clear() for i in range(0,len(url)): if len(url) > 1: meta['title'] = '%s Part # %s' % (name, str(i+1)) try: iconImage = meta['iconImage'] except: iconImage = 'DefaultVideo.png' item = control.item(name, path=url[i], iconImage=iconImage, thumbnailImage=thumb) item.setInfo(type='Video', infoLabels = meta) try: item.setArt({'poster': poster, 'tvshow.poster': poster, 'season.poster': poster}) except: pass item.setProperty('Video', 'true') item.setProperty('IsPlayable', 'true') playlist.add(url[i], item) control.player.play(playlist) for i in range(0, 240): if self.isPlayingVideo(): break xbmc.sleep(1000) while self.isPlayingVideo(): try: self.totalTime = self.getTotalTime() except: pass try: self.currentTime = self.getTime() except: pass xbmc.sleep(1000) control.window.clearProperty('script.trakt.ids') time.sleep(5)
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) content = re.compile('(.+?)\?episode=\d*$').findall(url) content = 'movie' if len(content) == 0 else 'episode' try: url, episode = re.compile('(.+?)\?episode=(\d*)$').findall(url)[0] except: pass result = client.request(url) url = zip(client.parseDOM(result, 'a', ret='href', attrs = {'target': 'player_iframe'}), client.parseDOM(result, 'a', attrs = {'target': 'player_iframe'})) url = [(i[0], re.compile('(\d+)').findall(i[1])) for i in url] url = [(i[0], i[1][-1]) for i in url if len(i[1]) > 0] if content == 'episode': url = [i for i in url if i[1] == '%01d' % int(episode)] links = [client.replaceHTMLCodes(i[0]) for i in url] for u in links: try: result = client.request(u) result = re.findall('sources\s*:\s*\[(.+?)\]', result)[0] result = re.findall('"file"\s*:\s*"(.+?)".+?"label"\s*:\s*"(.+?)"', result) url = [{'url': i[0], 'quality': '1080p'} for i in result if '1080' in i[1]] url += [{'url': i[0], 'quality': 'HD'} for i in result if '720' in i[1]] for i in url: sources.append({'source': 'gvideo', 'quality': i['quality'], 'provider': 'Pubfilm', 'url': i['url'], 'direct': True, 'debridonly': False}) except: pass logger.debug('%s SOURCES URL %s' % (self.__class__, sources)) return sources except: return sources
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) result = self.request(url, 'Links - Quality') result = result.replace('\n','') quality = re.compile('>Links - Quality(.+?)<').findall(result)[0] quality = quality.strip() if quality == 'CAM' or quality == 'TS': quality = 'CAM' elif quality == 'SCREENER': quality = 'SCR' else: quality = 'SD' links = client.parseDOM(result, 'div', attrs = {'id': 'links'})[0] links = links.split('link_name') for i in links: try: url = client.parseDOM(i, 'a', ret='href')[0] try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['u'][0] except: pass try: url = urlparse.parse_qs(urlparse.urlparse(url).query)['q'][0] except: pass url = urlparse.urlparse(url).query url = base64.b64decode(url) url = re.findall('((?:http|https)://.+?/.+?)(?:&|$)', url)[0] url = client.replaceHTMLCodes(url) url = url.encode('utf-8') host = re.findall('([\w]+[.][\w]+)$', urlparse.urlparse(url.strip().lower()).netloc)[0] host = client.replaceHTMLCodes(host) host = host.encode('utf-8') sources.append({'source': host, 'quality': quality, 'provider': 'Movie25', 'url': url, 'direct': False, 'debridonly': False}) except: pass logger.debug('%s SOURCES [%s]' % (__name__,sources)) return sources except: return sources
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: if url == None: return self.sources url = '%s%s' % (self.base_link, url) try: result = client.source(url) except: result = '' result = result.decode('iso-8859-1').encode('utf-8') result = client.parseDOM(result, "table", attrs={"class": "table table-bordered"})[0] result = client.parseDOM(result, "tbody")[0] result = client.parseDOM(result, "tr") hypermode = False if control.setting( 'hypermode') == 'false' else True threads = [] for item in result: if hypermode: threads.append(workers.Thread(self.get_source, item)) else: self.get_source(item) if hypermode: [i.start() for i in threads] stillWorking = True while stillWorking: stillWorking = False stillWorking = [ True for x in threads if x.is_alive() == True ] logger.debug('%s SOURCES [%s]' % (__name__, self.sources)) return self.sources except: return self.sources
def resolve(self, url, resolverList): try: logger.debug('%s ORIGINAL URL [%s]' % (__name__, url)) result = client.source(url, headers=self.headers) try: result = json.loads(result) link = result['link'] except: link = client.parseDOM(result, "source", attrs={"type": "application/x-mpegurl"}, ret="src")[0] url = '%s|Referer=%s' % (link, url) logger.debug('%s RESOLVED URL [%s]' % (__name__, url)) return url except: return False
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: sources = [] if url == None: return sources try: import xbmc ; ip = xbmc.getIPAddress() except: ip = 'London' url = 'http://cdn.einthusan.com/geturl/%s/hd/%s/' % (url, ip) url = client.request(url) sources.append({'source': 'einthusan', 'quality': 'HD', 'provider': 'Einthusan', 'url': url,'direct':True}) logger.debug('%s SOURCES [%s]' % (__name__,sources)) return sources except: return sources
def get_sources(self, url): try: logger.debug('%s SOURCES URL %s' % (self.__class__, url)) quality = '' sources = [] result = '' links = [self.base_link_1, self.base_link_2, self.base_link_3] for base_link in links: try: result = client.source(base_link + '/' + url) except: result = '' if 'item' in result: break result = result.decode('iso-8859-1').encode('utf-8') result = result.replace('\n','') items = client.parseDOM(result, 'content:encoded')[0] items = re.compile('class=\"single-heading\">(.+?)<span').findall(items) for i in range(0, len(items)): try : if '720p' in items[i]: quality = 'HD' else: quality = 'SD' urls = client.parseDOM(items[i], "a", ret="href") for j in range(0,len(urls)): result = client.source(urls[j]) item = client.parseDOM(result, name="div", attrs={"style":"float:none;height:700px;margin-left:200px"})[0] rUrl = re.compile('(SRC|src|data-config)=[\'|\"](.+?)[\'|\"]').findall(item)[0][1] urls[j] = rUrl host = client.host(urls[0]) url = "##".join(urls) sources.append({'source':host, 'parts': str(len(urls)), 'quality':quality,'provider':'YoDesi','url':url, 'direct':False}) urls = [] except: pass logger.debug('%s SOURCES [%s]' % (__name__,sources)) return sources except: return sources
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: sources = [] if url == None: return sources result = cloudflare.source(url) result = client.parseDOM(result, 'table', attrs={'class': 'rows differ_download'})[0] links = client.parseDOM(result, 'tr') for link in links: try: quality = client.parseDOM(link, 'span', attrs={'class': 'quality_1'})[0].lower() except: quality = 'hd' if quality == 'ts': quality = 'CAM' elif '360p' in quality: quality = 'SD' elif '720p' in quality: quality = 'HD' else: quality = 'SD' url = client.parseDOM(link, 'a', ret="href")[0] host = client.host(url) sources.append({ 'source': host, 'parts': '1', 'quality': quality, 'provider': 'filmywap', 'url': url, 'direct': False, 'debridonly': False }) logger.debug('%s SOURCES [%s]' % (__name__, sources)) return sources except: return sources
def resolve(url): try: result = client.source(url) data = json.loads(result) try : publisherId = data['publisherId'] hostingId = data['hostingId'] videoId = data['content']['videoId'] except: publisherId = data['settings']['publisherId'] hostingId = data['settings']['hostingId'] videoId = data['settings']['videoId'] url = 'https://cdn.video.playwire.com/%s/videos/%s/video-sd.mp4?hosting_id=%s' % (publisherId, videoId, hostingId) logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def resolve(self, url, resolverList=None): logger.debug('%s ORIGINAL URL [%s]' % (__name__, url)) try: url = urlparse.urljoin(self.base_link, url) result = client.request(url) except: pass try: url = re.compile('"?file"?\s*=\s*"(.+?)"\s+"?label"?\s*=\s*"(\d+)p?"').findall(result) url = [(int(i[1]), i[0]) for i in url] url = sorted(url, key=lambda k: k[0]) url = url[-1][1] try: u = client.request(url, output='headers', redirect=False)['Location'] except: u = client.request(url, output='geturl') q = directstream.googletag(u)[0]['quality'] url = u if 'requiressl=yes' in url: url = url.replace('http://', 'https://') else: url = url.replace('https://', 'http://') return url except: pass try: url = re.compile('file\s*=\s*"(.+?)"').findall(result)[0] if self.base_link in url: raise Exception() url = client.replaceHTMLCodes(url) return url except: pass try: url = json.loads(result)['embed_url'] logger.debug('%s RESOLVED URL [%s]' % (__name__, url)) return url except: pass
def resolve(self, url, resolverList): logger.debug('%s ORIGINAL URL [%s]' % (__name__, url)) try: tUrl = url.split('##') if len(tUrl) > 0: url = tUrl else: url = urlparse.urlparse(url).path links = [] for item in url: r = resolvers.request(item, resolverList) if not r: raise Exception() links.append(r) url = links logger.debug('%s RESOLVED URL [%s]' % (__name__, url)) return url except: return False
def resolve(url): try: result = client.source(url) packed = re.search('(eval\(function.*?)\s*</script>', result, re.DOTALL) if packed: js = jsunpack.unpack(packed.group(1)) else: js = result link = re.search('file\s*:\s*"([^"]+)', js) if link: url = link.group(1) else: url = None logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def resolve(url): try: result = client.source(url) packed = re.search('(eval\(function.*?)\s*</script>', result, re.DOTALL) if packed: js = jsunpack.unpack(packed.group(1)) else: js = result link = re.search('file\s*:\s*"([^"]+)', js) if link: url = link.group(1) else : url = None logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def resolve(self, url, resolverList): logger.debug('%s ORIGINAL URL [%s]' % (__name__, url)) try: tUrl = url.split('##') if len(tUrl) > 0: url = tUrl else : url = urlparse.urlparse(url).path links = [] for item in url: r = resolvers.request(item, resolverList) if not r : raise Exception() links.append(r) url = links logger.debug('%s RESOLVED URL [%s]' % (__name__, url)) return url except: return False
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: sources = [] if url == None: return sources url = urlparse.urljoin(self.base_link, url) try: result = client.source(url, referer=self.base_link) except: result = '' result = result.decode('iso-8859-1').encode('utf-8') result = result.replace('\n','').replace('\t','') quality = client.parseDOM(result, "span", attrs={"class":"calidad2"})[0] parts = client.parseDOM(result, "div", attrs={"class":"player_nav"})[0] parts = client.parseDOM(parts, "a") items = client.parseDOM(result, "div", attrs={"id":"player2"})[0] items = client.parseDOM(items, "div", attrs={"class":"movieplay"}) for i in range(0, len(items)): try : part = parts[i] part = cleantitle.movie(part) if not "full" in part or "option" in part : continue url = re.compile('(SRC|src|data-config)=[\'|\"](.+?)[\'|\"]').findall(items[i])[0][1] host = client.host(url) sources.append({'source': host, 'parts' : '1', 'quality': quality, 'provider': 'DesiHDMovies', 'url': url, 'direct':False}) except : pass logger.debug('%s SOURCES [%s]' % (__name__,sources)) return sources except: return sources
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: quality = '' sources = [] if url == None: return sources try: result = client.source(self.movie_link % (self.base_link_1, url)) except: result = '' result = result.decode('iso-8859-1').encode('utf-8') result = result.replace('\n','') categories = client.parseDOM(result, "div", attrs={"id":"extras"}) categories = client.parseDOM(categories, "a", attrs={"rel":"category tag"}) for category in categories: category = category.lower() if "scr" in category: quality = "SCR" break elif "bluray" in category: quality = "HD" break links = client.parseDOM(result, "div", attrs={"class":"GTTabs_divs GTTabs_curr_div"}) links += client.parseDOM(result, "div", attrs={"class":"GTTabs_divs"}) for link in links: try : url = re.compile('(SRC|src|data-config)=[\'|\"](.+?)[\'|\"]').findall(link)[0][1] host = client.host(url) sources.append({'source': host, 'parts': '1', 'quality': quality, 'provider': 'HDBuffer', 'url': url, 'direct':False}) except : pass logger.debug('%s SOURCES [%s]' % (__name__,sources)) return sources except: return sources
def resolve(url): try: user, password = getCredentials() login_data = urllib.urlencode({'user': user, 'pass': password}) login_link = 'http://real-debrid.com/ajax/login.php?%s' % login_data result = client.request(login_link, close=False) result = json.loads(result) error = result['error'] if not error == 0: raise Exception() cookie = result['cookie'] url = 'http://real-debrid.com/ajax/unrestrict.php?link=%s' % url url = url.replace('filefactory.com/stream/', 'filefactory.com/file/') result = client.request(url, cookie=cookie, close=False) result = json.loads(result) url = result['generated_links'][0][-1] url = '%s|Cookie=%s' % (url, urllib.quote_plus(cookie)) logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: sources = [] if url == None: return sources oUrl = urlparse.urljoin(self.base_link_1, url) try: result = client.source(oUrl) except: result = '' csrf = client.parseDOM(result, "meta", attrs={"name":"csrf-token"}, ret="content")[0] url = client.parseDOM(result, "div", attrs={"class":"video-wrapper"})[0] url = client.parseDOM(url, "source", ret="src")[0] url = '%s|Referer=%s' % (url, oUrl) sources.append({'source': "Ditto", 'parts': '1', 'quality': "HD", 'provider': 'Ditto', 'url': url, 'direct':True}) logger.debug('%s SOURCES [%s]' % (__name__,sources)) return sources except: return sources
def resolve(url): try: user, password = getCredentials() login_data = urllib.urlencode({'user' : user, 'pass' : password}) login_link = 'http://real-debrid.com/ajax/login.php?%s' % login_data result = client.request(login_link, close=False) result = json.loads(result) error = result['error'] if not error == 0: raise Exception() cookie = result['cookie'] url = 'http://real-debrid.com/ajax/unrestrict.php?link=%s' % url url = url.replace('filefactory.com/stream/', 'filefactory.com/file/') result = client.request(url, cookie=cookie, close=False) result = json.loads(result) url = result['generated_links'][0][-1] url = '%s|Cookie=%s' % (url, urllib.quote_plus(cookie)) logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def resolve(url): try: result = client.source(url) dek = EnkDekoder.dekode(result) if not dek == None: url = client.parseDOM(dek, "param", attrs={ "name":"flashvars"}, ret = "value")[0] else: dek = result url = re.compile('file*:*"(http.+?)"').findall(dek)[0] if re.search(';video_url',url): url = re.findall(';video_url=(.+?)&',url)[0] elif re.search('iframe src=', url): url = re.findall('<iframe src="(.+?)"',url)[0] url = url.replace('_ipod.mp4', '.flv') url = url.replace('preview','edit') logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def resolve(self, url, resolverList): logger.debug('%s ORIGINAL URL [%s]' % (__name__, url)) try: post = { 'el': self.user, 'pw': self.password, 'mobile': '', 'callingcode': '', 'type': 'json', 'fbid': '' } h = {'Referer': self.base_link} result = client.source(self.login_link, post=urllib.urlencode(post)) result = json.loads(result) t = result['success'] logger.debug('%s RESOLVED URL [%s]' % (__name__, url)) return [url] except: return False
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: if url == None: return self.sources url = '%s%s' % (self.base_link, url) try: result = client.source(url) except: result = '' result = result.decode('iso-8859-1').encode('utf-8') result = client.parseDOM(result, "table", attrs={"class":"table table-bordered"})[0] result = client.parseDOM(result, "tbody")[0] result = client.parseDOM(result, "tr") hypermode = False if control.setting('hypermode') == 'false' else True threads = [] for item in result: if hypermode : threads.append(workers.Thread(self.get_source, item)) else : self.get_source(item) if hypermode: [i.start() for i in threads] stillWorking = True while stillWorking: stillWorking = False stillWorking = [True for x in threads if x.is_alive() == True] logger.debug('%s SOURCES [%s]' % (__name__,self.sources)) return self.sources except: return self.sources
def resolve(url): try: url = url + '#' url = re.compile('http://www.mediaplaybox.com/video/(.+?)#').findall(url)[0] url = 'http://www.mediaplaybox.com/mobile?vinf=%s' % url result = client.request(url, debug=True) try : url = client.parseDOM(result, "div", attrs = {"class":"divider"})[0] url = client.parseDOM(url, "a", ret = "href") url = url[0] url = url.replace('_ipod.mp4', '.flv') return url except: pass try :url = client.parseDOM(result, "meta", attrs={"itemprop":"contentURL"}, ret="content")[0] except: pass logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def resolve(url): try: rUrl = None hdUrl = None try : result = client.source(url) rUrl = client.parseDOM(result, name="source", ret="src")[0] videoId = getVideoID(rUrl) rUrl = 'http://www.apnasave.in/media/player/config_embed.php?vkey=%s' % videoId result = client.source(rUrl) try : hdUrl = client.parseDOM(result, name="hd")[0] url = hdUrl except: pass if hdUrl == None: url = client.parseDOM(result, name="src")[0] except: pass logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: sources = [] if url == None: return sources oUrl = urlparse.urljoin(self.base_link_1, url) try: result = client.source(oUrl) except: result = '' csrf = client.parseDOM(result, "meta", attrs={"name": "csrf-token"}, ret="content")[0] url = client.parseDOM(result, "div", attrs={"class": "video-wrapper"})[0] url = client.parseDOM(url, "source", ret="src")[0] url = '%s|Referer=%s' % (url, oUrl) sources.append({ 'source': "Ditto", 'parts': '1', 'quality': "HD", 'provider': 'Ditto', 'url': url, 'direct': True }) logger.debug('%s SOURCES [%s]' % (__name__, sources)) return sources except: return sources
def resolve(url): try: rUrl = None hdUrl = None try: result = client.source(url) rUrl = client.parseDOM(result, name="source", ret="src")[0] videoId = getVideoID(rUrl) rUrl = 'http://www.apnasave.in/media/player/config_embed.php?vkey=%s' % videoId result = client.source(rUrl) try: hdUrl = client.parseDOM(result, name="hd")[0] url = hdUrl except: pass if hdUrl == None: url = client.parseDOM(result, name="src")[0] except: pass logger.debug('%s URL [%s]' % (__name__, url)) return url except: return
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: quality = '' sources = [] if url == None: return sources try: result = client.source(url) except: result = '' result = result.decode('iso-8859-1').encode('utf-8') result = result.replace('\n', '') quality = '' result = client.parseDOM( result, name="div", attrs={"class": "entry-content rich-content"})[0] result = client.parseDOM(result, name="p") try: host = '' urls = [] result = result[1::] serversList = result[::2] linksList = result[1::2] for i in range(0, len(serversList)): try: links = linksList[i] urls = client.parseDOM(links, name="a", ret="href") for j in range(0, len(urls)): try: item = client.source(urls[j], mobile=True) item = client.parseDOM(item, "td")[0] item = re.compile( '(SRC|src|data-config)=\"(.+?)\"').findall( item)[0][1] urls[j] = item except: pass if len(urls) > 1: url = "##".join(urls) else: url = urls[0] host = client.host(urls[0]) sources.append({ 'source': host, 'parts': str(len(urls)), 'quality': quality, 'provider': 'HindiLinks4U', 'url': url, 'direct': False }) except: pass except: pass logger.debug('%s SOURCES [%s]' % (__name__, sources)) return sources except: return sources
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) try: quality = '' self.sources = [] if url == None: return self.sources try: result = client.source(url) except: result = '' result = result.decode('iso-8859-1').encode('utf-8') result = client.parseDOM(result, "div", attrs={"class": "col-md-12 mt20"})[0] try: item = client.parseDOM(result, "center")[0] url = re.compile('(SRC|src|data-config)=\"(.+?)\"').findall( item)[0][1] host = client.host(url) self.sources.append({ 'source': host, 'parts': '1', 'quality': quality, 'provider': 'iBollyTV', 'url': url, 'direct': False }) except: pass hypermode = False if control.setting( 'hypermode') == 'false' else True threads = [] try: result = client.parseDOM(result, "div", attrs={"class": "table-responsive"})[0] result = client.parseDOM(result, "tbody")[0] result = client.parseDOM(result, "tr") for item in result: if hypermode: threads.append(workers.Thread(self.get_source, item)) else: self.get_source(item) if hypermode: [i.start() for i in threads] stillWorking = True while stillWorking: stillWorking = False stillWorking = [ True for x in threads if x.is_alive() == True ] except: pass logger.debug('%s SOURCES [%s]' % (__name__, self.sources)) return self.sources except: return self.sources
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) 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 = data['title'] imdb = data['imdb'] match = title.replace('-', '').replace(':', '').replace('\'', '').replace(' ', '-').replace('--', '-').lower() url = '%s/movie/%s' % (self.base_link, match) result = client.request(url, limit='1') result = client.parseDOM(result, 'title')[0] if '%TITLE%' in result: raise Exception() result, headers, content, cookie = client.request(url, output='extended') if not imdb in result: raise Exception() else: result, headers, content, cookie = client.request(url, output='extended') print cookie auth = re.findall('__utmx=(.+)', cookie)[0].split(';')[0] auth = 'Bearer %s' % urllib.unquote_plus(auth) headers['Authorization'] = auth headers['X-Requested-With'] = 'XMLHttpRequest' headers['Referer'] = url u = 'http://www.putlocker.systems/ajax/embeds.php' action = 'getMovieEmb' elid = urllib.quote(base64.encodestring(str(int(time.time()))).strip()) token = re.findall("var\s+tok\s*=\s*'([^']+)", result)[0] idEl = re.findall('elid\s*=\s*"([^"]+)', result)[0] post = {'action': action, 'idEl': idEl, 'token': token, 'elid': elid} post = urllib.urlencode(post) r = client.request(u, post=post, headers=headers) r = str(json.loads(r)) r = client.parseDOM(r, 'iframe', ret='.+?') + client.parseDOM(r, 'IFRAME', ret='.+?') links = [] for i in r: try: links += [{'source': 'gvideo', 'quality': directstream.googletag(i)[0]['quality'], 'url': i, 'direct': True}] except: pass links += [{'source': 'openload.co', 'quality': 'SD', 'url': i, 'direct': False} for i in r if 'openload.co' in i] links += [{'source': 'videomega.tv', 'quality': 'SD', 'url': i, 'direct': False} for i in r if 'videomega.tv' in i] for i in links: sources.append({'source': i['source'], 'quality': i['quality'], 'provider': 'Putlocker', 'url': i['url'], 'direct': i['direct'], 'debridonly': False}) logger.debug('%s SOURCES [%s]' % (__name__,sources)) return sources except: import traceback traceback.print_exc() return sources
def get_sources(self, url): logger.debug('%s SOURCES URL %s' % (self.__class__, url)) 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 = data['title'] imdb = data['imdb'] match = title.replace('-', '').replace(':', '').replace( '\'', '').replace(' ', '-').replace('--', '-').lower() url = '%s/movie/%s' % (self.base_link, match) result = client.request(url, limit='1') result = client.parseDOM(result, 'title')[0] if '%TITLE%' in result: raise Exception() result, headers, content, cookie = client.request( url, output='extended') if not imdb in result: raise Exception() else: result, headers, content, cookie = client.request( url, output='extended') print cookie auth = re.findall('__utmx=(.+)', cookie)[0].split(';')[0] auth = 'Bearer %s' % urllib.unquote_plus(auth) headers['Authorization'] = auth headers['X-Requested-With'] = 'XMLHttpRequest' headers['Referer'] = url u = 'http://www.putlocker.systems/ajax/embeds.php' action = 'getMovieEmb' elid = urllib.quote( base64.encodestring(str(int(time.time()))).strip()) token = re.findall("var\s+tok\s*=\s*'([^']+)", result)[0] idEl = re.findall('elid\s*=\s*"([^"]+)', result)[0] post = { 'action': action, 'idEl': idEl, 'token': token, 'elid': elid } post = urllib.urlencode(post) r = client.request(u, post=post, headers=headers) r = str(json.loads(r)) r = client.parseDOM(r, 'iframe', ret='.+?') + client.parseDOM( r, 'IFRAME', ret='.+?') links = [] for i in r: try: links += [{ 'source': 'gvideo', 'quality': directstream.googletag(i)[0]['quality'], 'url': i, 'direct': True }] except: pass links += [{ 'source': 'openload.co', 'quality': 'SD', 'url': i, 'direct': False } for i in r if 'openload.co' in i] links += [{ 'source': 'videomega.tv', 'quality': 'SD', 'url': i, 'direct': False } for i in r if 'videomega.tv' in i] for i in links: sources.append({ 'source': i['source'], 'quality': i['quality'], 'provider': 'Putlocker', 'url': i['url'], 'direct': i['direct'], 'debridonly': False }) logger.debug('%s SOURCES [%s]' % (__name__, sources)) return sources except: import traceback traceback.print_exc() return sources
def get_sources(self, url): try: logger.debug('%s SOURCES URL %s' % (self.__class__, url)) quality = '' sources = [] result = '' links = [self.base_link_1, self.base_link_2, self.base_link_3] for base_link in links: try: result = client.source(base_link + '/' + url) except: result = '' if 'item' in result: break result = result.decode('iso-8859-1').encode('utf-8') result = result.replace('\n', '') items = client.parseDOM(result, 'content:encoded')[0] items = re.compile('class=\"single-heading\">(.+?)<span').findall( items) for i in range(0, len(items)): try: if '720p' in items[i]: quality = 'HD' else: quality = 'SD' urls = client.parseDOM(items[i], "a", ret="href") for j in range(0, len(urls)): result = client.source(urls[j]) item = client.parseDOM( result, name="div", attrs={ "style": "float:none;height:700px;margin-left:200px" })[0] rUrl = re.compile( '(SRC|src|data-config)=[\'|\"](.+?)[\'|\"]' ).findall(item)[0][1] urls[j] = rUrl host = client.host(urls[0]) url = "##".join(urls) sources.append({ 'source': host, 'parts': str(len(urls)), 'quality': quality, 'provider': 'YoDesi', 'url': url, 'direct': False }) urls = [] except: pass logger.debug('%s SOURCES [%s]' % (__name__, sources)) return sources except: return sources
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. ''' import urlparse, sys from resources.lib.libraries import logger params = dict(urlparse.parse_qsl(sys.argv[2].replace('?', ''))) logger.debug(params) try: action = params['action'] except: action = None try: name = params['name'] except: name = None try: title = params['title'] except: title = None try: year = params['year']
def resolve(self, url, resolverList): logger.debug('%s ORIGINAL URL [%s]' % (__name__, url)) url = resolvers.request(url, resolverList) logger.debug('%s RESOLVED URL [%s]' % (__name__, url)) return url