def DecodeAllThePage(html): #html = urllib.unquote(html) Maxloop = 10 #unescape while (Maxloop > 0): Maxloop = Maxloop - 1 r = re.search(r'unescape\("([^"]+)"\)', html, re.DOTALL | re.UNICODE) if not r: break tmp = cUtil().unescape(r.group(1)) html = html[:r.start()] + tmp + html[r.end():] #unwise while (Maxloop > 0): Maxloop = Maxloop - 1 r = re.search(r'(;eval\(function\(w,i,s,e\){.+?\)\);)\s*<', html, re.DOTALL | re.UNICODE) if not r: break tmp = data = unwise.unwise_process(r.group(1)) html = html[:r.start()] + tmp + html[r.end():] return html
def get_videos(self,url): videos = [] html = requests.get(url, headers=self.hdr).text mlink = SoupStrainer('div', {'class':'entry'}) videoclass = BeautifulSoup(html, parseOnlyThese=mlink) try: links = videoclass.findAll('iframe') for link in links: vidurl = link.get('src') if 'tamiltvtube' in vidurl: headers = self.hdr headers['Referer'] = url slink = requests.get(vidurl, headers=headers).text hoster = 'TamilTVTube ' srclist = re.findall('(\[.*?\])', slink)[0] strlinks = eval(srclist) for strlink in strlinks: elink = strlink['file'] if '&' in elink: elink = urllib.quote(elink) try: qual = strlink['label'] except: qual = 'HLS' vidhost = hoster + qual videos.append((vidhost,elink)) elif 'videozupload' in vidurl: headers = self.hdr headers['Referer'] = url html = requests.get(vidurl, headers=headers).text match = re.search('id="container"(.+?</script>)', html, re.DOTALL) if match: data = match.group(1) while 'w,i,s,e' in data: data = unwise.unwise_process(data) match = re.search("source:\s*'([^']+)", data) if match: elink = match.group(1) vidhost = 'GVideo' videos.append((vidhost,elink)) else: self.resolve_media(vidurl,videos) except: pass try: links = videoclass.findAll('a', {'type':'button'}) for link in links: vidurl = re.findall("(http.*?)'",link.get('onclick'))[0] if 'tv?vq=medium#/' in vidurl: vidurl = vidurl.replace('tv?vq=medium#/','') self.resolve_media(vidurl,videos) except: pass return videos
def get_videos(self,url): videos = [] html = requests.get(url, headers=self.hdr).text try: links = re.findall('(<iframe.+?iframe>)',html) for link in links: vidurl = re.findall('src="([^"]+)',link)[0] #xbmc.log("vid_url = %s" %vidurl,xbmc.LOGNOTICE) if 'tamiltvtube' in vidurl: headers = self.hdr headers['Referer'] = url slink = requests.get(vidurl, headers=headers).text hoster = 'TamilTVTube ' srclist = re.findall('(\[.*?\])', slink)[0] strlinks = eval(srclist) for strlink in strlinks: elink = strlink['file'] if '&' in elink: elink = urllib.quote(elink) try: qual = strlink['label'] except: qual = 'HLS' vidhost = hoster + qual videos.append((vidhost,elink)) elif 'videozupload' in vidurl: headers = self.hdr headers['Referer'] = url html = requests.get(vidurl, headers=headers).text match = re.search('id="container"(.+?</script>)', html, re.DOTALL) if match: data = match.group(1) while 'w,i,s,e' in data: data = unwise.unwise_process(data) match = re.search("source:\s*'([^']+)", data) if match: elink = match.group(1) vidhost = 'GVideo' videos.append((vidhost,elink)) else: vidurl = vidurl.split('&')[0] self.resolve_media(vidurl,videos) except: pass try: vidurl = re.findall("window.open\('([^']+)",html)[0] vidurl = vidurl.split('&')[0] if 'tv?vq=medium#/' in vidurl: vidurl = vidurl.replace('tv?vq=medium#/','') self.resolve_media(vidurl,videos) except: pass return videos
class cHoster(iHoster): def __init__(self): self.__sDisplayName = 'Netu' self.__sFileName = self.__sDisplayName def getDisplayName(self): return self.__sDisplayName def setDisplayName(self, sDisplayName): self.__sDisplayName = sDisplayName + ' [COLOR skyblue]' + self.__sDisplayName + '[/COLOR]' def setFileName(self, sFileName): self.__sFileName = sFileName def getFileName(self): return self.__sFileName def setUrl(self, sUrl): self.__sUrl = sUrl.replace('https','http') self.__sUrl = self.__sUrl.replace('http://netu.tv/','http://hqq.tv/') self.__sUrl = self.__sUrl.replace('http://waaw.tv/','http://hqq.tv/') self.__sUrl = self.__sUrl.replace('http://hqq.tv/player/hash.php?hash=','http://hqq.tv/player/embed_player.php?vid=') self.__sUrl = self.__sUrl.replace('http://hqq.tv/watch_video.php?v=','http://hqq.tv/player/embed_player.php?vid=') def __getIdFromUrl(self): sPattern = 'https*:\/\/hqq\.(?:tv|player|watch)\/player\/embed_player\.php\?vid=([0-9A-Za-z]+)' oParser = cParser() aResult = oParser.parse(self.__sUrl, sPattern) if (aResult[0] == True): return aResult[1][0] return '' def getPluginIdentifier(self): return 'netu' def isDownloadable(self): return False def getMediaLink(self): return self.__getMediaLinkForGuest() def __getMediaLinkForGuest(self): api_call = '' id = self.__getIdFromUrl() self.__sUrl = 'http://hqq.tv/player/embed_player.php?vid=' + id + '&autoplay=no' headers = {'User-Agent': UA , #'Host' : 'hqq.tv', 'Referer': 'http://hqq.tv/', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', #'Accept-Encoding':'gzip, deflate, br', #'Content-Type': 'text/html; charset=utf-8' } player_url = self.__sUrl req = urllib2.Request(player_url, None, headers) try: response = urllib2.urlopen(req) html = response.read() response.close() except urllib2.URLError, e: VSlog(e.read()) VSlog(e.reason) html = e.read() Host = 'https://hqq.watch/' data = '' code_crypt = re.search('(;eval\(function\(w,i,s,e\){.+?\)\);)\s*<', html, re.DOTALL) if code_crypt: data = unwise.unwise_process(code_crypt.group(1)) else: VSlog('prb1') if data: http_referer = '' _pass = '' iss = GetIp() vid = re.search('&vid=([^&]+)', data, re.DOTALL).group(1) at = re.search('&at=([^&]+)', data, re.DOTALL).group(1) r = re.search('&http_referer=([^&]+)', data, re.DOTALL) if r: http_referer = r.group(1) url2 = Host + "sec/player/embed_player.php?iss=" + iss + "&vid=" + vid + "&at=" + at + "&autoplayed=yes&referer=on&http_referer=" + http_referer + "&pass="******"&embed_from=&need_captcha=0" #VSlog( url2 ) req = urllib2.Request(url2,None,headers) try: response = urllib2.urlopen(req) data = response.read() response.close() except urllib2.URLError, e: VSlog(e.read()) VSlog(e.reason) data = e.read() data = urllib.unquote(data) data = DecodeAllThePage(data) at = re.search(r'var\s*at\s*=\s*"([^"]*?)"', data) l = re.search(r'link_1: ([a-zA-Z]+), server_1: ([a-zA-Z]+)', data) vid_server = re.search(r'var ' + l.group(2) + ' = "([^"]+)"', data).group(1) vid_link = re.search(r'var ' + l.group(1) + ' = "([^"]+)"', data).group(1) #new video id, not really usefull m = re.search(r' vid: "([a-zA-Z0-9]+)"}', data) if m: id = m.group(1) if vid_server and vid_link and at: #get_data = {'server': vid_server.group(1), 'link': vid_link.group(1), 'at': at.group(1), 'adb': '0/','b':'1','vid':id} #,'iss':'MzEuMz' get_data = {'server_1': vid_server, 'link_1': vid_link, 'at': at.group(1), 'adb': '0/','b':'1','vid':id} headers['x-requested-with'] = 'XMLHttpRequest' req = urllib2.Request(Host + "/player/get_md5.php?" + urllib.urlencode(get_data), None, headers) try: response = urllib2.urlopen(req) except urllib2.URLError, e: VSlog(str(e.read())) VSlog(str(e.reason)) data = response.read() #VSlog(data) response.close() file_url = re.search(r'"obf_link"\s*:\s*"([^"]*?)"', data) if file_url: list_url = decodeUN(file_url.group(1).replace('\\', ''))
class cHoster(iHoster): def __init__(self): self.__sDisplayName = 'netu' self.__sFileName = self.__sDisplayName def getDisplayName(self): return self.__sDisplayName def setDisplayName(self, sDisplayName): self.__sDisplayName = sDisplayName + ' [COLOR skyblue]'+self.__sDisplayName+'[/COLOR]' def setFileName(self, sFileName): self.__sFileName = sFileName def getFileName(self): return self.__sFileName def setUrl(self, sUrl): self.__sUrl = sUrl.replace('https','http') self.__sUrl = sUrl.replace('http://netu.tv/','http://hqq.tv/') self.__sUrl = self.__sUrl.replace('http://waaw.tv/','http://hqq.tv/') self.__sUrl = self.__sUrl.replace('http://hqq.tv/watch_video.php?v=','http://hqq.tv/player/embed_player.php?vid=') def __getIdFromUrl(self): sPattern = 'https*:..hqq.tv.player.embed_player.php\?vid=([0-9A-Z]+)' oParser = cParser() aResult = oParser.parse(self.__sUrl, sPattern) if (aResult[0] == True): return aResult[1][0] return '' def __modifyUrl(self, sUrl): return def getPluginIdentifier(self): return 'netu' def isDownloadable(self): return False def isJDownloaderable(self): return True def getPattern(self): return ''; def checkUrl(self, sUrl): return True def getUrl(self): return self.__sUrl def getMediaLink(self): return self.__getMediaLinkForGuest() #def GetIP(self): # req = urllib2.Request('http://hqq.tv/player/ip.php?type=json') # response = urllib2.urlopen(req) # data = response.read() # response.close() # result = json.loads(data) # ip = result[u'ip'] # ip = urllib.quote(ip) # return ip def __getMediaLinkForGuest(self): api_call = '' id = self.__getIdFromUrl() self.__sUrl = 'http://hqq.tv/player/embed_player.php?vid=' + id + '&autoplay=no' UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0' #UA = 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us)' headers = {'User-Agent': UA , 'Host' : 'hqq.tv', 'Referer': 'http://hqq.tv/', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Content-Type': 'text/html; charset=utf-8'} player_url = self.__sUrl req = urllib2.Request(player_url, None, headers) try: response = urllib2.urlopen(req) html = response.read() response.close() except urllib2.URLError, e: #xbmc.log( e.read()) #xbmc.log(e.reason) html = e.read() #fh = open('c:\\netu1.txt', "w") #fh.write(html) #fh.close() data = '' code_crypt = re.search('(;eval\(function\(w,i,s,e\){.+?\)\);)\s*<', html, re.DOTALL) if code_crypt: data = unwise.unwise_process(code_crypt.group(1)) else: cConfig().log('prb1') #xbmc.log('data :' + data) if data: iss = GetIp() vid = re.search('var vid *= *"([^"]+)";', data, re.DOTALL).group(1) at = re.search('var at = "([^"]+)";', data, re.DOTALL).group(1) http_referer = re.search('var http_referer *= *"([^"]+)";', data, re.DOTALL).group(1) _pass = '' url2 = "http://hqq.tv/sec/player/embed_player.php?iss="+iss+"&vid="+vid+"&at="+at+"&autoplayed=yes&referer=on&http_referer="+http_referer+"pass="******"&embed_from=&need_captcha=0" #cConfig().log(url2) req = urllib2.Request(url2,None,headers) try: response = urllib2.urlopen(req) data = response.read() response.close() except urllib2.URLError, e: #xbmc.log( e.read()) #xbmc.log(e.reason) data = e.read() data = urllib.unquote(data) data = DecodeAllThePage(data) #fh = open('c:\\netu2.txt', "w") #fh.write(data) #fh.close() at = re.search(r'var\s*at\s*=\s*"([^"]*?)"', data) l = re.search(r'link_1: ([a-zA-Z]+), server_1: ([a-zA-Z]+)', data) vid_server = re.search(r'var ' + l.group(2) + ' = "([^"]+)"', data).group(1) vid_link = re.search(r'var ' + l.group(1) + ' = "([^"]+)"', data).group(1) #new video id, not really usefull m = re.search(r' vid: "([a-zA-Z0-9]+)"}', data) if m: id = m.group(1) #id = '9QQrbdts6wNA' if vid_server and vid_link and at: #get_data = {'server': vid_server.group(1), 'link': vid_link.group(1), 'at': at.group(1), 'adb': '0/','b':'1','vid':id} #,'iss':'MzEuMz' get_data = {'server_1': vid_server, 'link_1': vid_link, 'at': at.group(1), 'adb': '0/','b':'1','vid':id} #xbmc.log(str(get_data)) headers['x-requested-with'] = 'XMLHttpRequest' req = urllib2.Request("http://hqq.tv/player/get_md5.php?" + urllib.urlencode(get_data),None,headers) try: response = urllib2.urlopen(req) except urllib2.URLError, e: cConfig().log(str(e.read())) cConfig().log(str(e.reason)) data = response.read() response.close() #fh = open('c:\\netu3.txt', "w") #fh.write(data) #fh.close() file_url = re.search(r'"file"\s*:\s*"([^"]*?)"', data) if file_url: list_url = _decode2(file_url.group(1).replace('\\', ''))