def __getMediaLinkForGuest(self): api_call = '' oRequest = cRequestHandler(self.__sUrl) sHtmlContent = oRequest.request() sPattern = '<source src="([^"]+)" type=\'(.+?)\'>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): url = [] qua = [] for aEntry in aResult[1]: url.append(aEntry[0]) qua.append(aEntry[1]) #Si une seule url if len(url) == 1: api_call = url[0] #si plus de une elif len(url) > 1: #Afichage du tableau ret = VScreateDialogSelect(qua) if (ret > -1): api_call = url[ret] if (api_call): return True, api_call + '|User-Agent=' + UA return False, False
def __getMediaLinkForGuest(self): oParser = cParser() oRequest = cRequestHandler(self.__sUrl) sHtmlContent = oRequest.request() sPattern = 'sources: *\[{file:"([^"]+)",label:"([^"]+)"}' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): #initialisation des tableaux url = [] qua = [] #Replissage des tableaux for i in aResult[1]: url.append(str(i[0])) qua.append(str(i[1])) #Si une seule url if len(url) == 1: api_call = url[0] #si plus de une elif len(url) > 1: #Afichage du tableau ret = VScreateDialogSelect(qua) if (ret > -1): api_call = url[ret] if (api_call): return True, api_call return False, False
def __getMediaLinkForGuest(self): api_call = False oRequest = cRequestHandler(self.__sUrl) sHtmlContent = oRequest.request() oParser = cParser() sPattern = "var lets_play_a_game='([^']+)'" aResult = oParser.parse(sHtmlContent, sPattern) if not (aResult[0]): return False, False key = aResult[1][0] sPattern = "'rc=[^<>]+?\/(.+?)'\.concat" aResult = oParser.parse(sHtmlContent, sPattern) if not (aResult[0]): return False, False ee = aResult[1][0] url2 = 'http://thevideo.me/' + ee + '/' + key oRequest = cRequestHandler(url2) sHtmlContent2 = oRequest.request() code = cPacker().unpack(sHtmlContent2) sPattern = '"vt=([^"]+)' r2 = re.search(sPattern, code) if not (r2): return False, False sPattern = '{"file":"([^"]+)","label":"(.+?)"' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): #initialisation des tableaux url = [] qua = [] #Replissage des tableaux for i in aResult[1]: url.append(str(i[0])) qua.append(str(i[1])) #Si 1 url if len(url) == 1: api_call = url[0] #Afichage du tableau elif len(url) > 1: ret = VScreateDialogSelect(qua) if (ret > -1): api_call = url[ret] if (api_call): return True, api_call + '?direct=false&ua=1&vt=' + r2.group(1) return False, False
def __getMediaLinkForGuest(self): oRequest = cRequestHandler(self.__sUrl) sHtmlContent = oRequest.request() sPattern = '<source src="(.+?)"' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): #tableau choix de serveur url = [] serv = [] No = 1 for i in aResult[1]: url.append(str(i)) serv.append('Liens ' + str(No)) No += 1 #Si une seule url if len(url) == 1: api_call = url[0] #si plus de une elif len(url) > 1: #Afichage du tableau ret = VScreateDialogSelect(serv) if (ret > -1): api_call = url[ret] if (api_call): return True, api_call + '|User-Agent=' + UA return False, False
def __getMediaLinkForGuest(self): oParser = cParser() url = [] qua = [] id = self.__getIdFromUrl(self.__sUrl) sUrl = 'https://embed.tune.pk/play/' + id + '?autoplay=no&ssl=yes&inline=true' oRequest = cRequestHandler(sUrl) sHtmlContent1 = oRequest.request() sPattern = '<meta itemprop="videoQuality" content="(.+?)".+?<meta itemprop="contentURL" content="([^"]+)"' aResult = oParser.parse(sHtmlContent1, sPattern) if (aResult[0] == True): url.append(aResult[1][0][1]) qua.append(aResult[1][0][0] + ' mp4') sPattern = "var requestURL *= *'([^']+)';.+?\"X-secret-Header\":\"(.+?)\"}" aResult = oParser.parse(sHtmlContent1, sPattern) if (aResult[0] == True): vUrl = aResult[1][0][0] Secret = aResult[1][0][1] oRequest = cRequestHandler(vUrl) oRequest.addHeaderEntry('User-Agent', UA) oRequest.addHeaderEntry('X-secret-Header', Secret) sHtmlContent = oRequest.request() sHtmlContent = cUtil().removeHtmlTags(sHtmlContent) sHtmlContent = cUtil().unescape(sHtmlContent) content = json.loads(sHtmlContent) content = content["data"]["details"]["player"] if content: for x in content['sources']: if 'Auto' in str(x['label']): continue url2 = str(x['file']).replace('index',str(x['label'])) url.append(url2) qua.append(repr(x['label'])+ ' m3u8') if len(url) == 1: api_call = url[0] elif len(url) > 1: ret = VScreateDialogSelect(qua) if (ret > -1): api_call = url[ret] if (api_call): return True, api_call + '|User-Agent=' + UA return False, False
def __getMediaLinkForGuest(self): sId = self.__getIdFromUrl(self.__sUrl) sUrl = 'http://vidup.me/embed-' + sId + '.html' stream_url = '' oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() key = self.__getKey(sHtmlContent) getCode = 'http://vidup.me/jwv/' + key oRequest = cRequestHandler(getCode) sHtmlContent2 = oRequest.request() unPacked = cPacker().unpack(sHtmlContent2) oParser = cParser() sPattern = 'vt=([^"]+)"' aResult = oParser.parse(unPacked, sPattern) if (aResult[0] == True): code = aResult[1][0] url=[] qua=[] sPattern = "label: '([0-9]+)p', file: '([^']+)'" aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0]): for aEntry in aResult[1]: url.append(aEntry[1]) qua.append(aEntry[0]) else: sPattern = '"file":"([^"]+)","label":"([0-9]+)p"' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0]): for aEntry in aResult[1]: url.append(aEntry[0]) qua.append(aEntry[1]) #Si une seule url if len(url) == 1: stream_url = url[0] #si plus de une elif len(url) > 1: #Afichage du tableau ret = VScreateDialogSelect(qua) if (ret > -1): stream_url = url[ret] if (stream_url): return True, stream_url + '?direct=false&ua=1&vt=' + code return False, False
def __getMediaLinkForGuest(self): v = self.getHostAndIdFromUrl(self.__sUrl) sId = v[1] sHost = v[0] web_url = 'http://' + sHost + '/videoembed/' + sId HEADERS = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' } req = urllib2.Request(web_url, headers=HEADERS) response = urllib2.urlopen(req) sHtmlContent = response.read() response.close() oParser = cParser() sHtmlContent = oParser.abParse(sHtmlContent, 'data-options=', '" data-player-container', 14) sHtmlContent = cUtil().removeHtmlTags(sHtmlContent) sHtmlContent = cUtil().unescape(sHtmlContent) #.decode('utf-8')) page = json.loads(sHtmlContent) page = json.loads(page['flashvars']['metadata']) if page: url = [] qua = [] for x in page['videos']: url.append(x['url']) qua.append(x['name']) # Si au moins 1 url if (url): # Afichage du tableau ret = VScreateDialogSelect(qua) if (ret > -1): api_call = url[ret] if (api_call): api_call = '%s|User-Agent=%s&Accept=%s' % ( api_call, HEADERS['User-Agent'], HEADERS['Accept']) api_call = api_call + '&Referer=' + self.__sUrl + '&Origin=http://ok.ru' return True, api_call return False, False
def __getMediaLinkForGuest(self): api_call = '' oParser = cParser() oRequest = cRequestHandler(self.__sUrl) sHtmlContent = oRequest.request() fh = open('c:\\test.txt', "w") fh.write(sHtmlContent) fh.close() # 1 er lecteur sDash = re.search("player.src.+?src: *'([^']+)", sHtmlContent, re.DOTALL) if (sDash): return True, sDash.group(1) else: #second lecteur sPattern = '<source src="([^"]+)" type=\'([^"\']+)\'>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): #initialisation des tableaux url = [] qua = [] #Replissage des tableaux for i in aResult[1]: url.append(str(i[0])) qua.append(str(i[1])) #Si 1 url if len(url) == 1: api_call = url[0] #Afichage du tableau elif len(url) > 1: ret = VScreateDialogSelect(qua) if (ret > -1): api_call = url[ret] if (api_call): return True, api_call + '|User-Agent=' + UA return False, False
def __getMediaLinkForGuest(self): sUrl = self.__sUrl oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() if 'File was deleted' in sHtmlContent: return False, False oParser = cParser() sPattern = '(eval\(function\(p,a,c,k,e(?:.|\s)+?\))<\/script>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): sHtmlContent = cPacker().unpack(aResult[1][0]) sPattern = '{file:"([^"]+)",label:"([^"]+)"}' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): #initialisation des tableaux url = [] qua = [] #Remplissage des tableaux for i in aResult[1]: url.append(str(i[0])) qua.append(str(i[1])) #Si 1 url if len(url) == 1: api_call = url[0] #Affichage du tableau elif len(url) > 1: ret = VScreateDialogSelect(qua) if (ret > -1): api_call = url[ret] if (api_call): return True, api_call return False, False
def __getMediaLinkForGuest(self): oParser = cParser() id = self.__getIdFromUrl(self.__sUrl) sUrl = 'https://embed.tune.pk/play/' + id + '?autoplay=&ssl=yes&inline=true' oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() sPattern = "var requestURL *= *'([^']+)'" aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): vUrl = aResult[1][0] oRequest = cRequestHandler(vUrl) sHtmlContent = oRequest.request() sHtmlContent = cUtil().removeHtmlTags(sHtmlContent) sHtmlContent = cUtil().unescape(sHtmlContent) content = json.loads(sHtmlContent) content = content["data"]["details"]["player"] if content: url = [] qua = [] for x in content['sources']: url.append(x['file']) qua.append(repr(x['label'])) if len(url) == 1: api_call = url[0] elif len(url) > 1: ret = VScreateDialogSelect(qua) if (ret > -1): api_call = url[ret] if (api_call): return True, api_call + '|User-Agent=' + UA return False, False
def __getMediaLinkForGuest(self): sUrl = self.__sUrl #sId = self.__getIdFromUrl(self.__sUrl) #sUrl = 'http://vidup.tv/embed-' + sId + '.html' VSlog(sUrl) stream_url = '' oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() #decodage de la page html sHtmlContent3 = sHtmlContent code = '' maxboucle = 3 while (maxboucle > 0): VSlog('loop : ' + str(maxboucle)) sHtmlContent3 = CheckCpacker(sHtmlContent3) #sHtmlContent3 = CheckJJDecoder(sHtmlContent3) #sHtmlContent3 = CheckAADecoder(sHtmlContent3) maxboucle = maxboucle - 1 sHtmlContent = sHtmlContent3 #fh = open('c:\\test.txt', "w") #fh.write(sHtmlContent) #fh.close() oParser = cParser() sPattern = "var thief='([^']+)';" aResult = oParser.parse(sHtmlContent, sPattern) if not (aResult[0]): return False , False key = aResult[1][0].replace('+','') sPattern = "'rc=[^<>]+?\/(.+?)'\.concat" aResult = oParser.parse(sHtmlContent, sPattern) if not (aResult[0]): return False , False ee = aResult[1][0] if ee.endswith('\\'): ee = ee[:-1] url2 = 'https://vidup.tv/' + ee + '/' + key VSlog(url2) oRequest = cRequestHandler(url2) sHtmlContent2 = oRequest.request() #fh = open('c:\\test.txt', "w") #fh.write(sHtmlContent2) #fh.close() code = cPacker().unpack(sHtmlContent2) sPattern = '"vt=([^"]+)' r2 = re.search(sPattern,code) if not (r2): return False,False sPattern = '{"file":"([^"]+)","label":"(.+?)"' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): #initialisation des tableaux url=[] qua=[] #Remplissage des tableaux for i in aResult[1]: url.append(str(i[0])) qua.append(str(i[1])) #Si 1 url if len(url) == 1: api_call = url[0] #Affichage du tableau elif len(url) > 1: ret = VScreateDialogSelect(qua) if (ret > -1): api_call = url[ret] #xbmc.sleep(5000) if (api_call): api_call = api_call + '?direct=false&ua=1&vt=' + r2.group(1) return True, api_call return False, False
def __getMediaLinkForGuest(self): api_call = False oRequest = cRequestHandler(self.__sUrl) sHtmlContent = oRequest.request() #decodage de la page html sHtmlContent3 = sHtmlContent code = '' maxboucle = 3 while (maxboucle > 0): VSlog('loop : ' + str(maxboucle)) sHtmlContent3 = CheckCpacker(sHtmlContent3) #sHtmlContent3 = CheckJJDecoder(sHtmlContent3) #sHtmlContent3 = CheckAADecoder(sHtmlContent3) maxboucle = maxboucle - 1 sHtmlContent = sHtmlContent3 #fh = open('c:\\test.txt', "w") #fh.write(sHtmlContent) #fh.close() #LoadLinks(sHtmlContent) oParser = cParser() sPattern = "var thief='([^']+)';" aResult = oParser.parse(sHtmlContent, sPattern) if not (aResult[0]): VSlog('thief var') return False, False key = aResult[1][0].replace('+', '') sPattern = "'rc=[^<>]+?\/(.+?)'\.concat" aResult = oParser.parse(sHtmlContent, sPattern) if not (aResult[0]): VSlog('url var') return False, False ee = aResult[1][0] url2 = 'https://thevideo.me/' + ee + '/' + key VSlog('unlock url 1 :' + url2) oRequest = cRequestHandler(url2) sHtmlContent2 = oRequest.request() if (True): code = cPacker().unpack(sHtmlContent2) #fh = open('c:\\test.txt', "w") #fh.write(code) #fh.close() sPattern = '"vt=([^"]+)' r2 = re.search(sPattern, code) if not (r2): VSlog('vt error') return False, False if (True): #Unlock url url1 = re.search(r'async src="([^"]+)">', sHtmlContent, re.DOTALL).group(1) VSlog(url1) oRequest = cRequestHandler(url1) sHtmlContenttmp1 = oRequest.request() sId = self.__getIdFromUrl(self.__sUrl) url2 = 'https://thevideo.website/api/slider/' + sId VSlog(url2) oRequest = cRequestHandler(url2) sHtmlContenttmp2 = oRequest.request() #url3 = re.search(r'"src":"([^"]+)"', sHtmlContenttmp2,re.DOTALL).group(1) #VSlog(url3) #oRequest = cRequestHandler(url3) #sHtmlContenttmp3 = oRequest.request() xbmc.sleep(1000) sPattern = '{"file":"([^"]+)","label":"(.+?)"' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): #initialisation des tableaux url = [] qua = [] #Remplissage des tableaux for i in aResult[1]: url.append(str(i[0])) qua.append(str(i[1])) #Si 1 url if len(url) == 1: api_call = url[0] #Affichage du tableau elif len(url) > 1: ret = VScreateDialogSelect(qua) if (ret > -1): api_call = url[ret] #xbmc.sleep(5000) #api_call ='https://n4081.thevideo.me:8777/ivcgn7pgt23xu37wrbrovparhhdg6yozy42ehjynz3p3lxyt2da7ibbxyhzjgbcxf5vtsutqndvnbfcpxvelknwgfy3pbkml7ff3s2baxyzssn7o6rw66s2gcnlmzejg75pcbw2io7vdcqkg3o2ggpduysgsbybagh434jamjp3pc5gdvqc7tpfd7hxn4hdx5p2klae7mrjecghepspd6jezziuqi4xrfsbg5hldgqfirxevcaaurglqznpxivy5wndsnvedx4xokoonky77bi4mjzzq/v.mp4?direct=false&ua=1&vt=pw42hcaoyjkxkx3qfwd4gdyoc775sk55pq7sqsr7rsv4rp3qk4huxuitpwqolirqnsmcyomiwarevrb4mt4lgbouyzxvtx3z4i3it6m3gr4lke7tske5sljujqarhotsraukqq4nqwkzoqdqw5qo7zjmobw5vzwd6r5oudfvp3deh2xo3boy75pkrzybt2mftelbbbqcifmoezvqw3cqeanck5lmzhshcph2qtseoakvw26bscztw44didbp63qrmc56j3wu7kmg6bhpiidfstx57m' if (api_call): api_call = api_call + '?direct=false&ua=1&vt=' + r2.group(1) return True, api_call return False, False