def PlayMovie(url, title, picture): print "Opening url: " + url link = urlresolver.resolve(url) # xbmc.executebuiltin('PlayMedia('+link+')') # xbmc.executebuiltin('RunAddon(plugin.video.youtube)') if link != False: kodi_func.addLink( title.decode('utf-8').encode('utf-8'), link.encode('utf-8'), picture) elif kodi_func.isVideoFormat(url.split(".")[-1]): kodi_func.addLink(title.decode('utf-8').encode('utf-8'), url, picture) print link
def PlayMovie(url, title, picture): print "url: " + url html = network.getHTML(url) # print "html: " + html streamLangNames = [] movieDivContainer = common.parseDOM( html, "div", attrs={"class": "featured-movie-player"}) movieIframeSrc = common.parseDOM(movieDivContainer, "iframe", ret="src") movieID = urlparse.parse_qs(urlparse.urlparse( movieIframeSrc[0]).query)['id'][0] print "MoviedID: ", movieID jsonRaw = network.getHTML("http://playapi.mtgx.tv/v3/videos/stream/" + movieID) print "RAW JSON: ", jsonRaw if jsonRaw: jsonDecoded = json.loads(jsonRaw) else: jsonDecoded = "" if 'streams' not in jsonDecoded: jsonRaw = network.getHTML( "http://dev.morf.lv/mirror.php?url=http://playapi.mtgx.tv/v3/videos/stream/" + movieID).replace( '<base href="http://playapi.mtgx.tv/v3/videos/stream/' + movieID + '" />', '') print "fallback json raw:", jsonRaw jsonDecoded = json.loads(jsonRaw) print "Movie Elements: ", movieDivContainer, movieIframeSrc, jsonDecoded if jsonDecoded['streams']['high'] != None: kodi_func.addLink( title.decode('utf-8').encode('utf-8') + " - HIGH", jsonDecoded['streams']['high'], picture) if jsonDecoded['streams']['hls'] != None: kodi_func.addLink( title.decode('utf-8').encode('utf-8') + " - HLS", jsonDecoded['streams']['hls'], picture) # if jsonDecoded['streams']['medium'] != None: # kodi_func.addLink(title.decode('utf-8').encode('utf-8') + " - MEDIUM", jsonDecoded['streams']['medium'], picture)
def PlayMovie(url, title, picture): # print url session = requests.session() scraper = cfscrape.create_scraper(sess=session) html = scraper.get(url).content # print html # return displayDiv = common.parseDOM(html, "div", attrs={"id": "display"}) # print displayDiv videoContainer = common.parseDOM(displayDiv[0], "iframe", ret="src") print "ATRASTIE VIDEO: " print videoContainer print title.decode('latin-1').encode('utf-8') links = [] if len(videoContainer) > 0: links.append(videoContainer[0]) searchObj = re.search('file: atob\("[\w\d=.,]*"\)', html) if searchObj: resolvedUrl = searchObj.group().replace('file: atob("', '') resolvedUrl = resolvedUrl[:-2] links.append(base64.b64decode(resolvedUrl)) # print resolvedUrl, videoContainer else: print "Well couldn't find jwplayer url" for i in range(0, len(links)): linkUrl = links[i] link = urlresolver.resolve(linkUrl) if link != False: kodi_func.addLink( title.decode('utf-8').encode('utf-8'), link.encode('utf-8'), picture) elif kodi_func.isVideoFormat(linkUrl.split(".")[-1]): kodi_func.addLink( title.decode('utf-8').encode('utf-8'), linkUrl, picture) print "LINKS: " + str(link) # link = re.compile('file:[\s\t]*"(.+?)"').findall(html.decode('windows-1251').encode('utf-8'))[0]
def PlayMovie(url, title, picture): # print url session = requests.session() scraper = cfscrape.create_scraper(sess=session) html = scraper.get('http:' + url).content # print html # return displayDiv = common.parseDOM(html, "div", attrs={"id": "display"}) # print displayDiv videoContainer = common.parseDOM(displayDiv[0], "iframe", ret="src") print "ATRASTIE VIDEO: " print videoContainer print title.decode('latin-1').encode('utf-8') #aha it's not the standard openload.co video print len(videoContainer) if len(videoContainer) == 0: searchObj = re.search('file: atob\("[\w\d=.,]*"\)', html) if searchObj: resolvedUrl = searchObj.group().replace('file: atob("', '') resolvedUrl = resolvedUrl[:-2] videoContainer = [base64.b64decode(resolvedUrl)] print resolvedUrl, videoContainer else: print "Well couldn't decode url" link = urlresolver.resolve(videoContainer[0]) if link != False: kodi_func.addLink( title.decode('utf-8').encode('utf-8') + " - Latviski", link.encode('utf-8'), picture) elif kodi_func.isVideoFormat(videoContainer[0].split(".")[-1]): kodi_func.addLink( title.decode('utf-8').encode('utf-8') + " - Latviski", videoContainer[0], picture) print "LINKS: " + str(link) # link = re.compile('file:[\s\t]*"(.+?)"').findall(html.decode('windows-1251').encode('utf-8'))[0]
def PlayMovie(url, title, picture): print "url: " + url html = network.getHTML(url) # print "html: " + html mainMovieCol = common.parseDOM(html, "div", attrs={"id": "movie"}) print mainMovieCol video = common.parseDOM(mainMovieCol, "iframe", ret="src")[0] try: link = urlresolver.resolve(video) if link != False: kodi_func.addLink( title.decode('utf-8').encode('utf-8') + " - Latviski", link.encode('utf-8'), picture) elif kodi_func.isVideoFormat(video.split(".")[-1]): kodi_func.addLink( title.decode('utf-8').encode('utf-8') + " - Latviski", video, picture) print link except: xbmcgui.Dialog().ok("Opā!", "Nevarēju dekodēt strīmu", "Iespējams ka fails vairs neeksistē", "Tāda dzīve, mēģini citi avotu")
def PlayMovie(url, title, picture): print "url: " + url html = network.getHTML(url) print "html: " + html mainMovieCol = common.parseDOM(html, "div", attrs={"class": "playex"}) print mainMovieCol videoContainers = common.parseDOM(mainMovieCol[0], "source", ret="src") videoContainers = videoContainers + common.parseDOM( mainMovieCol[0], "iframe", ret="src") print "ATRASTIE VIDEO: " print videoContainers print title.decode('latin-1').encode('utf-8') if len(videoContainers) > 0: link = url_resolver_plus.resolve(videoContainers[0]) if link != False: kodi_func.addLink( title.decode('utf-8').encode('utf-8') + " - Latviski", link.encode('utf-8'), picture) elif '.' in videoContainers[0] and kodi_func.isVideoFormat( videoContainers[0].split(".")[-1]): kodi_func.addLink( title.decode('utf-8').encode('utf-8') + " - Latviski", videoContainers[0], picture) print link if len(videoContainers) > 1: link = url_resolver_plus.resolve(videoContainers[1]) if link != False: kodi_func.addLink( title.decode('utf-8').encode('utf-8') + " - Angliski", link.encode('utf-8'), picture) elif '.' in videoContainers[1] and kodi_func.isVideoFormat( videoContainers[1].split(".")[-1]): kodi_func.addLink( title.decode('utf-8').encode('utf-8') + " - Latviski", videoContainers[1], picture) print link # link = re.compile('file:[\s\t]*"(.+?)"').findall(html.decode('windows-1251').encode('utf-8'))[0]
def PlayMovie(url, title, picture): print "url: " + url html = network.getHTML(url) # print "html: " + html streamLangNames = [] mainMovieCol = common.parseDOM(html, "div", attrs = { "class": "videooPlayer"} ) mainMovieCol = mainMovieCol[0].replace("\n", "").replace("<br>", "").replace("<br />", "") streamLangNames = re.findall('[(A-Z A-Z)|(A-Z)]+<iframe', mainMovieCol) movieStreamSrc = common.parseDOM(mainMovieCol, "iframe", ret = "src" ) # For f***s sake, not only this website has hqq links but sometimes it hides them in ;eval obfuscators. Come on gentelmen make my life a bit easier if ";eval" in mainMovieCol: js = mainMovieCol.split('<script language="javascript" type="text/javascript">',1)[1].replace("</script>", "") print js jsDecoded = getURLFromObfJs(js) if re.search(r'<form(.+?)action="[^"]*(hqq|netu)\.tv/player/embed_player\.php"[^>]*>', jsDecoded): movieStreamSrc.append( jsDecoded ) else: movieStreamSrc = common.parseDOM(jsDecoded, "iframe", ret = "src" ) elif "/player/hash.php" in mainMovieCol: searchObj = re.search(r'(https:|http:)\/\/(hqq|netu)\.tv/player/hash\.php\?hash=\d+', html) if searchObj: resolvedHashUrl = searchObj.group(0) print "RESOLVED HASH URL: " + resolvedHashUrl movieStreamSrc.append(resolvedHashUrl) else: print "WTF, couldn't find the hash url" return False elif "data:text/javascript;charset=utf-8;base64" in mainMovieCol: movieStreamSrc.append(mainMovieCol) print "Important HTML elements:" print mainMovieCol, streamLangNames, movieStreamSrc for i in range(0, len(movieStreamSrc)): # sometimes the links are hidden in goo.gl shortener, if so, we first need to unshorten if "goo.gl" in movieStreamSrc[i]: movieStreamSrc[i] = network.unshorten_url( movieStreamSrc[i] ) # If it is the normal stream utilise the hqqresolver if "hqq.tv" in movieStreamSrc[i] or "netu.tv" in movieStreamSrc[i] or "data:text/javascript;charset=utf-8;base64" in movieStreamSrc[i] or "<form" in movieStreamSrc[i]: link = hqqresolver.resolve(movieStreamSrc[i]) print "resolved link: ",link if not link: print "Well hqqresolver script failed... let's try my one" parsed = urlparse.urlparse( movieStreamSrc[i] ) vid = urlparse.parse_qs(parsed.query)['vid'][0] print ("VID: " + vid) hqqvidresolver = hqqresolver2.hqqResolver() # Parse the final URL link = hqqvidresolver.resolve(vid) print ("Final URL: " + link) # resolveHQQ(movieStreamSrc[i], url) else: link = link[0]['url'] else: # or sometimes we get openload.co stream link = urlresolver.resolve(movieStreamSrc[i]) if i < len(streamLangNames): streamLang = " - " + streamLangNames[i][:-7] else: streamLang = "" print streamLang if link != False: print link if link != False: kodi_func.addLink(title.decode('utf-8').encode('utf-8') + streamLang.encode('utf-8'), link.encode('utf-8'), picture) elif kodi_func.isVideoFormat(movieStreamSrc[i].split(".")[-1]): kodi_func.addLink(title.decode('utf-8').encode('utf-8') + streamLang.encode('utf-8'), movieStreamSrc[i], picture)