def findvideos(item): logger.info("pelisalacarta.channels.oranline findvideos") itemlist = [] data = scrapertools.cache_page(item.url) patron = '<p>.*?<span>.*?<img.*?src="(.*?)".*?></span>.*?<span>(.*?)</span>.*?href=.*?href="(.*?)".*?src="(.*?)"' matches2 = re.compile(patron, re.DOTALL).findall(data) scrapertools.printMatches(matches2) for img_idioma, calidad, scrapedurl, img_servidor in matches2: idioma = scrapertools.get_filename_from_url(img_idioma) if idioma in b_idioma.keys(): idioma = b_idioma[idioma] servidor = scrapertools.get_filename_from_url(img_servidor)[:-4] title = "Mirror en "+servidor+" ("+idioma+") (Calidad "+calidad.strip()+")" url = urlparse.urljoin(item.url, scrapedurl) thumbnail = "" plot = "" if DEBUG: logger.info("title=[{0}], url=[{1}], thumbnail=[{2}]".format(title, url, thumbnail)) itemlist.append(Item(channel=__channel__, action="play", title=title, url=url, thumbnail=thumbnail, plot=plot, folder=True)) return itemlist
def get_video_url( page_url, premium = False, user="", password="", video_password="" ): logger.info( "[rapidvideo.py] url=" + page_url ) video_id = scrapertools.get_match( page_url, 'org/([A-Za-z0-9]+)' ) url = 'http://www.rapidvideo.org/embed-%s-607x360.html' % video_id #data = scrapertools.cache_page( url ).replace( 'TMPL_VAR|', '' ) data = scrapertools.cache_page( url ) packed = scrapertools.get_match( data, "<script type='text/javascript'>eval.function.p,a,c,k,e,.*?</script>" ) unpacked = packer.unpack( packed ) media_url = scrapertools.get_match( unpacked, 'file:"([^"]+)"' ) video_urls = [] video_urls.append( [ scrapertools.get_filename_from_url( media_url )[-4:] + " [fastvideo.me]", media_url ] ) for video_url in video_urls: logger.info( "[fastvideo.py] %s - %s" % ( video_url[0], video_url[1] ) ) video_urls = [] video_urls.append( [ scrapertools.get_filename_from_url( media_url )[-4:] + " [rapidvideo.org]", media_url ] ) for video_url in video_urls: logger.info( "[rapidvideo.py] %s - %s" % ( video_url[0], video_url[1] ) ) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("streamondemand.servers.sendvid get_video_url(page_url='%s')" % page_url) video_urls = [] data = scrapertools.cache_page(page_url) #var video_source = "//cache-2.sendvid.com/1v0chsus.mp4"; media_url = "http:"+scrapertools.find_single_match(data,'var\s+video_source\s+\=\s+"([^"]+)"') if "cache-1" in media_url: video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" (cache1) [sendvid]",media_url]) video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" (cache2) [sendvid]",media_url.replace("cache-1","cache-2")]) elif "cache-2" in media_url: video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" (cache1) [sendvid]",media_url.replace("cache-2","cache-1")]) video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" (cache2) [sendvid]",media_url]) else: video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" [sendvid]",media_url]) for video_url in video_urls: logger.info("streamondemand.servers.sendvid %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("pelisalacarta.servers.streaminto url=" + page_url) data = re.sub(r'\n|\t|\s+', '', scrapertools.cache_page(page_url)) video_urls = [] try: media_url = scrapertools.get_match(data, """.setup\({file:"([^"]+)",image""") except: js_data = scrapertools.find_single_match(data, "(eval.function.p,a,c,k,e.*?)</script>") js_data = unPack(js_data) media_url = scrapertools.get_match(js_data, """.setup\({file:"([^"]+)",image""") if media_url.endswith("v.mp4"): media_url_mp42flv = re.sub(r'/v.mp4$','/v.flv',media_url) video_urls.append([scrapertools.get_filename_from_url(media_url_mp42flv)[-4:] + " [streaminto]", media_url_mp42flv]) if media_url.endswith("v.flv"): media_url_flv2mp4 = re.sub(r'/v.flv$','/v.mp4',media_url) video_urls.append([scrapertools.get_filename_from_url(media_url_flv2mp4)[-4:] + " [streaminto]", media_url_flv2mp4]) video_urls.append([scrapertools.get_filename_from_url(media_url)[-4:] + " [streaminto]", media_url]) for video_url in video_urls: logger.info("pelisalacarta.servers.streaminto %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("pelisalacarta.servers.vidtome url="+page_url) # Lo pide una vez headers = [['User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14']] data = scrapertools.cache_page( page_url , headers=headers ) #logger.info("data="+data) logger.info("pelisalacarta.servers.vidtome opcion 2") op = scrapertools.get_match(data,'<input type="hidden" name="op" value="([^"]+)"') logger.info("pelisalacarta.servers.vidtome op="+op) usr_login = "" id = scrapertools.get_match(data,'<input type="hidden" name="id" value="([^"]+)"') logger.info("pelisalacarta.servers.vidtome id="+id) fname = scrapertools.get_match(data,'<input type="hidden" name="fname" value="([^"]+)"') logger.info("pelisalacarta.servers.vidtome fname="+fname) referer = scrapertools.get_match(data,'<input type="hidden" name="referer" value="([^"]*)"') logger.info("pelisalacarta.servers.vidtome referer="+referer) hashstring = scrapertools.get_match(data,'<input type="hidden" name="hash" value="([^"]*)"') logger.info("pelisalacarta.servers.vidtome hashstring="+hashstring) imhuman = scrapertools.get_match(data,'<input type="submit".*?name="imhuman" value="([^"]+)"').replace(" ","+") logger.info("pelisalacarta.servers.vidtome imhuman="+imhuman) import time time.sleep(10) # Lo pide una segunda vez, como si hubieras hecho click en el banner #op=download1&usr_login=&id=z3nnqbspjyne&fname=Coriolanus_DVDrip_Castellano_by_ARKONADA.avi&referer=&hash=nmnt74bh4dihf4zzkxfmw3ztykyfxb24&imhuman=Continue+to+Video #op=download1&usr_login=&id=h6gjvhiuqfsq&fname=GENES1S.avi&referer=&hash=taee4nbdgbuwuxfguju3t6nq2gkdzs6k&imhuman=Proceed+to+video post = "op="+op+"&usr_login="******"&id="+id+"&fname="+fname+"&referer="+referer+"&hash="+hashstring+"&imhuman="+imhuman headers.append(["Referer",page_url]) body = scrapertools.cache_page( page_url , post=post, headers=headers ) logger.info("body="+body) data = scrapertools.find_single_match(body,"<script type='text/javascript'>(eval\(function\(p,a,c,k,e,d.*?)</script>") logger.info("data="+data) data = packer.unpack(data) logger.info("data="+data) # Extrae la URL #{label:"240p",file:"http://188.240.220.186/drjhpzy4lqqwws4phv3twywfxej5nwmi4nhxlriivuopt2pul3o4bkge5hxa/video.mp4"} video_urls = [] media_urls = re.findall(r'\{label:"([^"]+)",file:"([^"]+)"\}', data) video_urls = [] for label,media_url in media_urls: video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" ("+label+") [vidto.me]",media_url]) #<a id="lnk_download" href="http://188.240.220.186/drjhpzy4lqqwws4phv3twywfxej5nwmi4nhxlriivuopt2pul3oyvkoe5hxa/INT3NS4HDTS-L4T.mkv"> media_url = scrapertools.find_single_match(body,'<a id="lnk_download" href="([^"]+)"') if media_url!="": video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" (ORIGINAL) [vidto.me]",media_url]) for video_url in video_urls: logger.info("pelisalacarta.servers.vidtome %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("url=" + page_url) data = httptools.downloadpage(page_url).data video_urls = [] media_urls = scrapertools.find_multiple_matches(data, '<source src="([^"]+)"') for media_url in media_urls: extension = scrapertools.get_filename_from_url(media_url)[-3:] if extension != "png" and extension != "php": video_urls.append([scrapertools.get_filename_from_url(media_url)[-4:] + " [spruto]", media_url]) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("pelisalacarta.servers.spruto url=" + page_url) data = scrapertools.cache_page(page_url) video_urls = [] media_urls = scrapertools.find_multiple_matches(data, 'file":\s*"([^"]+)"') for media_url in media_urls: extension = scrapertools.get_filename_from_url(media_url)[-3:] if extension != "png" and extension != "php": video_urls.append([scrapertools.get_filename_from_url(media_url)[-4:] + " [spruto]", media_url]) return video_urls
def findvideos(item): logger.info("pelisalacarta.channels.oranline findvideos") itemlist = [] data = scrapertools.cache_page(item.url) ''' <p> <span><img width="29" src="http://www.oranline.com/wp-content/themes/reviewit/images/1.png"></span> <span>HD-Rip </span> <span><img src="http://www.oranline.com/wp-content/themes/reviewit/images/calidad4.png"></span> <span>ashley</span> <span><a href="#" title="HDRip - 1,63 Gb - CASTELLANO" class="tooltip"><img src="http://www.oranline.com/wp-content/themes/reviewit/images/informacion.png" width="20"></img></a> <a onclick='reportar("reportarpelicula","375879")'><img src='http://www.oranline.com/wp-content/themes/reviewit/images/tool.png' title="reportar enlace"></img></a></span> <span> <a href="/wp-content/themes/reviewit/enlace.php?id=375879" rel="get:id=10" rev="abcwin[700,580]"><img style="width:103px" src="http://www.oranline.com/wp-content/themes/reviewit/servidores/uploaded.jpg"></img></a></span></p> ''' ''' <p> <span><img src="http://www.oranline.com/wp-content/themes/reviewit/images/1.png" width="25"></span> <span>HD-1080 </span> <span><img src="http://www.oranline.com/wp-content/themes/reviewit/images/calidad5.png"></span> <span>Anonymous_xxx</span> <span><a onclick='reportar("reportarpelicula","505001")'><img src='http://www.oranline.com/wp-content/themes/reviewit/images/tool.png' title="reportar enlace"></img></a></span> <span> <a href="/wp-content/themes/reviewit/enlace.php?id=505001" rel="get:id=10" rev="abcwin[700,580]"><img style="width:103px" src="http://www.oranline.com/wp-content/themes/reviewit/servidores/powvideo.jpg"></img></a></span></p> ''' patron = '<p[^<]+' patron += '<span[^<]+<img.*?src="([^"]+)[^<]+</span[^<]+' patron += '<span>([^<]+)</span.*?' patron += 'href="([^"]+)"[^<]+<img style="[^"]+" src="([^"]+)"' matches2 = re.compile(patron, re.DOTALL).findall(data) scrapertools.printMatches(matches2) for img_idioma, calidad, scrapedurl, img_servidor in matches2: idioma = scrapertools.get_filename_from_url(img_idioma) if idioma in b_idioma.keys(): idioma = b_idioma[idioma] servidor = scrapertools.get_filename_from_url(img_servidor)[:-4] title = "Mirror en "+servidor+" ("+idioma+") (Calidad "+calidad.strip()+")" url = urlparse.urljoin(item.url, scrapedurl) thumbnail = "" plot = "" if DEBUG: logger.info("title=[{0}], url=[{1}], thumbnail=[{2}]".format(title, url, thumbnail)) itemlist.append(Item(channel=__channel__, action="play", title=title, url=url, thumbnail=thumbnail, plot=plot, folder=True)) return itemlist
def get_video_url( page_url , premium = False , user="" , password="" , video_password="" ): logger.info("tvalacarta.servers.cntv get_video_url(page_url='%s')" % page_url) data = scrapertools.cache_page(page_url) video_id = scrapertools.find_single_match(data,'"videoCenterId","([a-z0-9]+)"') logger.info("tvalacarta.servers.cntv video_id="+video_id) # Formato noticias if video_id!="": metadata_url = "http://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid="+video_id+"&tz=-1&from=000spanish&url="+page_url+"&idl=32&idlr=32&modifyed=false" data = scrapertools.cache_page(metadata_url) logger.info(data) video_url = scrapertools.find_single_match(data,'"hls_url"\:"([^"]+)"') logger.info("video_url="+video_url) # Formato programas else: video_id = scrapertools.find_single_match(data,'"videoCenterId","(.*?)"') video_url = "http://asp.v.cntv.cn/hls/"+matches[0]+"/main.m3u8" video_urls = [] if video_url.endswith(".m3u8"): ''' #EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=204800, RESOLUTION=240x180 /asp/hls/200/0303000a/3/default/269599f209024eb482ac0b12b1861d31/200.m3u8 ''' data_calidades = scrapertools.cache_page(video_url) patron_calidades = "BANDWIDTH=(\d+), RESOLUTION=([a-z0-9]+)\s*(.*?.m3u8)" matches = re.compile(patron_calidades,re.DOTALL).findall(data_calidades) if len(matches)>0: for bitrate,resolucion,calidad_url in matches: esta_url = urlparse.urljoin(video_url,calidad_url) try: kb = " "+str(int(bitrate)/1024)+"Kbps " except: kb = "" video_urls.append([ resolucion + kb + '('+scrapertools.get_filename_from_url(esta_url)[-4:] + ') [cntv]' , esta_url]) else: video_urls.append([ '('+scrapertools.get_filename_from_url(video_url)[-4:] + ') [cntv]' , video_url]) else: video_urls.append([ '('+scrapertools.get_filename_from_url(video_url)[-4:] + ') [cntv]' , video_url]) for video_url in video_urls: logger.info("tvalacarta.servers.cntv %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("(page_url='%s')" % page_url) data = scrapertools.cache_page(page_url) # Submit post = {} r = re.findall(r'type="hidden" name="(.+?)"\s* value="?(.+?)">', data) for name, value in r: post[name] = value post.update({'method_free': 'Free Download'}) data = scrapertools.cache_page(page_url, post=urllib.urlencode(post)) # Get link sPattern = '''<div id="player_code">.*?<script type='text/javascript'>(eval.+?)</script>''' r = re.findall(sPattern, data, re.DOTALL | re.I) mediaurl = "" if r: sUnpacked = jsunpack.unpack(r[0]) sUnpacked = sUnpacked.replace("\\'", "") r = re.findall('file,(.+?)\)\;s1', sUnpacked) if not r: r = re.findall('"src"value="(.+?)"/><embed', sUnpacked) mediaurl = r[0] video_urls = [] video_urls.append([scrapertools.get_filename_from_url(mediaurl)[-4:] + " [hugefiles]", mediaurl]) for video_url in video_urls: logger.info("%s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("[mailru.py] get_video_url(page_url='%s')" % (page_url)) video_urls = [] ## Carga la página data = scrapertools.cache_page(page_url) ## Nueva url al final de los datos url = page_url.replace("embed/","").replace(".html",".json") ## Carga los datos y los headers data, headers = scrapertools.read_body_and_headers(url) data = jsontools.load_json(data) ## La cookie video_key necesaria para poder visonar el video for cookie in headers: if 'set-cookie' in cookie: break cookie_video_key = scrapertools.get_match(cookie[1], '(video_key=[a-f0-9]+)') ## Formar url del video + cookie video_key for videos in data['videos']: media_url = videos['url'] + "|Cookie=" + cookie_video_key quality = " "+videos['key'] video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:] + quality +" [mail.ru]", media_url ] ) for video_url in video_urls: logger.info("[mail.ru] %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("pelisalacarta.servers.clicknupload url="+page_url) data = scrapertools.cache_page( page_url ) data = data.replace("\n","").replace("\t","") post = "" block = scrapertools.find_single_match(data, '<Form method="POST"(.*?)</Form>') matches = scrapertools.find_multiple_matches(block, 'input.*?name="([^"]+)".*?value="([^"]*)"') for inputname, inputvalue in matches: post += inputname + "=" + inputvalue + "&" #Primera solicitud post data = scrapertools.cache_page( page_url , post=post) data = data.replace("\n","").replace("\t","") import time time.sleep(5) post = "" block = scrapertools.find_single_match(data, '<Form name="F1" method="POST"(.*?)</Form>') matches = scrapertools.find_multiple_matches(block, '<input.*?name="([^"]+)".*?value="([^"]*)">') for inputname, inputvalue in matches: post += inputname + "=" + inputvalue + "&" #Segunda solicitud post tras 5 segundos de espera data = scrapertools.cache_page( page_url , post=post) video_urls = [] media = scrapertools.find_single_match(data,"onClick=\"window.open\('([^']+)'") #Solo es necesario codificar la ultima parte de la url url_strip = urllib.quote(media.rsplit('/', 1)[1]) media_url = media.rsplit('/', 1)[0] +"/"+url_strip video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" [clicknupload]",media_url]) for video_url in video_urls: logger.info("pelisalacarta.servers.clicknupload %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("[movreel.py] get_video_url(page_url='%s')" % page_url) video_urls = [] data = scrapertools.cache_page(page_url) op = scrapertools.get_match(data,'<input type="hidden" name="op" value="([^"]+)">') file_code = scrapertools.get_match(data,'<input type="hidden" name="file_code" value="([^"]+)">') w = scrapertools.get_match(data,'<input type="hidden" name="w" value="([^"]+)">') h = scrapertools.get_match(data,'<input type="hidden" name="h" value="([^"]+)">') method_free = scrapertools.get_match(data,'<input type="submit" name="method_free" value="([^"]+)">') #op=video_embed&file_code=yrwo5dotp1xy&w=600&h=400&method_free=Close+Ad+and+Watch+as+Free+User post = urllib.urlencode( {"op":op,"file_code":file_code,"w":w,"h":h,"method_free":method_free} ) data = scrapertools.cache_page(page_url,post=post) data = jsunpack.unpack(data) logger.info("data="+data) media_url = scrapertools.get_match(data,'file\:"([^"]+)"') video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" [movreel]",media_url]) for video_url in video_urls: logger.info("[movreel.py] %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("streamondemand.servers.vidgg get_video_url(page_url='%s')" % page_url) video_urls = [] data = scrapertools.cache_page(page_url) mediaurls = scrapertools.find_multiple_matches(data, '<source src="([^"]+)"') if not mediaurls: id_file = page_url.rsplit("/",1)[1] key = scrapertools.find_single_match(data, 'flashvars\.filekey\s*=\s*"([^"]+)"') if not key: varkey = scrapertools.find_single_match(data, 'flashvars\.filekey\s*=\s*([^;]+);') key = scrapertools.find_single_match(data, varkey+'\s*=\s*"([^"]+)"') # Primera url, se extrae una url erronea necesaria para sacar el enlace url = "http://www.vidgg.to//api/player.api.php?cid2=undefined&cid=undefined&numOfErrors=0&user=undefined&cid3=undefined&key=%s&file=%s&pass=undefined" % (key, id_file) data = scrapertools.cache_page(url) url_error = scrapertools.find_single_match(data, 'url=([^&]+)&') url = "http://www.vidgg.to//api/player.api.php?cid2=undefined&cid=undefined&numOfErrors=1&errorUrl=%s&errorCode=404&user=undefined&cid3=undefined&key=%s&file=%s&pass=undefined" % (url_error, key, id_file) data = scrapertools.cache_page(url) mediaurls = scrapertools.find_multiple_matches(data, 'url=([^&]+)&') for i, mediaurl in enumerate(mediaurls): title = scrapertools.get_filename_from_url(mediaurl)[-4:]+" Mirror %s [vidgg]" % str(i+1) video_urls.append( [title, mediaurl]) for video_url in video_urls: logger.info("[vidgg.py] %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("pelisalacarta.servers.gamovideo get_video_url(page_url='%s')" % page_url) data = scrapertools.cache_page(page_url) packer = scrapertools.find_single_match(data,"<script type='text/javascript'>(eval.function.p,a,c,k,e,d..*?)</script>") unpacker = jsunpack.unpack(data) if packer != "" else "" if unpacker != "": data = unpacker data = re.sub(r'\n|\t|\s+', '', data) host = scrapertools.get_match(data, '\[\{image:"(http://[^/]+/)') mediaurl = scrapertools.get_match(data, ',\{file:"([^"]+)"') if not mediaurl.startswith(host): mediaurl = host + mediaurl rtmp_url = scrapertools.get_match(data, 'file:"(rtmp[^"]+)"') playpath = scrapertools.get_match(rtmp_url, 'vod\?h=[\w]+/(.*$)') rtmp_url = rtmp_url.split(playpath)[0]+" playpath="+playpath+" swfUrl=http://gamovideo.com/player61/jwplayer.flash.swf" video_urls = [] video_urls.append([scrapertools.get_filename_from_url(mediaurl)[-4:]+" [gamovideo]",mediaurl]) video_urls.append(["RTMP [gamovideo]",rtmp_url]) for video_url in video_urls: logger.info("pelisalacarta.servers.gamovideo %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("url="+page_url) # Lo pide una vez headers = [['User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14']] data = scrapertools.cache_page( page_url , headers=headers ) try: media_url = scrapertools.get_match( data , 'file\: "([^"]+)"' ) except: post = "" matches = scrapertools.find_multiple_matches(data, '<input.*?name="([^"]+)".*?value="([^"]*)">') for inputname, inputvalue in matches: post += inputname + "=" + inputvalue + "&" post = post.replace("op=download1","op=download2") data = scrapertools.cache_page( page_url , post=post) if 'id="justanotice"' in data: logger.info("data="+data) logger.info("Ha saltado el detector de adblock") return [] # Extrae la URL media_url = scrapertools.get_match( data , 'file\: "([^"]+)"' ) video_urls = [] video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" [streamcloud]",media_url]) for video_url in video_urls: logger.info("%s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("pelisalacarta.videomega get_video_url(page_url='%s')" % page_url) data = scrapertools.cache_page(page_url) video_urls = [] # Descarga la página headers = [ ['User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3'] ] data = scrapertools.cache_page(page_url , headers = headers) #document.write(unescape("%3c%73%63%72%69%70%74%20%74e")); location = scrapertools.get_match(data,'document.write\(unescape\("([^"]+)"\)\)') logger.info("pelisalacarta.videomega location="+location) location = urllib.unquote(location) logger.info("pelisalacarta.videomega location="+location) location = scrapertools.get_match(location,'file\: "([^"]+)"') logger.info("pelisalacarta.videomega location="+location) location = location+"&start=0" logger.info("pelisalacarta.videomega location="+location) #http://st100.u1.videomega.tv/v/bf38b3577874d7ce424c1c87d6d1b8d9.mp4?st=kuiAz1XJ7XFzOCnaleGVxA&start=0 #http://st100.u1.videomega.tv/v/bf38b3577874d7ce424c1c87d6d1b8d9.mp4?st=kuiAz1XJ7XFzOCnaleGVxA video_urls.append( [ scrapertools.get_filename_from_url(location)[-4:]+" [videomega]" , location ] ) for video_url in video_urls: logger.info("pelisalacarta.videomega %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("ay8ou8ohth get_video_url(page_url='%s')" % page_url) data = '' patron_new_url = '<iframe\s+src\s*=\s*"([^"]+)' while page_url != "": headers = [ ['User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:39.0) Gecko/20100101 Firefox/39.0'], ['Accept-Encoding', 'gzip, deflate'], ['Referer', page_url] ] data = scrapertools.cache_page(page_url, headers=headers) page_url = scrapertools.find_single_match(data, patron_new_url) page_url = re.sub("\n|\r|\t", "", page_url) media_url = scrapertools.find_single_match(data, 'file\s*:\s*"([^"]+)') if media_url == '': data = scrapertools.find_single_match(data, '(eval\(function.*?)</script>') data = jsunpack.unpack(data) media_url = scrapertools.find_single_match(data, 'file\s*:\s*"([^"]+)') video_urls = [[scrapertools.get_filename_from_url(media_url)[-4:] + " [ay8ou8ohth]", media_url + '|' + urllib.urlencode(dict(headers))]] for video_url in video_urls: logger.info("[ay8ou8ohth.py] %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("streamondemand.servers.vimpleru page_url="+page_url) mobj = re.match(_VALID_URL, page_url) video_id = mobj.group('id') logger.info("streamondemand.servers.vimpleru video_id="+video_id) data = scrapertools.cache_page( page_url ) logger.info("streamondemand.servers.vimpleru data="+data) cookie_data = config.get_cookie_data() #logger.info("streamondemand.servers.vimpleru cookie_data="+cookie_data) universalid = scrapertools.get_match(cookie_data,'UniversalUserID\s*([a-f0-9]+)') logger.info("universalid="+universalid) player_url = scrapertools.find_single_match(data,'"swfplayer"\:"([^"]+)"') player_url = player_url.replace("\\","") logger.info("streamondemand.servers.vimpleru player_url="+player_url) player = scrapertools.cache_page( player_url) #logger.info("streamondemand.servers.vimpleru player="+repr(player)) player = zlib.decompress(player[8:]) #logger.info("streamondemand.servers.vimpleru player="+repr(player)) xml_pieces = re.findall(b'([a-zA-Z0-9 =+/]{500})', player) logger.info("streamondemand.servers.vimpleru xml_pieces="+repr(xml_pieces)) xml_pieces = [piece[1:-1] for piece in xml_pieces] logger.info("streamondemand.servers.vimpleru xml_pieces="+repr(xml_pieces)) xml_data = b''.join(xml_pieces) logger.info("streamondemand.servers.vimpleru xml_data="+repr(xml_data)) xml_data = base64.b64decode(xml_data) logger.info("streamondemand.servers.vimpleru xml_data="+repr(xml_data)) xml_data = xml.etree.ElementTree.fromstring(xml_data) video = xml_data.find('Video') quality = video.get('quality') q_tag = video.find(quality.capitalize()) ''' logger.info("streamondemand.servers.vimpleru url: " + q_tag.get('url')) logger.info("streamondemand.servers.vimpleru tbr: " + q_tag.get('bitrate')) logger.info("streamondemand.servers.vimpleru filesize: " + q_tag.get('filesize')) logger.info("streamondemand.servers.vimpleru format_id: " + quality) logger.info("streamondemand.servers.vimpleru id: " + video_id) logger.info("streamondemand.servers.vimpleru title: " + video.find('Title').text) logger.info("streamondemand.servers.vimpleru thumbnail: " + video.find('Poster').get('url')) logger.info("streamondemand.servers.vimpleru duration: " + video.get('duration')) logger.info("streamondemand.servers.vimpleru webpage_url: " + video.find('Share').get('videoPageUrl')) ''' media_url = q_tag.get('url')+"|Cookie=UniversalUserID="+universalid video_urls = [] video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" [vimple.ru]",media_url]) for video_url in video_urls: logger.info("streamondemand.servers.vimpleru %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("[filebox.py] get_video_url(page_url='%s')" % page_url) video_urls = [] ''' <input type="hidden" name="op" value="download2"> <input type="hidden" name="id" value="235812b1j9w1"> <input type="hidden" name="rand" value="na73zeeooqyfkndsv4uxzzpbajwi6mhbmixtogi"> <input type="hidden" name="referer" value="http://www.seriesyonkis.com/s/ngo/2/5/1/8/773"> ''' logger.info("[filebox.py] URL ") data = scrapertools.cache_page(page_url) import time time.sleep(5) codigo = scrapertools.get_match(data,'<input type="hidden" name="id" value="([^"]+)">[^<]+') rand = scrapertools.get_match(data,'<input type="hidden" name="rand" value="([^"]+)">') #op=download2&id=xuquejiv6xdf&rand=r6dq7hn7so2ygpnxv2zg2i3cu3sbdsunf57gtni&referer=&method_free=&method_premium=&down_direct=1 post = "op=download2&id="+codigo+"&rand="+rand+"&referer=&method_free=&method_premium=&down_direct=1" data = scrapertools.cache_page( page_url , post=post, headers=[['User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14'],['Referer',page_url]] ) logger.info("data="+data) media_url = scrapertools.get_match(data,"this.play\('([^']+)'") video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" [filebox]",media_url]) for video_url in video_urls: logger.info("[filebox.py] %s - %s" % (video_url[0],video_url[1])) return video_urls
def novedades(item): logger.info("[filmsenzalimiti.py] novedades") itemlist = [] # Descarga la página data = scrapertools.cachePage(item.url) ''' <div class="post-item-side"> <a href="http://www.filmsenzalimiti.net/lost-in-mancha.html"> <img src="http://www.filmsenzalimiti.net/wp-content/uploads/2013/08/Lost-in-Mancha.jpg" width="103px" height="160px" alt="img" title="Lost in Mancha" class="post-side-img"/></a> <h3><a href="http://www.filmsenzalimiti.net/video.html" rel="nofollow" target="_blank"><img class="playbtn" src="http://www.filmsenzalimiti.net/wp-content/themes/FilmSenzaLimiti/images/playbtn.png" border="0"/></a></h3> </div> ''' patronvideos = '<div class="post-item-side"[^<]+' patronvideos += '<a href="([^"]+)"[^<]+<img.*?src="([^"]+)"' matches = re.compile(patronvideos,re.DOTALL).findall(data) if DEBUG: scrapertools.printMatches(matches) for scrapedurl,scrapedthumbnail in matches: scrapedplot = "" scrapedtitle = scrapertools.get_filename_from_url(scrapedurl).replace("-"," ").replace("/","").replace(".html","").capitalize().strip() if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]") itemlist.append( Item(channel=__channel__, action="findvideos", title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot , folder=True) ) # Siguiente try: pagina_siguiente = scrapertools.get_match(data,'class="nextpostslink" rel="next" href="([^"]+)"') itemlist.append( Item(channel=__channel__, action="novedades", title=">> Avanti" , url=pagina_siguiente , folder=True) ) except: pass return itemlist
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("fusionse.servers.clouddy get_video_url(page_url='%s')" % page_url) video_urls = [] request_headers = [] request_headers.append(["User-Agent","Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; es-ES; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12"]) body,response_headers = scrapertools.read_body_and_headers(page_url,headers=request_headers) patron = 'key: "([^"]+).*?file:"([^"]+)"' param = re.compile(patron,re.DOTALL).findall(body) url_get_video ='https://www.cloudy.ec/api/player.api.php?user=&cid2=&pass=&numOfErrors=0&key=<clave>&file=<fichero>&cid3=' url_get_video = url_get_video.replace("<clave>", param[0][0]) url_get_video = url_get_video.replace("<fichero>", param[0][1]) request_headers.append(["referer",page_url]) request_headers.append(["accept-encoding", "gzip, deflate, sdch"]) request_headers.append(["x-requested-with","ShockwaveFlash/20.0.0.286"]) request_headers.append(["accept-language", "es-ES,es;q=0.8"]) body,request_headers = scrapertools.read_body_and_headers(url_get_video,headers=request_headers) body = urllib.unquote(body) video = re.findall("url=(.*?)&title", body, re.DOTALL) video_urls.append([scrapertools.get_filename_from_url(video[0])[-4:],video[0] ]) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("pelisalacarta.servers.powvideo get_video_url(page_url='%s')" % page_url) url = page_url.replace("http://powvideo.net/","http://powvideo.net/iframe-") + "-640x360.html" headers.append(['Referer',url.replace("iframe","embed")]) data = scrapertools.cache_page(url, headers=headers) # Extrae la URL data = scrapertools.find_single_match(data,"<script type='text/javascript'>(.*?)</script>") data = jsunpack.unpack(data).replace("\\","") data = scrapertools.find_single_match(data,"sources\=\[([^\]]+)\]") logger.info("data="+data) matches = scrapertools.find_multiple_matches(data, "src:'([^']+)'") video_urls = [] for video_url in matches: filename = scrapertools.get_filename_from_url(video_url)[-4:] if video_url.startswith("rtmp"): rtmp, playpath = video_url.split("vod/",1) video_url = "%s playpath=%s swfUrl=http://powvideo.net/player6/jwplayer.flash.swf pageUrl=%s" % (rtmp+"vod/", playpath, page_url) filename = "RTMP" elif "m3u8" in video_url: video_url += "|User-Agent="+headers[0][1] video_urls.append( [ filename + " [powvideo]", video_url]) for video_url in video_urls: logger.info("pelisalacarta.servers.powvideo %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("[vimple.ru] get_video_url(page_url=%s)" % page_url) media_url = scrapertools.get_match( re.sub( r'\t|\n|\r|\s', '', scrapertools.cache_page(page_url) ), '"video"[^,]+,"url":"([^"]+)"' ).replace('\\','') media_url+= "|Cookie=" + \ scrapertools.get_match( config.get_cookie_data(), '.vimple.ru.*?(UniversalUserID\t[a-f0-9]+)' ).replace('\t', '=') video_urls = [] video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" [vimple.ru]",media_url]) for video_url in video_urls: logger.info("streamondemand.servers.vimpleru %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="" , video_password="" ): logger.info("[movshare.py] get_video_url(page_url='%s')" % page_url) videoid = scrapertools.get_match(page_url,"http://www.movshare.net/video/([a-z0-9]+)") video_urls = [] # Descarga la página headers = [] headers.append( ['User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3'] ) html = scrapertools.cache_page(page_url , headers = headers) # La vuelve a descargar, como si hubieras hecho click en el botón #html = scrapertools.cache_page(page_url , headers = headers) filekey = scrapertools.find_single_match(html,'flashvars.filekey="([^"]+)"') #get stream url from api api = 'http://www.movshare.net/api/player.api.php?key=%s&file=%s' % (filekey, videoid) headers.append( ['Referer',page_url] ) html = scrapertools.cache_page(api,headers=headers) logger.info("html="+html) stream_url = scrapertools.find_single_match(html,'url=(.+?)&title') if stream_url!="": video_urls.append( [ scrapertools.get_filename_from_url(stream_url)[-4:]+" [movshare]" , stream_url ] ) for video_url in video_urls: logger.info("[movshare.py] %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("[putstream.py] url=" + page_url) video_urls = [] data = scrapertools.cache_page(page_url, headers=headers) time.sleep(5) post_url = re.findall('Form method="POST" action=\'(.*)\'', data)[0] post_selected = re.findall('Form method="POST" action=(.*)</Form>', data, re.DOTALL)[0] post_data = 'op=%s&usr_login=%s&id=%s&fname=%s&referer=%s&hash=%s&imhuman=Proceed+to+video' % ( re.findall('input type="hidden" name="op" value="(.*)"', post_selected)[0], re.findall('input type="hidden" name="usr_login" value="(.*)"', post_selected)[0], re.findall('input type="hidden" name="id" value="(.*)"', post_selected)[0], re.findall('input type="hidden" name="fname" value="(.*)"', post_selected)[0], re.findall('input type="hidden" name="referer" value="(.*)"', post_selected)[0], re.findall('input type="hidden" name="hash" value="(.*)"', post_selected)[0]) headers.append(['Referer', page_url]) data = scrapertools.cache_page(post_url, post=post_data, headers=headers) # Extrae la URL media_url = scrapertools.get_match( data , 'file:"([^"]+)"' ) video_urls = [] video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" [putstream]",media_url]) for video_url in video_urls: logger.info("[putstream] %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("[abysstream.py] url=" + page_url) video_urls = [] data = scrapertools.cache_page(page_url, headers=headers) stream_link = scrapertools.find_single_match(data, '<input type="hidden" name="streamLink" value="([^"]+)">') temp_link = scrapertools.find_single_match(data, '<input type="hidden" name="templink" value="([^"]+)">') headers.append(['Referer', page_url]) post_data = 'streamLink=%s&templink=%s' % (stream_link, temp_link) data = scrapertools.cache_page('http://abysstream.com/viewvideo.php', post=post_data, headers=headers) # URL media_url = scrapertools.find_single_match(data, '<source src="([^"]+)" type="video/mp4"') _headers = urllib.urlencode(dict(headers)) # URL del vídeo video_urls.append( [scrapertools.get_filename_from_url(media_url)[-4:] + " [Abysstream]", media_url + '|' + _headers]) for video_url in video_urls: logger.info("[abysstream.py] %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("[netutv.py] url="+page_url) # Lo pide una vez headers = [['User-Agent','Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10']] data = scrapertools.cache_page( page_url , headers=headers ) logger.info("data="+data) ''' http://netu.tv/watch_video.php?v=96WDAA71A8K http://s1.netu.tv/flv/api/files/thumbs/2013/09/17/1373323542a37c1-640x480-1.jpg http://s1.netu.tv/hls-vod/flv/api/files/videos/2013/09/17/1373323542a37c1.mp4.m3u8 ''' # Extrae la URL image_url = scrapertools.get_match( data , '<meta property="og:image" content="([^"]+)"' ) media_url = image_url.replace("flv/api/files/thumbs","hls-vod/flv/api/files/videos") media_url = media_url.replace("-640x480-1.jpg",".mp4.m3u8") video_urls = [] video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" [netu.tv]",media_url]) for video_url in video_urls: logger.info("[netutv.py] %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("[speedvid.py] url=" + page_url) video_urls = [] data = scrapertools.cache_page(page_url, headers=headers) time.sleep(5) post_url = re.findall('Form method="POST" action=\'(.*)\'', data)[0] post_selected = re.findall('Form method="POST" action=(.*)</Form>', data, re.DOTALL)[0] post_data = 'op=%s&usr_login=%s&id=%s&fname=%s&referer=%s&hash=%s&imhuman=Proceed+to+video' % ( re.findall('input type="hidden" name="op" value="(.*)"', post_selected)[0], re.findall('input type="hidden" name="usr_login" value="(.*)"', post_selected)[0], re.findall('input type="hidden" name="id" value="(.*)"', post_selected)[0], re.findall('input type="hidden" name="fname" value="(.*)"', post_selected)[0], re.findall('input type="hidden" name="referer" value="(.*)"', post_selected)[0], re.findall('input type="hidden" name="hash" value="(.*)"', post_selected)[0]) headers.append(['Referer', page_url]) data = scrapertools.cache_page(post_url, post=post_data, headers=headers) data = scrapertools.find_single_match(data, "(eval.function.p,a,c,k,e,.*?)\s*</script>") if data != "": from core import jsunpack data = jsunpack.unpack(data) # URL del vídeo url = re.findall('file:\s*"([^"]+)"', data)[0] video_urls.append([scrapertools.get_filename_from_url(url)[-4:] + " [speedvid]", url]) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("pelisalacarta.servers.playwire url="+page_url) data = scrapertools.cachePage(page_url) data = jsontools.load_json(data) f4m = data['content']['media']['f4m'] video_urls = [] data = scrapertools.downloadpageGzip(f4m) xml = ET.fromstring(data) base_url = xml.find('{http://ns.adobe.com/f4m/1.0}baseURL').text for media in xml.findall('{http://ns.adobe.com/f4m/1.0}media'): if ".m3u8" in media.get('url'): continue media_url = base_url + "/" + media.get('url') try: height = media.get('height') width = media.get('width') label = "("+ width + "x" + height + ")" except: label = "" video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" "+label+" [playwire]",media_url]) for video_url in video_urls: logger.info("pelisalacarta.servers.playwire %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("(page_url='%s')" % page_url) url = page_url.replace(host, "http://powvideo.xyz/iframe-") + "-954x562.html" data = httptools.downloadpage(page_url, cookies=False) cookie = data.headers['set-cookie'] data = data.data file_id, aff = scrapertools.find_single_match( data, "'file_id', '(\d+)',[^']+'aff', '(\d+)',") _cookie = { "Cookie": cookie.replace("path=/; HttpOnly", "file_id=" + file_id + "; aff=" + aff) } id = scrapertools.find_single_match(data, 'name="id" value="([^"]+)"') fname = scrapertools.find_single_match(data, 'name="fname" value="([^"]+)"') hash = scrapertools.find_single_match(data, 'name="hash" value="([^"]+)"') post = "op=download1&usr_login=&referer=&fname=%s&id=%s&hash=%s" % ( fname, id, hash) import time time.sleep(7) data = httptools.downloadpage(page_url, post, headers=_cookie).data for list in scrapertools.find_multiple_matches(data, '_[^=]+=(\[[^\]]+\]);'): if len(list) == 703 or len(list) == 711: key = "".join(eval(list)[7:9]) break if key.startswith("embed"): key = key[6:] + key[:6] matches = scrapertools.find_single_match( data, "<script type=[\"']text/javascript[\"']>(eval.*?)</script>") data = jsunpack.unpack(matches).replace("\\", "") data = scrapertools.find_single_match(data.replace('"', "'"), "sources\s*=[^\[]*\[([^\]]+)\]") matches = scrapertools.find_multiple_matches(data, "[src|file]:'([^']+)'") video_urls = [] for video_url in matches: _hash = scrapertools.find_single_match(video_url, '[A-z0-9\_\-]{40,}') hash = decrypt(_hash, key) video_url = video_url.replace(_hash, hash) filename = scrapertools.get_filename_from_url(video_url)[-4:] if video_url.startswith("rtmp"): rtmp, playpath = video_url.split("vod/", 1) video_url = "%svod/ playpath=%s swfUrl=%splayer6/jwplayer.flash.swf pageUrl=%s" % \ (rtmp, playpath, host, page_url) filename = "RTMP" elif video_url.endswith(".m3u8"): video_url += "|User-Agent=" + headers[0][1] elif video_url.endswith("/v.mp4"): video_url_flv = re.sub(r'/v.mp4', '/v.flv', video_url) video_urls.append(["flv [powvideo]", video_url_flv]) video_urls.append([filename + " [powvideo]", video_url]) video_urls.sort(key=lambda x: x[0], reverse=True) for video_url in video_urls: logger.info("%s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("tvalacarta.servers.cntv get_video_url(page_url='%s')" % page_url) if page_url.startswith("http://"): data = scrapertools.cache_page(page_url) video_id = scrapertools.find_single_match( data, '"videoCenterId","([a-z0-9]+)"') else: video_id = page_url page_url = "" logger.info("tvalacarta.servers.cntv video_id=" + video_id) video_url_m3u8 = "" video_url_mp4_high = "" video_url_mp4_low = "" # Formato noticias if video_id != "": metadata_url = "http://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid=" + video_id + "&tz=-1&from=000spanish&url=" + page_url + "&idl=32&idlr=32&modifyed=false" data = scrapertools.cache_page(metadata_url) logger.info(data) json_data = jsontools.load_json(data) #video_url_m3u8 = scrapertools.find_single_match(data,'"hls_url"\:"([^"]+)"') video_url_m3u8 = json_data['hls_url'] video_url_mp4_high = json_data['video']['chapters'][0]['url'] try: video_url_mp4_low = json_data['video']['lowChapters'][0]['url'] except: video_url_mp4_low = "" # Formato programas else: video_id = scrapertools.find_single_match(data, '"videoCenterId","(.*?)"') video_url_m3u8 = "http://asp.v.cntv.cn/hls/" + matches[0] + "/main.m3u8" logger.info("video_url_m3u8=" + video_url_m3u8) logger.info("video_url_mp4_high=" + video_url_mp4_high) logger.info("video_url_mp4_low=" + video_url_mp4_low) lista_videourls = [] if video_url_mp4_low != "": lista_videourls.append([ 'LOW (' + scrapertools.get_filename_from_url(video_url_mp4_low)[-4:] + ') [cntv]', video_url_mp4_low ]) if video_url_mp4_high != "": lista_videourls.append([ 'HIGH (' + scrapertools.get_filename_from_url(video_url_mp4_high)[-4:] + ') [cntv]', video_url_mp4_high ]) if ".m3u8" in video_url_m3u8: data_calidades = scrapertools.cache_page(video_url_m3u8) patron_calidades = "BANDWIDTH=(\d+), RESOLUTION=([a-z0-9]+)\s*(.*?.m3u8)" matches = re.compile(patron_calidades, re.DOTALL).findall(data_calidades) if len(matches) > 0: for bitrate, resolucion, calidad_url in matches: esta_url = urlparse.urljoin(video_url_m3u8, calidad_url) try: kb = " " + str(int(bitrate) / 1024) + "Kbps " except: kb = "" lista_videourls.append([ resolucion + kb + '(' + scrapertools.get_filename_from_url(esta_url)[-4:] + ') [cntv]', esta_url ]) else: lista_videourls.append([ '(' + scrapertools.get_filename_from_url(video_url_m3u8)[-4:] + ') [cntv]', video_url_m3u8 ]) else: lista_videourls.append([ '(' + scrapertools.get_filename_from_url(video_url_m3u8)[-4:] + ') [cntv]', video_url_m3u8 ]) lista_videourls.reverse() for v in lista_videourls: logger.info("tvalacarta.servers.cntv %s - %s" % (v[0], v[1])) return lista_videourls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("[nowvideo.py] get_video_url(page_url='%s')" % page_url) video_urls = [] video_id = scrapertools.get_match( page_url, "http://www.nowvideo.../video/([a-z0-9]+)") if premium: # Lee la página de login login_url = "http://www.nowvideo.eu/login.php" data = scrapertools.cache_page(login_url) # Hace el login login_url = "http://www.nowvideo.eu/login.php?return=" post = "user="******"&pass="******"®ister=Login" headers = [] headers.append(["User-Agent", USER_AGENT]) headers.append(["Referer", "http://www.nowvideo.eu/login.php"]) data = scrapertools.cache_page(login_url, post=post, headers=headers) # Descarga la página del vídeo data = scrapertools.cache_page(page_url) logger.debug("data:" + data) # URL a invocar: http://www.nowvideo.eu/api/player.api.php?user=aaa&file=rxnwy9ku2nwx7&pass=bbb&cid=1&cid2=undefined&key=83%2E46%2E246%2E226%2Dc7e707c6e20a730c563e349d2333e788&cid3=undefined # En la página: ''' flashvars.domain="http://www.nowvideo.eu"; flashvars.file="rxnwy9ku2nwx7"; flashvars.filekey="83.46.246.226-c7e707c6e20a730c563e349d2333e788"; flashvars.advURL="0"; flashvars.autoplay="false"; flashvars.cid="1"; flashvars.user="******"; flashvars.key="bbb"; flashvars.type="1"; ''' flashvar_file = scrapertools.get_match(data, 'flashvars.file="([^"]+)"') flashvar_filekey = scrapertools.get_match( data, 'flashvars.filekey=([^;]+);') flashvar_filekey = scrapertools.get_match( data, 'var ' + flashvar_filekey + '="([^"]+)"') flashvar_user = scrapertools.get_match(data, 'flashvars.user="******"]+)"') flashvar_key = scrapertools.get_match(data, 'flashvars.key="([^"]+)"') flashvar_type = scrapertools.get_match(data, 'flashvars.type="([^"]+)"') # http://www.nowvideo.eu/api/player.api.php?user=aaa&file=rxnwy9ku2nwx7&pass=bbb&cid=1&cid2=undefined&key=83%2E46%2E246%2E226%2Dc7e707c6e20a730c563e349d2333e788&cid3=undefined url = "http://www.nowvideo.eu/api/player.api.php?user="******"&file=" + flashvar_file + "&pass="******"&cid=1&cid2=undefined&key=" + flashvar_filekey.replace( ".", "%2E").replace("-", "%2D") + "&cid3=undefined" data = scrapertools.cache_page(url) logger.info("data=" + data) location = scrapertools.get_match(data, 'url=([^\&]+)&') location = location + "?client=FLASH" video_urls.append([ scrapertools.get_filename_from_url(location)[-4:] + " [premium][nowvideo]", location ]) else: data = scrapertools.cache_page(page_url) flashvar_filekey = scrapertools.get_match( data, 'flashvars.filekey=([^;]+);') filekey = scrapertools.get_match(data, 'var %s="([^"]+)"' % flashvar_filekey).replace( ".", "%2E").replace("-", "%2D") # get stream url from api url = 'http://www.nowvideo.sx/api/player.api.php?key=%s&file=%s' % ( filekey, video_id) data = scrapertools.cache_page(url) data = scrapertools.get_match(data, 'url=([^\&]+)&') res = scrapertools.get_header_from_response( url, header_to_get="content-type") if res == "text/html": data = urllib.quote_plus(data).replace(".", "%2E") url = 'http://www.nowvideo.sx/api/player.api.php?cid3=undefined&numOfErrors=1&user=undefined&errorUrl=%s&pass=undefined&errorCode=404&cid=1&cid2=undefined&file=%s&key=%s' % ( data, video_id, filekey) data = scrapertools.cache_page(url) try: data = scrapertools.get_match(data, 'url=([^\&]+)&') except: url = 'http://www.nowvideo.sx/api/player.api.php?key=%s&file=%s' % ( filekey, video_id) data = scrapertools.cache_page(url) data = scrapertools.get_match(data, 'url=([^\&]+)&') media_url = data video_urls.append([ scrapertools.get_filename_from_url(media_url)[-4:] + " [nowvideo]", media_url ]) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("pelisalacarta.videomega get_video_url(page_url='%s')" % page_url) video_urls = [] id = scrapertools.get_match(page_url,"ref\=([A-Za-z0-9]+)") page_url = "http://videomega.tv/?ref="+id new_url = "http://videomega.tv/cdn.php?ref="+id+"&width=800&height=400" print "### page_url: %s" % (page_url) print "### new_url: %s" % (new_url) # Descarga la página headers = [ ['Host', 'videomega.tv'], ['User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0'], ['Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'], ['Accept-Language', 'es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3'], ['Accept-Encoding', 'gzip, deflate'], ['Referer', page_url], ['Connection', 'keep-alive'] ] data = scrapertools.cache_page(new_url , headers = headers) try: ## Debug l = [] patron = 'document.write\(unescape\("([^"]+)"\)\)' matches = re.compile(patron,re.DOTALL).findall(data) print "######### matches:\n%s" % (matches) for loc in matches: l.append(urllib.unquote(loc)) print "######### l1:\n%s" % (l[0]) print "######### l2:\n%s" % (l[1]) print "######### l3:\n%s" % (l[2]) ## url válida en l3 ## l3 quote #<script type="text/javascript">document.write(unescape("%3c%73%63%72%69%70%74%20%74%79%70%65%3d%22%74%65%78%74%2f%6a%61%76%61%73%63%72%69%70%74%22%3e%69%66%28%59%53%4a%63%4e%46%51%52%62%62%4f%29%7b%6a%77%70%6c%61%79%65%72%28%29%2e%6f%6e%52%65%61%64%79%28%66%75%6e%63%74%69%6f%6e%28%29%7b%6a%77%70%6c%61%79%65%72%28%29%2e%6c%6f%61%64%28%5b%7b%69%6d%61%67%65%3a%22%68%74%74%70%3a%2f%2f%73%74%31%32%39%2e%75%31%2e%76%69%64%65%6f%6d%65%67%61%2e%74%76%2f%76%69%64%65%6f%73%2f%73%63%72%65%65%6e%73%68%6f%74%73%2f%34%65%38%34%61%66%33%61%64%32%62%30%37%32%30%65%30%38%37%61%33%34%39%63%64%32%34%37%35%35%61%36%2e%6a%70%67%22%20%2c%20%66%69%6c%65%3a%22%68%74%74%70%3a%2f%2f%73%74%31%32%39%2e%75%31%2e%76%69%64%65%6f%6d%65%67%61%2e%74%76%2f%76%2f%34%65%38%34%61%66%33%61%64%32%62%30%37%32%30%65%30%38%37%61%33%34%39%63%64%32%34%37%35%35%61%36%2e%6d%70%34%3f%73%74%3d%61%79%77%66%77%58%44%31%33%73%56%6a%4b%37%49%59%73%64%75%6f%35%51%26%68%61%73%68%3d%38%31%52%65%32%48%55%4e%70%74%61%78%5a%39%66%64%57%34%74%6a%70%51%22%20%20%20%20%7d%5d%29%3b%7d%29%3b%7d%3c%2f%73%63%72%69%70%74%3e"));</script> ## l3 unquote #<script type="text/javascript">if(YSJcNFQRbbO){jwplayer().onReady(function(){jwplayer().load([{image:"http://st129.u1.videomega.tv/videos/screenshots/4e84af3ad2b0720e087a349cd24755a6.jpg" , file:"http://st129.u1.videomega.tv/v/4e84af3ad2b0720e087a349cd24755a6.mp4?st=aywfwXD13sVjK7IYsduo5Q&hash=81Re2HUNptaxZ9fdW4tjpQ" }]);});}</script> ## l3 quote location = scrapertools.get_match(data,'<script type="text/javascript">document.write\(unescape\("([^"]+)"\)\)') logger.info("pelisalacarta.videomega location="+location) location = urllib.unquote(location) logger.info("pelisalacarta.videomega location="+location) ## l3 unquote location = scrapertools.get_match(location,'file\:"([^"]+)"') logger.info("pelisalacarta.videomega location="+location) video_urls.append( [ scrapertools.get_filename_from_url(location)[-4:]+" [videomega]" , location ] ) except: media_url = scrapertools.get_match(data,'<source src="([^"]+)" type="video/mp4"/>') media_url+= "|Cookie=__cfduid=d99f17efc7261084a8b2fe4dee1773a5c1395122824594" video_urls = [ [ "mp4 [videomega]" , media_url ] ] else: video_urls = [ ["en videomega? Va a ser que no. Videomega está vacilón", False ] ] for video_url in video_urls: logger.info("pelisalacarta.videomega %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("[nowvideo.py] get_video_url(page_url='%s')" % page_url) video_urls = [] if premium: # Lee la página de login login_url = "http://www.nowvideo.eu/login.php" data = scrapertools.cache_page(login_url) # Hace el login login_url = "http://www.nowvideo.eu/login.php?return=" post = "user="******"&pass="******"®ister=Login" headers = [] headers.append(["User-Agent", USER_AGENT]) headers.append(["Referer", "http://www.nowvideo.eu/login.php"]) data = scrapertools.cache_page(login_url, post=post, headers=headers) # Descarga la página del vídeo data = scrapertools.cache_page(page_url) logger.debug("data:" + data) # URL a invocar: http://www.nowvideo.eu/api/player.api.php?user=aaa&file=rxnwy9ku2nwx7&pass=bbb&cid=1&cid2=undefined&key=83%2E46%2E246%2E226%2Dc7e707c6e20a730c563e349d2333e788&cid3=undefined # En la página: ''' flashvars.domain="http://www.nowvideo.eu"; flashvars.file="rxnwy9ku2nwx7"; flashvars.filekey="83.46.246.226-c7e707c6e20a730c563e349d2333e788"; flashvars.advURL="0"; flashvars.autoplay="false"; flashvars.cid="1"; flashvars.user="******"; flashvars.key="bbb"; flashvars.type="1"; ''' flashvar_file = scrapertools.get_match(data, 'flashvars.file="([^"]+)"') flashvar_filekey = scrapertools.get_match( data, 'flashvars.filekey="([^"]+)"') flashvar_user = scrapertools.get_match(data, 'flashvars.user="******"]+)"') flashvar_key = scrapertools.get_match(data, 'flashvars.key="([^"]+)"') flashvar_type = scrapertools.get_match(data, 'flashvars.type="([^"]+)"') #http://www.nowvideo.eu/api/player.api.php?user=aaa&file=rxnwy9ku2nwx7&pass=bbb&cid=1&cid2=undefined&key=83%2E46%2E246%2E226%2Dc7e707c6e20a730c563e349d2333e788&cid3=undefined url = "http://www.nowvideo.eu/api/player.api.php?user="******"&file=" + flashvar_file + "&pass="******"&cid=1&cid2=undefined&key=" + flashvar_filekey.replace( ".", "%2E").replace("-", "%2D") + "&cid3=undefined" data = scrapertools.cache_page(url) logger.info("data=" + data) location = scrapertools.get_match(data, 'url=([^\&]+)&') location = location + "?client=FLASH" video_urls.append([ scrapertools.get_filename_from_url(location)[-4:] + " [premium][nowvideo]", location ]) else: data = scrapertools.cache_page(page_url) logger.debug("data:" + data) # URL a invocar: http://www.nowvideo.eu/api/player.api.php?file=3695bce6e6288&user=undefined&codes=1&pass=undefined&key=83%2E44%2E253%2E73%2D64a25e17853b4b19586841e04b0d9382 # En la página: ''' flashvars.domain="http://www.nowvideo.eu"; flashvars.file="3695bce6e6288"; flashvars.filekey="83.44.253.73-64a25e17853b4b19586841e04b0d9382"; flashvars.advURL="0"; flashvars.autoplay="false"; flashvars.cid="1"; ''' file = scrapertools.get_match(data, 'flashvars.file="([^"]+)"') key = scrapertools.get_match(data, 'flashvars.filekey="([^"]+)"') #http://www.nowvideo.eu/api/player.api.php?key=88%2E19%2E203%2E156%2Dd140046f284485aedf05563b85f1e8e9&codes=undefined&user=undefined&pass=undefined&file=6f213c972dc5b url = "http://www.nowvideo.eu/api/player.api.php?file=" + file + "&user=undefined&codes=undefined&pass=undefined&key=" + key.replace( ".", "%2E").replace("-", "%2D") data = scrapertools.cache_page(url) logger.info("data=" + data) # url=http://f23.nowvideo.eu/dl/653d434d3cd95f1f7b9df894366652ba/4fc2af77/nnb7e7f45f276be5a75b10e8d6070f6f4c.flv&title=Title%26asdasdas&site_url=http://www.nowvideo.eu/video/3695bce6e6288&seekparm=&enablelimit=0 location = scrapertools.get_match(data, 'url=([^\&]+)&') location = location + "?client=FLASH" video_urls.append([ scrapertools.get_filename_from_url(location)[-4:] + " [nowvideo]", location ]) for video_url in video_urls: logger.info("[nowvideo.py] %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("[magnovideo.py] get_video_url(page_url='%s')" % page_url) video_urls = [] headers = [] headers.append(["User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20100101 Firefox/17.0"]) id_video = scrapertools.get_match(page_url,"\?v\=([A-Z0-9]+)") data = scrapertools.cache_page("http://www.magnovideo.com/player_config.php?mdid="+id_video) logger.info("data="+data) #http://e1.magnovideo.com:8080/storage/files/0/0/16/161/1.mp4?burst=3890k&u=600k&st=ybNoWopdpGeeDy6dXVh4kw&e=1360030261 #<first_frame>http://s2.magnovideo.com/storage/files/0/0/99/197/large/1.jpg</first_frame> #<video_name>1.mp4</video_name> #<storage_path>http://e1.magnovideo.com:8080/</storage_path> #<movie_burst>3890</movie_burst> #<burst_speed>600</burst_speed> #<ste>st=ybNoWopdpGeeDy6dXVh4kw&e=1360030261</ste> first_frame = scrapertools.get_match(data,"<first_frame>([^<]+)</first_frame>") logger.info("first_frame="+first_frame) video_name = scrapertools.get_match(data,"<video_name>([^<]+)</video_name>") logger.info("video_name="+video_name) storage_path = scrapertools.get_match(data,"<storage_path>([^<]+)</storage_path>") logger.info("storage_path="+storage_path) movie_burst = scrapertools.get_match(data,"<movie_burst>([^<]+)</movie_burst>") logger.info("movie_burst="+movie_burst) burst_speed = scrapertools.get_match(data,"<burst_speed>([^<]+)</burst_speed>") logger.info("burst_speed="+burst_speed) ste = scrapertools.get_match(data,"<ste>([^<]+)</ste>") logger.info("ste="+ste) #http://e1.magnovideo.com:8080/storage/files/0/0/16/161/1.mp4?burst=3890k&u=600k&st=ybNoWopdpGeeDy6dXVh4kw&e=1360030261 base_path = re.compile("http\://.*?/",re.DOTALL).sub(storage_path,first_frame) logger.info("base_path="+base_path) location = base_path.replace("large/1.jpg",video_name) location = location+"?burst="+movie_burst+"k&u="+burst_speed+"k&"+ste ''' # Pide la primera logger.info("----------------------------------------------------------------------------------------------------") data = scrapertools.cache_page(page_url,headers=headers) logger.info("cookies="+config.get_cookie_data()) logger.info("data="+data) # Pide la segunda con el v.php #http://www.magnovideo.com/?v=QRATZ9UN #http://www.magnovideo.com/v.php?dl=QRATZ9UN headers.append(["Referer",page_url]) logger.info("----------------------------------------------------------------------------------------------------") data = scrapertools.cache_page(page_url.replace("?v=","v.php?dl="),headers=headers) logger.info("cookies="+config.get_cookie_data()) logger.info("data="+data) # Vuelve a pedir la primera, esta vez con las cookies bien headers[1][1]=page_url.replace("?v=","v.php?dl=") logger.info("----------------------------------------------------------------------------------------------------") data = scrapertools.cache_page(page_url,headers=headers) logger.info("cookies="+config.get_cookie_data()) logger.info("data="+data) # Busca el enlace location = scrapertools.get_match(data,"http\://www.magnovideo.com/templates_mu/player/crilance_player.swf\?flv\=([^\&]+)\&") location = location+"?burst=5568k" ''' video_urls.append( [scrapertools.get_filename_from_url(location)[-4:]+" [magnovideo]" , location] ) for video_url in video_urls: logger.info("[magnovideo.py] %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("pelisalacarta.servers.flashx url=" + page_url) # Lo pide una vez headers = [[ 'User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14' ]] data = scrapertools.cache_page(page_url, headers=headers) #logger.info("data="+data) form_url = scrapertools.get_match( data, "<Form method=\"POST\" action='([^']+)'>") logger.info("pelisalacarta.servers.flashx form_url=" + form_url) form_url = urlparse.urljoin(page_url, form_url) logger.info("pelisalacarta.servers.flashx form_url=" + form_url) op = scrapertools.get_match( data, '<input type="hidden" name="op" value="([^"]+)"') logger.info("pelisalacarta.servers.flashx op=" + op) usr_login = "" id = scrapertools.get_match( data, '<input type="hidden" name="id" value="([^"]+)"') logger.info("pelisalacarta.servers.flashx id=" + id) fname = scrapertools.get_match( data, '<input type="hidden" name="fname" value="([^"]+)"') logger.info("pelisalacarta.servers.flashx fname=" + fname) referer = scrapertools.get_match( data, '<input type="hidden" name="referer" value="([^"]*)"') logger.info("pelisalacarta.servers.flashx referer=" + referer) hashstring = scrapertools.get_match( data, '<input type="hidden" name="hash" value="([^"]*)"') logger.info("pelisalacarta.servers.flashx hashstring=" + hashstring) imhuman = scrapertools.get_match( data, '<input type="submit".*?name="imhuman" value="([^"]+)"').replace( " ", "+") logger.info("pelisalacarta.servers.flashx imhuman=" + imhuman) import time time.sleep(10) # Lo pide una segunda vez, como si hubieras hecho click en el banner #op=download1&usr_login=&id=z3nnqbspjyne&fname=Coriolanus_DVDrip_Castellano_by_ARKONADA.avi&referer=&hash=nmnt74bh4dihf4zzkxfmw3ztykyfxb24&imhuman=Continue+to+Video #op=download1&usr_login=&id=h6gjvhiuqfsq&fname=GENES1S.avi&referer=&hash=taee4nbdgbuwuxfguju3t6nq2gkdzs6k&imhuman=Proceed+to+video #op=download1&usr_login=&id=vpkvjdpkh972&fname=G4ngm4n15HDRSub.avi&referer=&hash=1357853-176-86-1437560090-ee4170e4a4eca471524f6f07eca2b7a9&imhuman=Proceed+to+video post = "op=" + op + "&usr_login="******"&id=" + id + "&fname=" + fname + "&referer=" + referer + "&hash=" + hashstring + "&imhuman=" + imhuman headers.append(["Referer", page_url]) body = scrapertools.cache_page(form_url, post=post, headers=headers) logger.info("body=" + body) data = scrapertools.find_single_match( body, "<script type='text/javascript'>(eval\(function\(p,a,c,k,e,d.*?)</script>" ) logger.info("data=" + data) data = jsunpack.unpack(data) logger.info("data=" + data) # Extrae la URL #{file:"http://f11-play.flashx.tv/luq4gfc7gxixexzw6v4lhz4xqslgqmqku7gxjf4bk43u4qvwzsadrjsozxoa/video1.mp4"} video_urls = [] media_urls = scrapertools.find_multiple_matches(data, '\{file\:"([^"]+)"') video_urls = [] for media_url in media_urls: video_urls.append([ scrapertools.get_filename_from_url(media_url)[-4:] + " [flashx]", media_url ]) for video_url in video_urls: logger.info("pelisalacarta.servers.flashx %s - %s" % (video_url[0], video_url[1])) return video_urls
def findvideos(item): logger.info("pelisalacarta.channels.divxatope findvideos") itemlist = [] # Descarga la pagina item.url = item.url.replace("divxatope.com/descargar/", "divxatope.com/ver-online/") ''' <div class="box1"><img src='http://www.divxatope.com/uploads/images/gestores/thumbs/1411605666_nowvideo.jpg' width='33' height='33'></div> <div class="box2">nowvideo</div> <div class="box3">Español Castel</div> <div class="box4">DVD-Screene</div> <div class="box5"><a href="http://www.nowvideo.ch/video/affd21b283421" rel="nofollow" target="_blank">Ver Online</a></div> ''' # Descarga la pagina data = scrapertools.cachePage(item.url) item.plot = scrapertools.find_single_match( data, '<div class="post-entry" style="height:300px;">(.*?)</div>') item.plot = scrapertools.htmlclean(item.plot).strip() item.contentPlot = item.plot link = scrapertools.find_single_match( data, 'href="http://tumejorserie.*?link=([^"]+)"') if link != "": link = "http://www.divxatope.com/" + link logger.info("pelisalacarta.channels.divxatope torrent=" + link) itemlist.append( Item(channel=item.channel, action="play", server="torrent", title="Vídeo en torrent", fulltitle=item.title, url=link, thumbnail=servertools.guess_server_thumbnail("torrent"), plot=item.plot, folder=False, parentContent=item)) patron = "<div class=\"box1\"[^<]+<img[^<]+</div[^<]+" patron += '<div class="box2">([^<]+)</div[^<]+' patron += '<div class="box3">([^<]+)</div[^<]+' patron += '<div class="box4">([^<]+)</div[^<]+' patron += '<div class="box5">(.*?)</div[^<]+' patron += '<div class="box6">([^<]+)<' matches = re.compile(patron, re.DOTALL).findall(data) scrapertools.printMatches(matches) itemlist_ver = [] itemlist_descargar = [] for servername, idioma, calidad, scrapedurl, comentarios in matches: title = "Mirror en " + servername + " (" + calidad + ")" + " (" + idioma + ")" if comentarios.strip() != "": title = title + " (" + comentarios.strip() + ")" url = urlparse.urljoin(item.url, scrapedurl) thumbnail = servertools.guess_server_thumbnail(title) plot = "" if (DEBUG): logger.info("title=[" + title + "], url=[" + url + "], thumbnail=[" + thumbnail + "]") new_item = Item(channel=item.channel, action="extract_url", title=title, fulltitle=title, url=url, thumbnail=thumbnail, plot=plot, folder=True, parentContent=item) if comentarios.startswith("Ver en"): itemlist_ver.append(new_item) else: itemlist_descargar.append(new_item) for new_item in itemlist_ver: itemlist.append(new_item) for new_item in itemlist_descargar: itemlist.append(new_item) if len(itemlist) == 0: itemlist = servertools.find_video_items(item=item, data=data) for videoitem in itemlist: videoitem.title = "Enlace encontrado en " + videoitem.server + " (" + scrapertools.get_filename_from_url( videoitem.url) + ")" videoitem.fulltitle = item.fulltitle videoitem.thumbnail = item.thumbnail videoitem.channel = item.channel return itemlist
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("[streaminto.py] url=" + page_url) # Normaliza la URL try: if not page_url.startswith("http://streamin.to/embed-"): videoid = scrapertools.get_match(page_url, "streamin.to/([a-z0-9A-Z]+)") page_url = "http://streamin.to/embed-" + videoid + ".html" except: import traceback logger.info(traceback.format_exc()) # Lo pide una vez headers = [[ 'User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14' ]] data = scrapertools.cache_page(page_url, headers=headers) #logger.info("data="+data) #sources: [{file: "rtmp://95.211.95.238:1935/vod?h=t2i7k2olyhuzcg3h5e7cft5ly2ubyenv7dh6cfa2qgo5g6dl3dfuch4lvkka/flv:68/3185801774_n.flv?h=t2i7k2olyhuzcg3h5e7cft5ly2ubyenv7dh6cfa2qgo5g6dl3dfuch4lvkka"},{file: "http://95.211.95.238:8777/t2i7k2olyhuzcg3h5e7cft5ly2ubyenv7dh6cfa2qgo5g6dl3dfuch4lvkka/v.flv"}], patron = ',\{file\: "([^"]+)"' #patron_rtmp = '\[{file\: "([^"]+)"' #patron_flv = ',\{file\: "([^"]+)"' try: #media_url = scrapertools.get_match( data , 'file\: "([^"]+)"' ) media_url = scrapertools.get_match(data, patron) except: op = scrapertools.get_match( data, '<input type="hidden" name="op" value="([^"]+)"') usr_login = "" id = scrapertools.get_match( data, '<input type="hidden" name="id" value="([^"]+)"') fname = scrapertools.get_match( data, '<input type="hidden" name="fname" value="([^"]+)"') referer = scrapertools.get_match( data, '<input type="hidden" name="referer" value="([^"]*)"') hashstring = scrapertools.get_match( data, '<input type="hidden" name="hash" value="([^"]*)"') imhuman = scrapertools.get_match( data, '<input type="submit" name="imhuman".*?value="([^"]+)"').replace( " ", "+") import time time.sleep(10) # Lo pide una segunda vez, como si hubieras hecho click en el banner #op=download1&usr_login=&id=z3nnqbspjyne&fname=Coriolanus_DVDrip_Castellano_by_ARKONADA.avi&referer=&hash=nmnt74bh4dihf4zzkxfmw3ztykyfxb24&imhuman=Continue+to+Video post = "op=" + op + "&usr_login="******"&id=" + id + "&fname=" + fname + "&referer=" + referer + "&hash=" + hashstring + "&imhuman=" + imhuman headers.append(["Referer", page_url]) data = scrapertools.cache_page(page_url, post=post, headers=headers) logger.info("data=" + data) # Extrae la URL #media_url = scrapertools.get_match( data , 'file\: "([^"]+)"' ) media_url = scrapertools.get_match(data, patron) video_urls = [] video_urls.append([ scrapertools.get_filename_from_url(media_url)[-4:] + " [streaminto]", media_url ]) for video_url in video_urls: logger.info("[streamcloud.py] %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("[vidspot.py] url=" + page_url) # Normaliza la URL try: if not page_url.startswith("http://vidspot.net/embed-"): videoid = scrapertools.get_match(page_url, "vidspot.net/([a-z0-9A-Z]+)") page_url = "http://vidspot.net/embed-" + videoid + ".html" except: import traceback logger.info(traceback.format_exc()) # Lo pide una vez headers = [[ 'User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14' ]] data = scrapertools.cache_page(page_url, headers=headers) logger.info("data=" + data) try: op = scrapertools.get_match( data, '<input type="hidden" name="op" value="([^"]+)"') usr_login = "" id = scrapertools.get_match( data, '<input type="hidden" name="id" value="([^"]+)"') fname = scrapertools.get_match( data, '<input type="hidden" name="fname" value="([^"]+)"') referer = scrapertools.get_match( data, '<input type="hidden" name="referer" value="([^"]*)"') method_free = scrapertools.get_match( data, '<input type="hidden" name="method_free" value="([^"]*)"') submitbutton = scrapertools.get_match( data, '<input type="image" id="submitButton".*?value="([^"]+)"' ).replace(" ", "+") import time time.sleep(10) # Lo pide una segunda vez, como si hubieras hecho click en el banner #op=download1&usr_login=&id=d6fefkzvjc1z&fname=coriolanus.dvdr.mp4&referer=&method_free=1&x=109&y=17 post = "op=" + op + "&usr_login="******"&id=" + id + "&fname=" + fname + "&referer=" + referer + "&method_free=" + method_free + "&x=109&y=17" headers.append(["Referer", page_url]) data = scrapertools.cache_page(page_url, post=post, headers=headers) logger.info("data=" + data) except: pass # Extrae la URL match = re.compile('"file" : "(.+?)",').findall(data) media_url = "" if len(match) > 0: for tempurl in match: if not tempurl.endswith(".png") and not tempurl.endswith(".srt"): media_url = tempurl if media_url == "": media_url = match[0] video_urls = [] video_urls.append([ scrapertools.get_filename_from_url(media_url)[-4:] + " [vidspot]", media_url ]) for video_url in video_urls: logger.info("[vidspot.py] %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("pelisalacarta.powvideo get_video_url(page_url='%s')" % page_url) # Lo pide una vez if not "embed" in page_url: page_url = page_url.replace( "http://powvideo.net/", "http://powvideo.net/embed-") + "-640x360.html" headers = [[ 'User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14' ], ['Referer', page_url]] page_url = page_url.replace("embed", "iframe") data = scrapertools.cache_page(page_url, headers=headers) logger.info("data=" + data) #Quitado porque funciona mas rapido asi y no veo necesidad de esto: ''' try: op = scrapertools.get_match(data,'<input type="hidden" name="op" value="(down[^"]+)"') usr_login = "" id = scrapertools.get_match(data,'<input type="hidden" name="id" value="([^"]+)"') fname = scrapertools.get_match(data,'<input type="hidden" name="fname" value="([^"]+)"') referer = scrapertools.get_match(data,'<input type="hidden" name="referer" value="([^"]*)"') hashvalue = scrapertools.get_match(data,'<input type="hidden" name="hash" value="([^"]*)"') submitbutton = scrapertools.get_match(data,'<input type="submit" name="imhuman" value="([^"]+)"').replace(" ","+") import time time.sleep(30) # Lo pide una segunda vez, como si hubieras hecho click en el banner #op=download1&usr_login=&id=auoxxtvyquoy&fname=Star.Trek.Into.Darkness.2013.HD.m720p.LAT.avi&referer=&hash=1624-83-46-1377796019-c2b422f91da55d12737567a14ea3dffe&imhuman=Continue+to+Video #op=search&usr_login=&id=auoxxtvyquoy&fname=Star.Trek.Into.Darkness.2013.HD.m720p.LAT.avi&referer=&hash=1624-83-46-1377796398-8020e5629f50ff2d7b7de99b55bdb177&imhuman=Continue+to+Video post = "op="+op+"&usr_login="******"&id="+id+"&fname="+fname+"&referer="+referer+"&hash="+hashvalue+"&imhuman="+submitbutton headers.append(["Referer",page_url]) data = scrapertools.cache_page( page_url , post=post, headers=headers ) #logger.info("data="+data) except: import traceback traceback.print_exc() ''' # Extrae la URL data = scrapertools.find_single_match( data, "<script type='text/javascript'>(.*?)</script>") logger.info("data=" + data) data = jsunpack.unpack(data) logger.info("data=" + data) data = scrapertools.find_single_match(data, "sources\=\[([^\]]+)\]") logger.info("data=" + data) data = data.replace("\\", "") logger.info("data=" + data) ''' {image:image,tracks:tracks,file:'rtmp://5.39.70.113:19350/vod/mp4:01/00219/dw5tbqp6dr3i_n?h=m4ohputqpiikkfn2mda7ymaimgo5n34f7uvpizy5vkjn7ifqrv6y2y6n5y',description:'dw5tbqp6dr3i'}, {image:image,tracks:tracks,file:'http://powvideo.net/m4ohputqpiikkfn2mda7ymaimgo5n34f7uvpizy5vkjn7ifqrv6y2y6n5y.m3u8',description:'dw5tbqp6dr3i'},{image:image,tracks:tracks,file:'http://5.39.70.113:8777/m4ohputqpiikkfn2mda7ymaimgo5n34f7uvpizy5vkjn7ifqrv6y2y6n5y/v.mp4',description:'dw5tbqp6dr3i'} ''' ''' {image:image,tracks:tracks,src:'rtmp://37.59.21.34:19350/vod/mp4:01/00255/iw61agv7g8yt_n?h=juohowjvpeikkfn2mds7ypiimi67nuoiof5ajr5w76wdk3c5q2wzhftesq',description:'iw61agv7g8yt'}, {image:image,tracks:tracks,src:'http://powvideo.net/juohowjvpeikkfn2mds7ypiimi67nuoiof5ajr5w76wdk3c5q2wzhftesq.m3u8',description:'iw61agv7g8yt'},{image:image,tracks:tracks,src:'http://37.59.21.34:8777/juohowjvpeikkfn2mds7ypiimi67nuoiof5ajr5w76wdk3c5q2wzhftesq/v.mp4',description:'iw61agv7g8yt'} ''' patron = "src:'([^']+)'" matches = re.compile(patron, re.DOTALL).findall(data) video_urls = [] for match in matches: video_urls.append([ scrapertools.get_filename_from_url(match)[-4:] + " [powvideo]", match ]) for video_url in video_urls: logger.info("[powvideo.py] %s - %s" % (video_url[0], video_url[1])) return video_urls
def novedades_tv(item): logger.info("[filmsenzalimiti.py] novedades") itemlist = [] # Descarga la página data = scrapertools.cache_page(item.url) patronvideos = '<div class="post-item-side"[^<]+' patronvideos += '<a href="([^"]+)"[^<]+<img src="([^"]+)"' matches = re.compile(patronvideos, re.DOTALL).findall(data) for scrapedurl, scrapedthumbnail in matches: html = scrapertools.cache_page(scrapedurl) start = html.find("</b></center></div>") end = html.find("</p>", start) scrapedplot = html[start:end] scrapedplot = re.sub(r'<[^>]*>', '', scrapedplot) scrapedplot = scrapertools.decodeHtmlentities(scrapedplot) scrapedtitle = scrapertools.get_filename_from_url(scrapedurl).replace( "-", " ").replace("/", "").replace(".html", "").capitalize().strip() if (DEBUG): logger.info("title=[" + scrapedtitle + "], url=[" + scrapedurl + "], thumbnail=[" + scrapedthumbnail + "]") try: plot, fanart, poster, extrameta = info_tv(scrapedtitle) itemlist.append( Item(channel=__channel__, thumbnail=poster, fanart=fanart if fanart != "" else poster, extrameta=extrameta, plot=str(plot), action="episodios" if item.extra == "serie" else "findvideos", title="[COLOR azure]" + scrapedtitle + "[/COLOR]", url=scrapedurl, fulltitle=scrapedtitle, show=scrapedtitle, folder=True)) except: itemlist.append( Item(channel=__channel__, action="episodios" if item.extra == "serie" else "findvideos", fulltitle=scrapedtitle, show=scrapedtitle, title="[COLOR azure]" + scrapedtitle + "[/COLOR]", url=scrapedurl, thumbnail=scrapedthumbnail, plot=scrapedplot, folder=True)) try: next_page = scrapertools.get_match( data, 'class="nextpostslink" rel="next" href="([^"]+)"') itemlist.append( Item( channel=__channel__, extra=item.extra, action="novedades_tv", title="[COLOR orange]Successivo >>[/COLOR]", url=next_page, thumbnail= "http://2.bp.blogspot.com/-fE9tzwmjaeQ/UcM2apxDtjI/AAAAAAAAeeg/WKSGM2TADLM/s1600/pager+old.png", folder=True)) except: pass return itemlist
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("[nowvideo.py] get_video_url(page_url='%s')" % page_url) video_urls = [] video_id = scrapertools.get_match(page_url,"http://www.nowvideo.../video/([a-z0-9]+)") if premium: # Lee la página de login login_url = "http://www.nowvideo.eu/login.php" data = scrapertools.cache_page( login_url ) # Hace el login login_url = "http://www.nowvideo.eu/login.php?return=" post = "user="******"&pass="******"®ister=Login" headers=[] headers.append(["User-Agent",USER_AGENT]) headers.append(["Referer","http://www.nowvideo.eu/login.php"]) data = scrapertools.cache_page( login_url , post=post, headers=headers ) # Descarga la página del vídeo data = scrapertools.cache_page( page_url ) logger.debug("data:" + data) # URL a invocar: http://www.nowvideo.eu/api/player.api.php?user=aaa&file=rxnwy9ku2nwx7&pass=bbb&cid=1&cid2=undefined&key=83%2E46%2E246%2E226%2Dc7e707c6e20a730c563e349d2333e788&cid3=undefined # En la página: ''' flashvars.domain="http://www.nowvideo.eu"; flashvars.file="rxnwy9ku2nwx7"; flashvars.filekey="83.46.246.226-c7e707c6e20a730c563e349d2333e788"; flashvars.advURL="0"; flashvars.autoplay="false"; flashvars.cid="1"; flashvars.user="******"; flashvars.key="bbb"; flashvars.type="1"; ''' flashvar_file = scrapertools.get_match(data,'flashvars.file="([^"]+)"') flashvar_filekey = scrapertools.get_match(data,'flashvars.filekey="([^"]+)"') flashvar_user = scrapertools.get_match(data,'flashvars.user="******"]+)"') flashvar_key = scrapertools.get_match(data,'flashvars.key="([^"]+)"') flashvar_type = scrapertools.get_match(data,'flashvars.type="([^"]+)"') #http://www.nowvideo.eu/api/player.api.php?user=aaa&file=rxnwy9ku2nwx7&pass=bbb&cid=1&cid2=undefined&key=83%2E46%2E246%2E226%2Dc7e707c6e20a730c563e349d2333e788&cid3=undefined url = "http://www.nowvideo.eu/api/player.api.php?user="******"&file="+flashvar_file+"&pass="******"&cid=1&cid2=undefined&key="+flashvar_filekey.replace(".","%2E").replace("-","%2D")+"&cid3=undefined" data = scrapertools.cache_page( url ) logger.info("data="+data) location = scrapertools.get_match(data,'url=([^\&]+)&') location = location + "?client=FLASH" video_urls.append( [ scrapertools.get_filename_from_url(location)[-4:] + " [premium][nowvideo]",location ] ) else: # http://www.nowvideo.sx/video/xuntu4pfq0qye data = scrapertools.cache_page( page_url ) logger.debug("data="+data) data = unwise.unwise_process(data) logger.debug("data="+data) filekey = unwise.resolve_var(data, "flashvars.filekey") logger.debug("filekey="+filekey) #get stream url from api url = 'http://www.nowvideo.sx/api/player.api.php?key=%s&file=%s' % (filekey, video_id) data = scrapertools.cache_page(url) logger.debug("data="+data) location = scrapertools.get_match(data,'url=(.+?)&title') video_urls.append( [ scrapertools.get_filename_from_url(location)[-4:] + " [nowvideo]",location ] ) for video_url in video_urls: logger.info("[nowvideo.py] %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("[flashx.py] get_video_url(page_url='%s')" % page_url) video_urls = [] # http://play.flashx.tv/player/embed.php?hash=4KB84GO238XX&width=600&height=370&autoplay=no data = scrapertools.cache_page(page_url) logger.info("data=" + data) logger.info(" ") logger.info( "----------------------------------------------------------------------" ) logger.info(" ") ''' <form method="POST" action="playfx.php" /> <input name="yes" type="hidden" value="m8fr27GmfHRrmr/CpqVpiouM79zY5plvaZaomdzXmpmb2rWmq6JXpZjJ4NTn2m5il8jb2NWiYpeZyKqo2aRimGzM2qPXp2pol5ewqq2jlliU2+zi5N6Sq3Df3eaa56SXpc/osKurX2NnmqanqaBiaGeM59/Y5pqfmKOppqylY2Vql6qk"> <input name="sec" type="hidden" value="Z7G6q6i5gGRmntDL"> <a href="" onclick="document.forms[0].submit();popup('http://free-stream.tv/','adsf','810','450','yes');return false;" class="auto-style3"><strong><font color="red">PLAY NOW (CLICK HERE)</font></strong></a></span><br /> </form> ''' bloque = scrapertools.get_match( data, '<form method="POST" action="playfx.php"(.*?)</form>') logger.info("bloque=" + bloque) yes = scrapertools.get_match( data, '<input name="yes" type="hidden" value="([^"]+)">') sec = scrapertools.get_match( data, '<input name="sec" type="hidden" value="([^"]+)">') # POST http://play.flashx.tv/player/playfx.php # yes=m8fr27GmfHRrmr%2FCpqVpiouM79zY5plvaZaomdzXmpmb2rWmq6JXpZjJ4NTn2m5il8jb2NWiYpeZyKqo2aRimGzM2qPXp2pol5ewqq2jlliU2%2Bzi5N6Sq3Df3eaa56SXpc%2FosKurX2NnmqanqaBiaGeM59%2FY5pqfmKOppqylY2Vql6qk&sec=Z7G6q6i5gGRmntDL post = urllib.urlencode({"yes": yes, "sec": sec}) url = "http://play.flashx.tv/player/playfx.php" data = scrapertools.cache_page(url, post=post) logger.info("data=" + data) logger.info(" ") logger.info( "----------------------------------------------------------------------" ) logger.info(" ") ''' <object id="nuevoplayer" width="'+ww+'" height="'+hh+'" data="http://embed.flashx.tv/nuevo/player/fxplay.swf?config=http://play.flashx.tv/nuevo/player/play.php?str=4MfrzrWaw6iwmr.1qpmwvtA=" type="application/x-shockwave-flash" ''' url = scrapertools.get_match( data, '(http://play.flashx.tv/nuevo/player/play.php\?str=[^"]+)"') data = scrapertools.cache_page(url, post=post) logger.info("data=" + data) logger.info(" ") logger.info( "----------------------------------------------------------------------" ) logger.info(" ") #http://play.flashx.tv/nuevo/player/play.php?str=4MfrzrWaw6iwmr.1qpmwvtA= #<file>http://fx021.flashx.tv:8080/video/2012/12/16---xYUbI3bSDzihXs9IP6eNRw---1383258808---1355698331547fb.flv</file> media_url = scrapertools.get_match(data, "<file>([^<]+)</file>") video_urls.append([ scrapertools.get_filename_from_url(media_url)[-4:] + " [flashx]", media_url ]) for video_url in video_urls: logger.info("[flashx.py] %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("[streamcloud.py] url=" + page_url) # Lo pide una vez headers = [[ 'User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14' ]] data = scrapertools.cache_page(page_url, headers=headers) #logger.info("data="+data) logger.info("[streamcloud.py] Esperando 10 segundos...") try: from platformcode.xbmc import xbmctools xbmctools.handle_wait(12, "streamcloud", '') except: import time time.sleep(12) logger.info("[streamcloud.py] Espera concluida") try: media_url = scrapertools.get_match(data, 'file\: "([^"]+)"') + "?start=0" except: op = scrapertools.get_match( data, '<input type="hidden" name="op" value="([^"]+)"') usr_login = "" id = scrapertools.get_match( data, '<input type="hidden" name="id" value="([^"]+)"') fname = scrapertools.get_match( data, '<input type="hidden" name="fname" value="([^"]+)"') referer = scrapertools.get_match( data, '<input type="hidden" name="referer" value="([^"]*)"') hashstring = scrapertools.get_match( data, '<input type="hidden" name="hash" value="([^"]*)"') imhuman = scrapertools.get_match( data, '<input type="submit" name="imhuman".*?value="([^"]+)">').replace( " ", "+") post = "op=" + op + "&usr_login="******"&id=" + id + "&fname=" + fname + "&referer=" + referer + "&hash=" + hashstring + "&imhuman=" + imhuman headers.append(["Referer", page_url]) data = scrapertools.cache_page(page_url, post=post, headers=headers) if 'id="justanotice"' in data: logger.info("[streamcloud.py] data=" + data) logger.info("[streamcloud.py] Ha saltado el detector de adblock") return [] # Extrae la URL media_url = scrapertools.get_match(data, 'file\: "([^"]+)"') + "?start=0" video_urls = [] video_urls.append([ scrapertools.get_filename_from_url(media_url)[-4:] + " [streamcloud]", media_url ]) for video_url in video_urls: logger.info("[streamcloud.py] %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("[netutv.py] url=" + page_url) headers = [[ 'User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0' ]] #"/netu/tv/" if "www.yaske.net" in page_url: urlEncode = urllib.quote_plus(page_url) id_video = scrapertools.get_match(page_url, "embed_([A-Za-z0-9]+)") data = scrapertools.cache_page(page_url, headers=headers) headers.append(['Referer', page_url]) try: #------------------------------------- page_url_the_new_video_id = scrapertools.get_match( data, 'script src="([^"]+)"></script>') data_with_new_video_id = scrapertools.cache_page( page_url_the_new_video_id, headers=headers) #------------------------------------- new_id_video = scrapertools.get_match(data_with_new_video_id, "var vid='([^']+)';") #------------------------------------- # Petición a hqq.tv con la nueva id de vídeo page_url_hqq = "http://hqq.tv/player/embed_player.php?vid=" + new_id_video + "&autoplay=no" data_page_url_hqq = scrapertools.cache_page(page_url_hqq, headers=headers) b64_data = scrapertools.get_match(data_page_url_hqq, 'base64,([^"]+)"') #------------------------------------- b64_data_inverse = b64(b64_data) b64_data_2 = scrapertools.get_match(b64_data_inverse, "='([^']+)';") utf8_data_encode = b64(b64_data_2, True) utf8_encode = scrapertools.get_match(utf8_data_encode, "='([^']+)';") utf8_decode = utf8_encode.replace("%", "\\").decode('unicode-escape') utf8 = utf8_decode #------------------------------------- except: #------------------------------------- b64_data = scrapertools.get_match( data, '<script language="javascript" type="text/javascript" src="data:text/javascript;charset=utf-8;base64,([^"]+)"></script>' ) #------------------------------------- b64_data_inverse = b64(b64_data) b64_data_2 = scrapertools.get_match(b64_data_inverse, "='([^']+)';") utf8_data_encode = b64(b64_data_2, True) utf8_encode = scrapertools.get_match(utf8_data_encode, "='([^']+)';") utf8_decode = utf8_encode.replace("%", "\\").decode('unicode-escape') #------------------------------------- new_id_video = scrapertools.get_match(utf8_decode, 'value="([^"]+)"') #------------------------------------- # Petición a hqq.tv con la nueva id de vídeo page_url_hqq = "http://hqq.tv/player/embed_player.php?vid=" + new_id_video + "&autoplay=no" data_page_url_hqq = scrapertools.cache_page(page_url_hqq, headers=headers) b64_data = scrapertools.get_match(data_page_url_hqq, 'base64,([^"]+)"') #------------------------------------- b64_data_inverse = b64(b64_data) b64_data_2 = scrapertools.get_match(b64_data_inverse, "='([^']+)';") utf8_data_encode = b64(b64_data_2, True) utf8_encode = scrapertools.get_match(utf8_data_encode, "='([^']+)';") utf8_decode = utf8_encode.replace("%", "\\").decode('unicode-escape') utf8 = utf8_decode #------------------------------------- ####################################################################### ### at match_at = '<input name="at" id="text" value="([^"]+)">' at = scrapertools.get_match(utf8, match_at) ### m3u8 page_url_hqq_2 = "http://hqq.tv/sec/player/embed_player.php?vid=" + new_id_video + "&at=" + at + "&autoplayed=yes&referer=on&http_referer=" + urlEncode + "&pass="******"]+"([^"]+)"' b_m3u8 = urllib.unquote( scrapertools.get_match(data_with_url_video, match_b_m3u8)) match_b_m3u8_2 = '"#([^"]+)"' b_m3u8_2 = scrapertools.get_match(b_m3u8, match_b_m3u8_2) ### tb_m3u8 j = 0 s2 = "" while j < len(b_m3u8_2): s2 += "\\u0" + b_m3u8_2[j:(j + 3)] j += 3 s2_m3u8 = s2.decode('unicode-escape') url_m3u8 = s2_m3u8.encode('ASCII', 'ignore') media_url = url_m3u8 else: urlEncode = urllib.quote_plus(page_url.replace("netu", "hqq")) ### at id_video = page_url.split("=")[1] url_1 = "http://hqq.tv/player/embed_player.php?vid=?vid=" + id_video + "&autoplay=no" data = scrapertools.cache_page(url_1, headers=headers) match_b64_1 = 'base64,([^"]+)"' b64_1 = scrapertools.get_match(data, match_b64_1) utf8_1 = base64.decodestring(b64_1) match_b64_inv = "='([^']+)';" b64_inv = scrapertools.get_match(utf8_1, match_b64_inv) b64_2 = b64_inv[::-1] utf8_2 = base64.decodestring(b64_2).replace( "%", "\\").decode('unicode-escape') match_at = '<input name="at" id="text" value="([^"]+)">' at = scrapertools.get_match(utf8_2, match_at) ### m3u8 url_2 = "http://hqq.tv/sec/player/embed_player.php?vid=" + id_video + "&at=" + at + "&autoplayed=yes&referer=on&http_referer=" + urlEncode + "&pass="******"]+"([^"]+)"' b_m3u8 = urllib.unquote(scrapertools.get_match(data, match_b_m3u8)) if b_m3u8 == "undefined": b_m3u8 = urllib.unquote(data) match_b_m3u8_2 = '"#([^"]+)"' b_m3u8_2 = scrapertools.get_match(b_m3u8, match_b_m3u8_2) ### tb_m3u8 j = 0 s2 = "" while j < len(b_m3u8_2): s2 += "\\u0" + b_m3u8_2[j:(j + 3)] j += 3 s2 = s2.decode('unicode-escape') media_url = s2.encode('ASCII', 'ignore') video_urls = [] video_urls.append([ scrapertools.get_filename_from_url(media_url)[-4:] + " [netu.tv]", media_url ]) for video_url in video_urls: logger.info("[netutv.py] %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("url=" + page_url) # Lo pide una vez headers = [[ 'User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14' ]] data = scrapertools.cache_page(page_url, headers=headers) # logger.info("data="+data) logger.info("opcion 2") op = scrapertools.get_match( data, '<input type="hidden" name="op" value="([^"]+)"') logger.info("op=" + op) usr_login = "" id = scrapertools.get_match( data, '<input type="hidden" name="id" value="([^"]+)"') logger.info("id=" + id) fname = scrapertools.get_match( data, '<input type="hidden" name="fname" value="([^"]+)"') logger.info("fname=" + fname) referer = scrapertools.get_match( data, '<input type="hidden" name="referer" value="([^"]*)"') logger.info("referer=" + referer) hashstring = scrapertools.get_match( data, '<input type="hidden" name="hash" value="([^"]*)"') logger.info("hashstring=" + hashstring) imhuman = scrapertools.get_match( data, '<input type="submit".*?name="imhuman" value="([^"]+)"').replace( " ", "+") logger.info("imhuman=" + imhuman) import time time.sleep(10) # Lo pide una segunda vez, como si hubieras hecho click en el banner # op=download1&usr_login=&id=z3nnqbspjyne&fname=Coriolanus_DVDrip_Castellano_by_ARKONADA.avi&referer=&hash=nmnt74bh4dihf4zzkxfmw3ztykyfxb24&imhuman=Continue+to+Video # op=download1&usr_login=&id=h6gjvhiuqfsq&fname=GENES1S.avi&referer=&hash=taee4nbdgbuwuxfguju3t6nq2gkdzs6k&imhuman=Proceed+to+video post = "op=" + op + "&usr_login="******"&id=" + id + "&fname=" + fname + "&referer=" + referer + "&hash=" + hashstring + "&imhuman=" + imhuman headers.append(["Referer", page_url]) body = scrapertools.cache_page(page_url, post=post, headers=headers) logger.info("body=" + body) data = scrapertools.find_single_match( body, "<script type='text/javascript'>(eval\(function\(p,a,c,k,e,d.*?)</script>" ) logger.info("data=" + data) data = jsunpack.unpack(data) logger.info("data=" + data) # Extrae la URL # {label:"240p",file:"http://188.240.220.186/drjhpzy4lqqwws4phv3twywfxej5nwmi4nhxlriivuopt2pul3o4bkge5hxa/video.mp4"} video_urls = [] media_urls = scrapertools.find_multiple_matches( data, '\{label\:"([^"]+)",file\:"([^"]+)"\}') video_urls = [] for label, media_url in media_urls: video_urls.append([ scrapertools.get_filename_from_url(media_url)[-4:] + " (" + label + ") [vidto.me]", media_url ]) # <a id="lnk_download" href="http://188.240.220.186/drjhpzy4lqqwws4phv3twywfxej5nwmi4nhxlriivuopt2pul3oyvkoe5hxa/INT3NS4HDTS-L4T.mkv"> media_url = scrapertools.find_single_match( body, '<a id="lnk_download" href="([^"]+)"') if media_url != "": video_urls.append([ scrapertools.get_filename_from_url(media_url)[-4:] + " (ORIGINAL) [vidto.me]", media_url ]) for video_url in video_urls: logger.info("%s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("[netutv.py] url="+page_url) headers = [ ['User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0'] ] ## "/netu/tv/" if "www.yaske.net" in page_url: ## Encode a la url para pasarla como valor de parámetro urlEncode = urllib.quote_plus(page_url) ## Carga los datos id_video = scrapertools.get_match( page_url , "embed_([A-Za-z0-9]+)") data = scrapertools.cache_page( page_url , headers=headers ) headers.append(['Referer', page_url]) try: ## Nueva id del video page_url_the_new_video_id = scrapertools.get_match( data , 'script src="([^"]+)"></script>') data_with_new_video_id = scrapertools.cache_page( page_url_the_new_video_id , headers=headers ) ## Algunos enlaces necesitan el paso pervio de la siguiente línea para coseguir la id data_with_new_video_id = urllib.unquote( data_with_new_video_id ) new_id_video = scrapertools.get_match( data_with_new_video_id , "var vid='([^']+)';") ## Petición a hqq.tv con la nueva id de vídeo b64_data = get_b64_data(new_id_video, headers) ## Doble decode y escape utf8 = double_b64(b64_data) except: ## Recoge los datos b64_data = scrapertools.get_match( data , '<script language="javascript" type="text/javascript" src="data:text/javascript;charset=utf-8;base64,([^"]+)"></script>') ## Doble decode y escape utf8 = double_b64(b64_data) ## Nueva id del video new_id_video = scrapertools.get_match( utf8 , 'value="([^"]+)"') ## Petición a hqq.tv con la nueva id de vídeo y recoger los datos b64_data = get_b64_data(new_id_video, headers) ## Doble decode y escape utf8 = double_b64(b64_data) ### at ### match_at = '<input name="at" id="text" value="([^"]+)">' at = scrapertools.get_match(utf8, match_at) ### m3u8 ### ## Recoger los bytes ofuscados que contiene la url del m3u8 b_m3u8_2 = get_obfuscated( new_id_video, at, urlEncode, headers ) ### tb_m3u8 ### ## Obtener la url del m3u8 url_m3u8 = tb(b_m3u8_2) else: ## Encode a la url para pasarla como valor de parámetro con hqq como host urlEncode = urllib.quote_plus( page_url.replace("netu","hqq") ) ### at ### id_video = page_url.split("=")[1] ## Petición a hqq.tv con la nueva id de vídeo y recoger los datos b64_data = get_b64_data(id_video, headers) ## Doble decode y escape utf8 = double_b64(b64_data) match_at = '<input name="at" type="text" value="([^"]+)">' at = scrapertools.get_match(utf8, match_at) ### b_m3u8 ### headers.append(['Referer', page_url]) ## Recoger los bytes ofuscados que contiene la url del m3u8 b_m3u8_2 = get_obfuscated( id_video, at, urlEncode, headers ) ### tb ### ## Obtener la url del m3u8 url_m3u8 = tb(b_m3u8_2) ### m3u8 ### media_url = url_m3u8 video_urls = [] video_urls.append( [ scrapertools.get_filename_from_url(media_url)[-4:]+" [netu.tv]",media_url]) for video_url in video_urls: logger.info("[netutv.py] %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("pelisalacarta.servers.streaminto url=" + page_url) logger.info("### page_url-streaminto-find_videos : " + page_url) # Normaliza la URL try: if not page_url.startswith("http://streamin.to/embed-"): videoid = scrapertools.get_match(page_url, "streamin.to/([a-z0-9A-Z]+)") page_url = "http://streamin.to/embed-" + videoid + ".html" except: import traceback logger.info(traceback.format_exc()) # Lo pide una vez headers = [[ 'User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14' ]] data = scrapertools.cache_page(page_url, headers=headers) #logger.info("data="+data) #file: "37/2640690613_n.flv?h=2ki7efbuztuzcg3h5gecfdpdy3es3m7wc5423nwgzsxybtapha4sna47txdq", #streamer: "rtmp://95.211.184.228:1935/vod?h=2ki7efbuztuzcg3h5gecfdpdy3es3m7wc5423nwgzsxybtapha4sna47txdq" #image: "http://95.211.184.228:8777/i/03/00130/p0uqfu1iecak.jpg" #http://95.211.184.228:8777/15/4045655336_n.flv?h=2ki7efbuztuzcg3h5gecfdpdy3es3m7wc5423nwgzsxybtapha447fe7txcq #15/4045655336_n.flv?h= #patron = ',\{file\: "([^"]+)"' patron_flv = 'file: "([^"]+)"' #patron_rtmp = 'streamer: "([^"]+)"' patron_jpg = 'image: "(http://[^/]+/)' #media_url = [] try: host = scrapertools.get_match(data, patron_jpg) logger.info("pelisalacarta.servers.streaminto host=" + host) flv_url = scrapertools.get_match(data, patron_flv) logger.info("pelisalacarta.servers.streaminto flv_url=" + flv_url) flv = host + flv_url.split("=")[1] + "/v.flv" logger.info("pelisalacarta.servers.streaminto flv=" + flv) #rtmp = scrapertools.get_match(data, patron_rtmp) except: logger.info("pelisalacarta.servers.streaminto opcion 2") op = scrapertools.get_match( data, '<input type="hidden" name="op" value="([^"]+)"') logger.info("pelisalacarta.servers.streaminto op=" + op) usr_login = "" id = scrapertools.get_match( data, '<input type="hidden" name="id" value="([^"]+)"') logger.info("pelisalacarta.servers.streaminto id=" + id) fname = scrapertools.get_match( data, '<input type="hidden" name="fname" value="([^"]+)"') logger.info("pelisalacarta.servers.streaminto fname=" + fname) referer = scrapertools.get_match( data, '<input type="hidden" name="referer" value="([^"]*)"') logger.info("pelisalacarta.servers.streaminto referer=" + referer) hashstring = scrapertools.get_match( data, '<input type="hidden" name="hash" value="([^"]*)"') logger.info("pelisalacarta.servers.streaminto hashstring=" + hashstring) imhuman = scrapertools.get_match( data, '<input type="submit" name="imhuman".*?value="([^"]+)"').replace( " ", "+") logger.info("pelisalacarta.servers.streaminto imhuman=" + imhuman) import time time.sleep(10) # Lo pide una segunda vez, como si hubieras hecho click en el banner #op=download1&usr_login=&id=z3nnqbspjyne&fname=Coriolanus_DVDrip_Castellano_by_ARKONADA.avi&referer=&hash=nmnt74bh4dihf4zzkxfmw3ztykyfxb24&imhuman=Continue+to+Video post = "op=" + op + "&usr_login="******"&id=" + id + "&fname=" + fname + "&referer=" + referer + "&hash=" + hashstring + "&imhuman=" + imhuman headers.append(["Referer", page_url]) data = scrapertools.cache_page(page_url, post=post, headers=headers) logger.info("data=" + data) # Extrae la URL host = scrapertools.get_match(data, patron_jpg) flv = host + scrapertools.get_match( data, patron_flv).split("=")[1] + "/v.flv" #rtmp = scrapertools.get_match(data, patron_rtmp) video_urls = [] video_urls.append( [scrapertools.get_filename_from_url(flv)[-4:] + " [streaminto]", flv]) #video_urls.append( [ scrapertools.get_filename_from_url(rtmp)[-4:]+" [streaminto]",rtmp]) for video_url in video_urls: logger.info("pelisalacarta.servers.streaminto %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("(page_url='%s')" % page_url) video_urls = [] video_id = scrapertools.get_match( page_url, "http://www.nowvideo.../video/([a-z0-9]+)") if premium: # Lee la página de login login_url = "http://www.nowvideo.eu/login.php" data = httptools.downloadpage(login_url).data # Hace el login login_url = "http://www.nowvideo.eu/login.php?return=" post = "user="******"&pass="******"®ister=Login" headers = {"Referer": "http://www.nowvideo.eu/login.php"} data = httptools.downloadpage(login_url, post, headers=headers).data # Descarga la página del vídeo data = httptools.downloadpage(page_url).data # URL a invocar: http://www.nowvideo.eu/api/player.api.php?user=aaa&file=rxnwy9ku2nwx7&pass=bbb&cid=1&cid2=undefined&key=83%2E46%2E246%2E226%2Dc7e707c6e20a730c563e349d2333e788&cid3=undefined # En la página: ''' flashvars.domain="http://www.nowvideo.eu"; flashvars.file="rxnwy9ku2nwx7"; flashvars.filekey="83.46.246.226-c7e707c6e20a730c563e349d2333e788"; flashvars.advURL="0"; flashvars.autoplay="false"; flashvars.cid="1"; flashvars.user="******"; flashvars.key="bbb"; flashvars.type="1"; ''' flashvar_file = scrapertools.get_match(data, 'flashvars.file="([^"]+)"') flashvar_filekey = scrapertools.get_match( data, 'flashvars.filekey=([^;]+);') flashvar_filekey = scrapertools.get_match( data, 'var ' + flashvar_filekey + '="([^"]+)"') flashvar_user = scrapertools.get_match(data, 'flashvars.user="******"]+)"') flashvar_key = scrapertools.get_match(data, 'flashvars.key="([^"]+)"') flashvar_type = scrapertools.get_match(data, 'flashvars.type="([^"]+)"') # http://www.nowvideo.eu/api/player.api.php?user=aaa&file=rxnwy9ku2nwx7&pass=bbb&cid=1&cid2=undefined&key=83%2E46%2E246%2E226%2Dc7e707c6e20a730c563e349d2333e788&cid3=undefined url = "http://www.nowvideo.eu/api/player.api.php?user="******"&file=" + flashvar_file + "&pass="******"&cid=1&cid2=undefined&key=" + flashvar_filekey.replace( ".", "%2E").replace("-", "%2D") + "&cid3=undefined" data = httptools.downloadpage(url).data location = scrapertools.get_match(data, 'url=([^\&]+)&') location = location + "?client=FLASH" video_urls.append([ scrapertools.get_filename_from_url(location)[-4:] + " [premium][nowvideo]", location ]) else: url = page_url.replace("http://www.nowvideo.li/video/", "http://embed.nowvideo.li/embed/?v=") data = httptools.downloadpage(url).data videourls = scrapertools.find_multiple_matches( data, 'src\s*:\s*[\'"]([^\'"]+)[\'"]') if not videourls: videourls = scrapertools.find_multiple_matches( data, '<source src=[\'"]([^\'"]+)[\'"]') for videourl in videourls: if videourl.endswith(".mpd"): id = scrapertools.find_single_match(videourl, '/dash/(.*?)/') videourl = "http://www.nowvideo.li/download.php%3Ffile=mm" + "%s.mp4" % id videourl = re.sub(r'/dl(\d)*/', '/dl/', videourl) ext = scrapertools.get_filename_from_url(videourl)[-4:] videourl = videourl.replace("%3F", "?") + \ "|User-Agent=Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0" video_urls.append([ext + " [nowvideo]", videourl]) for video_url in video_urls: logger.info("%s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("[moevideos.py] get_video_url(page_url='%s')" % page_url) video_urls = [] if page_url.startswith("http://www.moevideos.net/online"): headers = [] headers.append([ 'User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14' ]) data = scrapertools.cache_page(page_url, headers=headers) # Descarga el script (no sirve para nada, excepto las cookies) headers.append(['Referer', page_url]) post = "id=1&enviar2=ver+video" data = scrapertools.cache_page(page_url, post=post, headers=headers) ### Modificado 12-6-2014 #code = scrapertools.get_match(data,'flashvars\="file\=([^"]+)"') #<iframe width="860" height="440" src="http://moevideo.net/framevideo/16363.1856374b43bbd40c7f8d2b25b8e5?width=860&height=440" frameborder="0" allowfullscreen ></iframe> code = scrapertools.get_match( data, '<iframe width="860" height="440" src="http://moevideo.net/framevideo/([^\?]+)\?width=860\&height=440" frameborder="0" allowfullscreen ></iframe>' ) logger.info("code=" + code) else: #http://moevideo.net/?page=video&uid=81492.8c7b6086f4942341aa1b78fb92df code = scrapertools.get_match(page_url, "uid=([a-z0-9\.]+)") # API de letitbit headers2 = [] headers2.append([ 'User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14' ]) ### Modificado 12-6-2014 url = "http://api.letitbit.net" #url = "http://api.moevideo.net" #post = "r=%5B%22tVL0gjqo5%22%2C%5B%22preview%2Fflv%5Fimage%22%2C%7B%22uid%22%3A%2272871%2E71f6541e64b0eda8da727a79424d%22%7D%5D%2C%5B%22preview%2Fflv%5Flink%22%2C%7B%22uid%22%3A%2272871%2E71f6541e64b0eda8da727a79424d%22%7D%5D%5D" #post = "r=%5B%22tVL0gjqo5%22%2C%5B%22preview%2Fflv%5Fimage%22%2C%7B%22uid%22%3A%2212110%2E1424270cc192f8856e07d5ba179d%22%7D%5D%2C%5B%22preview%2Fflv%5Flink%22%2C%7B%22uid%22%3A%2212110%2E1424270cc192f8856e07d5ba179d%22%7D%5D%5D #post = "r=%5B%22tVL0gjqo5%22%2C%5B%22preview%2Fflv%5Fimage%22%2C%7B%22uid%22%3A%2268653%2E669cbb12a3b9ebee43ce14425d9e%22%7D%5D%2C%5B%22preview%2Fflv%5Flink%22%2C%7B%22uid%22%3A%2268653%2E669cbb12a3b9ebee43ce14425d9e%22%7D%5D%5D" post = 'r=["tVL0gjqo5",["preview/flv_image",{"uid":"' + code + '"}],["preview/flv_link",{"uid":"' + code + '"}]]' data = scrapertools.cache_page(url, headers=headers2, post=post) logger.info("data=" + data) if ',"not_found"' in data: return [] data = data.replace("\\", "") logger.info("data=" + data) patron = '"link"\:"([^"]+)"' matches = re.compile(patron, re.DOTALL).findall(data) video_url = matches[ 0] + "?ref=www.moevideos.net|User-Agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:15.0) Gecko/20100101 Firefox/15.0.1&Range=bytes:0-" logger.info("[moevideos.py] video_url=" + video_url) video_urls = [] video_urls.append([ scrapertools.get_filename_from_url(video_url)[-4:] + " [moevideos]", video_url ]) for video_url in video_urls: logger.info("[moevideos.py] %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): #page_url='https://www.crunchyroll.com/es-es/one-piece/episode-891-climbing-up-a-waterfall-a-great-journey-through-the-land-of-wanos-sea-zone-786643' logger.info("url=" + page_url) video_urls = [] data = httptools.downloadpage(page_url).data file_sub = "" try: idiomas = [ 'Deutsch', 'Português', 'Français', 'Italiano', 'English', 'Español\]', 'Español \(España\)' ] index_sub = int(config.get_setting("crunchyrollsub", "crunchyroll")) idioma_sub = idiomas[index_sub] subs_list = eval( scrapertools.find_single_match(data, 'subtitles":(\[[^\]]+])')) for lang in subs_list: if idioma_sub[:3] in lang["title"]: sub_data = httptools.downloadpage( urllib.unquote(lang["url"]).replace("\\", "")).data file_sub = filetools.join(config.get_data_path(), 'crunchyroll_sub.ass') filetools.write(file_sub, sub_data) except: import traceback logger.error(traceback.format_exc()) file_sub = "" if "crunchyroll.com" in page_url: media_id = page_url.rsplit("-", 1)[1] else: media_id = scrapertools.find_single_match(page_url, 'media_id=(\d+)') url = "https://www.crunchyroll.com/xml/?req=RpcApiVideoPlayer_GetStandardConfig&media_id=%s" \ "&video_format=0&video_quality=0&auto_play=0&aff=af-12299-plwa" % media_id post = "current_page=%s" % page_url data = httptools.downloadpage(url, post=post, headers=GLOBAL_HEADER).data if "<msg>Media not available</msg>" in data or "flash_block.png" in data: httptools.downloadpage(proxy_i) url = urllib.quote(url) get = '%sbrowse.php?u=%s&b=4' % (proxy, url) data = httptools.downloadpage(get, post=post, headers=GLOBAL_HEADER).data media_url = scrapertools.find_single_match(data, '<file>(.*?)</file>').replace( "&", "&") if not media_url: return video_urls elif not media_url.startswith("http"): rtmp = scrapertools.find_single_match(data, '<host>(.*?)</host>').replace( "&", "&") media_url = rtmp + " playpath=%s" % media_url filename = "RTMP" else: filename = scrapertools.get_filename_from_url(media_url)[-4:] quality = scrapertools.find_single_match(data, '<height>(.*?)</height>') # try: # #idiomas = ['Español \(España\)', 'Español\]', 'English', 'Italiano', 'Français', 'Português', 'Deutsch'] # idiomas = ['Deutsch', 'Português', 'Français', 'Italiano', 'English', 'Español\]', 'Español \(España\)'] # index_sub = int(config.get_setting("crunchyrollsub", "crunchyroll")) # idioma_sub = idiomas[index_sub] # # link_sub = scrapertools.find_single_match(data, "link='([^']+)' title='\[%s" % idioma_sub) # if not link_sub and index_sub == 6: # link_sub = scrapertools.find_single_match(data, "link='([^']+)' title='\[Español\]") # elif not link_sub and index_sub == 5: # link_sub = scrapertools.find_single_match(data, "link='([^']+)' title='\[Español \(España\)") # if not link_sub: # link_sub = scrapertools.find_single_match(data, "link='([^']+)' title='\[English") # data_sub = httptools.downloadpage(link_sub.replace("&", "&"), headers=GLOBAL_HEADER).data # id_sub = scrapertools.find_single_match(data_sub, "subtitle id='([^']+)'") # iv = scrapertools.find_single_match(data_sub, '<iv>(.*?)</iv>') # data_sub = scrapertools.find_single_match(data_sub, '<data>(.*?)</data>') # file_sub = decrypt_subs(iv, data_sub, id_sub) # except: # import traceback # logger.error(traceback.format_exc()) # file_sub = "" video_urls.append([ "%s %sp [crunchyroll]" % (filename, quality), media_url, 0, file_sub ]) for video_url in video_urls: logger.info("%s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info(" url=" + page_url) if "hash=" in page_url: data = urllib.unquote(httptools.downloadpage(page_url).data) id_video = scrapertools.find_single_match(data, "vid\s*=\s*'([^']+)'") else: id_video = page_url.rsplit("=", 1)[1] page_url_hqq = "http://hqq.tv/player/embed_player.php?vid=%s&autoplay=no" % id_video data_page_url_hqq = httptools.downloadpage(page_url_hqq, add_referer=True).data js_wise = scrapertools.find_single_match( data_page_url_hqq, "<script type=[\"']text/javascript[\"']>\s*;?(eval.*?)</script>") data_unwise = jswise(js_wise).replace("\\", "") at = scrapertools.find_single_match(data_unwise, 'var at\s*=\s*"([^"]+)"') url = "http://hqq.tv/sec/player/embed_player.php?iss=&vid=%s&at=%s&autoplayed=yes&referer=on" \ "&http_referer=&pass=&embed_from=&need_captcha=0" % (id_video, at) data_player = httptools.downloadpage(url, add_referer=True).data data_unescape = scrapertools.find_multiple_matches( data_player, 'document.write\(unescape\("([^"]+)"') data = "" for d in data_unescape: data += urllib.unquote(d) data_unwise_player = "" js_wise = scrapertools.find_single_match( data_player, "<script type=[\"']text/javascript[\"']>\s*;?(eval.*?)</script>") if js_wise: data_unwise_player = jswise(js_wise).replace("\\", "") vars_data = scrapertools.find_single_match( data, '/player/get_md5.php",\s*\{(.*?)\}') matches = scrapertools.find_multiple_matches(vars_data, '\s*([^:]+):\s*([^,]*)[,"]') params = {} for key, value in matches: if key == "adb": params[key] = "0/" elif '"' in value: params[key] = value.replace('"', '') else: value_var = scrapertools.find_single_match( data, 'var\s*%s\s*=\s*"([^"]+)"' % value) if not value_var and data_unwise_player: value_var = scrapertools.find_single_match( data_unwise_player, 'var\s*%s\s*=\s*"([^"]+)"' % value) params[key] = value_var params = urllib.urlencode(params) head = {'X-Requested-With': 'XMLHttpRequest', 'Referer': url} data = httptools.downloadpage("http://hqq.tv/player/get_md5.php?" + params, headers=head).data media_urls = [] url_data = jsontools.load_json(data) media_url = tb(url_data["html5_file"].replace("#", "")) video_urls = [] media = media_url + "|User-Agent=Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X)" video_urls.append([ scrapertools.get_filename_from_url(media_url)[-4:] + " [netu.tv]", media ]) for video_url in video_urls: logger.info(" %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url( page_url , premium = False , user="" , password="", video_password="" ): logger.info("[nowvideo.py] get_video_url(page_url='%s')" % page_url) video_urls = [] video_id = scrapertools.get_match(page_url,"http://www.nowvideo.../video/([a-z0-9]+)") if premium: # Lee la página de login login_url = "http://www.nowvideo.eu/login.php" data = scrapertools.cache_page( login_url ) # Hace el login login_url = "http://www.nowvideo.eu/login.php?return=" post = "user="******"&pass="******"®ister=Login" headers=[] headers.append(["User-Agent",USER_AGENT]) headers.append(["Referer","http://www.nowvideo.eu/login.php"]) data = scrapertools.cache_page( login_url , post=post, headers=headers ) # Descarga la página del vídeo data = scrapertools.cache_page( page_url ) logger.debug("data:" + data) # URL a invocar: http://www.nowvideo.eu/api/player.api.php?user=aaa&file=rxnwy9ku2nwx7&pass=bbb&cid=1&cid2=undefined&key=83%2E46%2E246%2E226%2Dc7e707c6e20a730c563e349d2333e788&cid3=undefined # En la página: ''' flashvars.domain="http://www.nowvideo.eu"; flashvars.file="rxnwy9ku2nwx7"; flashvars.filekey="83.46.246.226-c7e707c6e20a730c563e349d2333e788"; flashvars.advURL="0"; flashvars.autoplay="false"; flashvars.cid="1"; flashvars.user="******"; flashvars.key="bbb"; flashvars.type="1"; ''' flashvar_file = scrapertools.get_match(data,'flashvars.file="([^"]+)"') flashvar_filekey = scrapertools.get_match(data,'flashvars.filekey=([^;]+);') flashvar_filekey = scrapertools.get_match(data,'var '+flashvar_filekey+'="([^"]+)"') flashvar_user = scrapertools.get_match(data,'flashvars.user="******"]+)"') flashvar_key = scrapertools.get_match(data,'flashvars.key="([^"]+)"') flashvar_type = scrapertools.get_match(data,'flashvars.type="([^"]+)"') #http://www.nowvideo.eu/api/player.api.php?user=aaa&file=rxnwy9ku2nwx7&pass=bbb&cid=1&cid2=undefined&key=83%2E46%2E246%2E226%2Dc7e707c6e20a730c563e349d2333e788&cid3=undefined url = "http://www.nowvideo.eu/api/player.api.php?user="******"&file="+flashvar_file+"&pass="******"&cid=1&cid2=undefined&key="+flashvar_filekey.replace(".","%2E").replace("-","%2D")+"&cid3=undefined" data = scrapertools.cache_page( url ) logger.info("data="+data) location = scrapertools.get_match(data,'url=([^\&]+)&') location = location + "?client=FLASH" video_urls.append( [ scrapertools.get_filename_from_url(location)[-4:] + " [premium][nowvideo]",location ] ) else: # http://www.nowvideo.sx/video/xuntu4pfq0qye url = page_url.replace("http://www.nowvideo.sx/video/", "http://embed.nowvideo.sx/embed/?v=") data = scrapertools.cache_page(url) logger.debug("data="+data) videourl = scrapertools.find_single_match(data, '<source src="([^"]+)"') if not videourl: data = scrapertools.cache_page(page_url) stepkey = scrapertools.find_single_match( data , '<input type="hidden" name="stepkey" value="([^"]+)"' ) if stepkey!="": #stepkey=6cd619a0cea72a1cb45a56167c296716&submit=submit #<form method="post" action=""> #<input type="hidden" name="stepkey" value="6cd619a0cea72a1cb45a56167c296716"><Br> #<button type="submit" name="submit" class="btn" value="submit">Continue to the video</button> data = scrapertools.cache_page( page_url , post="stepkey="+stepkey+"&submit=submit" ) videourl = scrapertools.find_single_match(data, '<source src="([^"]+)"') if not videourl: flashvar_filekey = scrapertools.get_match(data,'flashvars.filekey=([^;]+);') filekey = scrapertools.get_match(data,'var '+flashvar_filekey+'="([^"]+)"') ''' data = unwise.unwise_process(data) logger.debug("data="+data) filekey = unwise.resolve_var(data, "flashvars.filekey") ''' logger.debug("filekey="+filekey) #get stream url from api url = 'http://www.nowvideo.sx/api/player.api.php?key=%s&file=%s' % (filekey, video_id) data = scrapertools.cache_page(url).replace("flv&","flv?") videourl = re.sub(r"^url=","",data) logger.debug("data="+videourl) ''' location = scrapertools.get_match(data,'url=(.+?)&title') mobile="http://www.nowvideo.at/mobile/video.php?id="+ video_id+"&download=2" data = scrapertools.cache_page(mobile) location = scrapertools.get_match(data,'<source src="([^"]+)" type="video/flv">') video_urls.append( [ "[nowvideo]",location ] ) ''' video_urls.append( [ scrapertools.get_filename_from_url(videourl)[-4:]+" [nowvideo]", videourl+"|User-Agent=Mozilla/5.0" ] ) for video_url in video_urls: logger.info("[nowvideo.py] %s - %s" % (video_url[0],video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("pelisalacarta.powvideo get_video_url(page_url='%s')" % page_url) # Lo pide una vez headers = [[ 'User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14' ]] data = scrapertools.cache_page(page_url, headers=headers) #logger.info("data="+data) try: ''' <input type="hidden" name="op" value="download1"> <input type="hidden" name="usr_login" value=""> <input type="hidden" name="id" value="auoxxtvyquoy"> <input type="hidden" name="fname" value="Star.Trek.Into.Darkness.2013.HD.m720p.LAT.avi"> <input type="hidden" name="referer" value=""> <input type="hidden" name="hash" value="1624-83-46-1377796069-b5e6b8f9759d080a3667adad637f00ac"> <input type="submit" name="imhuman" value="Continue to Video" id="btn_download"> ''' op = scrapertools.get_match( data, '<input type="hidden" name="op" value="(down[^"]+)"') usr_login = "" id = scrapertools.get_match( data, '<input type="hidden" name="id" value="([^"]+)"') fname = scrapertools.get_match( data, '<input type="hidden" name="fname" value="([^"]+)"') referer = scrapertools.get_match( data, '<input type="hidden" name="referer" value="([^"]*)"') hashvalue = scrapertools.get_match( data, '<input type="hidden" name="hash" value="([^"]*)"') submitbutton = scrapertools.get_match( data, '<input type="submit" name="imhuman" value="([^"]+)"').replace( " ", "+") import time time.sleep(5) # Lo pide una segunda vez, como si hubieras hecho click en el banner #op=download1&usr_login=&id=auoxxtvyquoy&fname=Star.Trek.Into.Darkness.2013.HD.m720p.LAT.avi&referer=&hash=1624-83-46-1377796019-c2b422f91da55d12737567a14ea3dffe&imhuman=Continue+to+Video #op=search&usr_login=&id=auoxxtvyquoy&fname=Star.Trek.Into.Darkness.2013.HD.m720p.LAT.avi&referer=&hash=1624-83-46-1377796398-8020e5629f50ff2d7b7de99b55bdb177&imhuman=Continue+to+Video post = "op=" + op + "&usr_login="******"&id=" + id + "&fname=" + fname + "&referer=" + referer + "&hash=" + hashvalue + "&imhuman=" + submitbutton headers.append(["Referer", page_url]) data = scrapertools.cache_page(page_url, post=post, headers=headers) #logger.info("data="+data) except: import traceback traceback.print_exc() # Extrae la URL logger.info("data=" + data) data = scrapertools.find_single_match( data, "<script type='text/javascript'>(.*?)</script>") logger.info("data=" + data) data = jsunpack.unpack(data) logger.info("data=" + data) data = data.replace("\\", "") media_url = scrapertools.find_single_match(data, "file:'([^']+)'") video_urls = [] video_urls.append([ scrapertools.get_filename_from_url(media_url)[-4:] + " [powvideo]", media_url ]) for video_url in video_urls: logger.info("[powvideo.py] %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("(page_url='%s')" % page_url) data = httptools.downloadpage(page_url).data jj_encode = scrapertools.find_single_match(data, "(\w+=~\[\];.*?\)\(\)\)\(\);)") jj_decode = None jj_patron = None reverse = False splice = False if jj_encode: jj_decode = jjdecode(jj_encode) if jj_decode: jj_patron = scrapertools.find_single_match(jj_decode, "/([^/]+)/") if "(" not in jj_patron: jj_patron = "(" + jj_patron if ")" not in jj_patron: jj_patron += ")" jhex_decode = jhexdecode(jj_decode) if "reverse" in jhex_decode: reverse = True if "splice" in jhex_decode: splice = True matches = scrapertools.find_single_match( data, "<script type=[\"']text/javascript[\"']>(eval.*?)</script>") data = jsunpack.unpack(matches).replace("\\", "") data = scrapertools.find_single_match(data.replace('"', "'"), "sources\s*=[^\[]*\[([^\]]+)\]") matches = scrapertools.find_multiple_matches(data, "[src|file]:'([^']+)'") video_urls = [] for video_url in matches: _hash = scrapertools.find_single_match(video_url, '\w{40,}') if splice: splice = eval( scrapertools.find_single_match(jj_decode, "\((\d[^,]*),\d\);")) if reverse: h = list(_hash) h.pop(-splice - 1) _hash = "".join(h) else: h = list(_hash) h.pop(splice) _hash = "".join(h) if reverse: video_url = re.sub(r'\w{40,}', _hash[::-1], video_url) filename = scrapertools.get_filename_from_url(video_url)[-4:] if video_url.startswith("rtmp"): rtmp, playpath = video_url.split("vod/", 1) video_url = "%s playpath=%s swfUrl=%splayer6/jwplayer.flash.swf pageUrl=%s" % ( rtmp + "vod/", playpath, host, page_url) filename = "RTMP" elif video_url.endswith(".m3u8"): video_url += "|User-Agent=" + headers[0][1] elif video_url.endswith("/v.mp4"): video_url_flv = re.sub(r'/v.mp4$', '/v.flv', video_url) video_urls.append([ ".flv [streamplay]", re.sub(r'%s' % jj_patron, r'\1', video_url_flv) ]) video_urls.append([ filename + " [streamplay]", re.sub(r'%s' % jj_patron, r'\1', video_url) ]) video_urls.sort(key=lambda x: x[0], reverse=True) for video_url in video_urls: logger.info(" %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("tvalacarta.servers.cntv get_video_url(page_url='%s')" % page_url) data = scrapertools.cache_page(page_url) video_id = scrapertools.find_single_match(data, '"videoCenterId","([a-z0-9]+)"') logger.info("tvalacarta.servers.cntv video_id=" + video_id) # Formato noticias if video_id != "": metadata_url = "http://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid=" + video_id + "&tz=-1&from=000spanish&url=" + page_url + "&idl=32&idlr=32&modifyed=false" data = scrapertools.cache_page(metadata_url) logger.info(data) video_url = scrapertools.find_single_match(data, '"hls_url"\:"([^"]+)"') logger.info("video_url=" + video_url) # Formato programas else: video_id = scrapertools.find_single_match(data, '"videoCenterId","(.*?)"') video_url = "http://asp.v.cntv.cn/hls/" + matches[0] + "/main.m3u8" video_urls = [] if video_url.endswith(".m3u8"): ''' #EXT-X-STREAM-INF:PROGRAM-ID=1, BANDWIDTH=204800, RESOLUTION=240x180 /asp/hls/200/0303000a/3/default/269599f209024eb482ac0b12b1861d31/200.m3u8 ''' data_calidades = scrapertools.cache_page(video_url) patron_calidades = "BANDWIDTH=(\d+), RESOLUTION=([a-z0-9]+)\s*(.*?.m3u8)" matches = re.compile(patron_calidades, re.DOTALL).findall(data_calidades) if len(matches) > 0: for bitrate, resolucion, calidad_url in matches: esta_url = urlparse.urljoin(video_url, calidad_url) try: kb = " " + str(int(bitrate) / 1024) + "Kbps " except: kb = "" video_urls.append([ resolucion + kb + '(' + scrapertools.get_filename_from_url(esta_url)[-4:] + ') [cntv]', esta_url ]) else: video_urls.append([ '(' + scrapertools.get_filename_from_url(video_url)[-4:] + ') [cntv]', video_url ]) else: video_urls.append([ '(' + scrapertools.get_filename_from_url(video_url)[-4:] + ') [cntv]', video_url ]) for video_url in video_urls: logger.info("tvalacarta.servers.cntv %s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("url=" + page_url) video_urls = [] if "crunchyroll.com" in page_url: media_id = page_url.rsplit("-", 1)[1] else: media_id = scrapertools.find_single_match(page_url, 'media_id=(\d+)') url = "https://www.crunchyroll.com/xml/?req=RpcApiVideoPlayer_GetStandardConfig&media_id=%s" \ "&video_format=0&video_quality=0&auto_play=0&aff=af-12299-plwa" % media_id post = "current_page=%s" % page_url data = httptools.downloadpage(url, post, headers=GLOBAL_HEADER).data if "<msg>Media not available</msg>" in data or "flash_block.png" in data: data = httptools.downloadpage(proxy + url, post, headers=GLOBAL_HEADER, cookies=False).data media_url = scrapertools.find_single_match(data, '<file>(.*?)</file>').replace( "&", "&") if not media_url: return video_urls elif not media_url.startswith("http"): rtmp = scrapertools.find_single_match(data, '<host>(.*?)</host>').replace( "&", "&") media_url = rtmp + " playpath=%s" % media_url filename = "RTMP" else: filename = scrapertools.get_filename_from_url(media_url)[-4:] quality = scrapertools.find_single_match(data, '<height>(.*?)</height>') try: idiomas = [ 'Español \(España\)', 'Español\]', 'English', 'Italiano', 'Français', 'Português', 'Deutsch' ] index_sub = int(config.get_setting("sub", server="crunchyroll")) idioma_sub = idiomas[index_sub] link_sub = scrapertools.find_single_match( data, "link='([^']+)' title='\[%s" % idioma_sub) if not link_sub and index_sub == 0: link_sub = scrapertools.find_single_match( data, "link='([^']+)' title='\[Español\]") elif not link_sub and index_sub == 1: link_sub = scrapertools.find_single_match( data, "link='([^']+)' title='\[Español \(España\)") if not link_sub: link_sub = scrapertools.find_single_match( data, "link='([^']+)' title='\[English") data_sub = httptools.downloadpage(link_sub.replace("&", "&"), headers=GLOBAL_HEADER).data id_sub = scrapertools.find_single_match(data_sub, "subtitle id='([^']+)'") iv = scrapertools.find_single_match(data_sub, '<iv>(.*?)</iv>') data_sub = scrapertools.find_single_match(data_sub, '<data>(.*?)</data>') file_sub = decrypt_subs(iv, data_sub, id_sub) except: import traceback logger.error(traceback.format_exc()) file_sub = "" video_urls.append([ "%s %sp [crunchyroll]" % (filename, quality), media_url, 0, file_sub ]) for video_url in video_urls: logger.info("%s - %s" % (video_url[0], video_url[1])) return video_urls
def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("[allmyvideos.py] url=" + page_url) # Lo pide una vez headers = [[ 'User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14' ]] data = scrapertools.cache_page(page_url, headers=headers) logger.info("data=" + data) try: ''' <input type="hidden" name="op" value="download1"> <input type="hidden" name="usr_login" value=""> <input type="hidden" name="id" value="d6fefkzvjc1z"> <input type="hidden" name="fname" value="coriolanus.dvdr.mp4"> <input type="hidden" name="referer" value=""> <input type="hidden" name="method_free" value="1"> <input type="image" id="submitButton" src="/images/continue-to-video.png" value="method_free" /> ''' op = scrapertools.get_match( data, '<input type="hidden" name="op" value="([^"]+)"') usr_login = "" id = scrapertools.get_match( data, '<input type="hidden" name="id" value="([^"]+)"') fname = scrapertools.get_match( data, '<input type="hidden" name="fname" value="([^"]+)"') referer = scrapertools.get_match( data, '<input type="hidden" name="referer" value="([^"]*)"') method_free = scrapertools.get_match( data, '<input type="hidden" name="method_free" value="([^"]*)"') submitbutton = scrapertools.get_match( data, '<input type="image" id="submitButton".*?value="([^"]+)"' ).replace(" ", "+") import time time.sleep(10) # Lo pide una segunda vez, como si hubieras hecho click en el banner #op=download1&usr_login=&id=d6fefkzvjc1z&fname=coriolanus.dvdr.mp4&referer=&method_free=1&x=109&y=17 post = "op=" + op + "&usr_login="******"&id=" + id + "&fname=" + fname + "&referer=" + referer + "&method_free=" + method_free + "&x=109&y=17" headers.append(["Referer", page_url]) data = scrapertools.cache_page(page_url, post=post, headers=headers) logger.info("data=" + data) except: pass # Extrae la URL media_url = scrapertools.get_match(data, '"file"\s*\:\s*"([^"]+)"') + "?start=0" video_urls = [] video_urls.append([ scrapertools.get_filename_from_url(media_url)[-4:] + " [allmyvideos]", media_url ]) for video_url in video_urls: logger.info("[allmyvideos.py] %s - %s" % (video_url[0], video_url[1])) return video_urls