Como somos muy cafres/cabezones y lo queremos hacer todo de cabeza pues es lo que nos suele pasarCmos escribió:Me llegó a rayar un poco con tanto split y join, además como en python los join se escriben "a la inversa" por un momento ya no sabía lo que hacía xD Estos montan un puzzle cada vez que tocan algo
Reportar aquí cualquier problema con Openload
Re: Reportar aquí cualquier problema con Openload
Mensaje por robalo » 23 Oct 2016, 07:08
Re: Reportar aquí cualquier problema con Openload
Mensaje por zastilla » 25 Oct 2016, 08:20
Puedo decir sin riesgos a cagarla de nuevo que el script resuelve correctamente la url a reproducir a ciertas horas.
mas o menos tengo comprobado que por las mañanas va bien pero por las noches por ejemplo no va (ayer entre las 21.00h y las 24h que estuve probando no iba, mientras otros scripts de otros sitios si lo hacían)y no resuelve correctamente.
Esta noche estaré atento y si vuelve a fallar os aviso, pero el script no va bien.Hay algo que en ciertos momentos no funciona.
un saludo y gracias
Publicidad
Re: Reportar aquí cualquier problema con Openload
Mensaje por Cmos » 25 Oct 2016, 20:59
De todas formas, actualizo el archivo en el enlace del primer mensaje, si bien como digo el que está ahora es funcional aunque en algunas ocasiones falle
Desde luego, a mí a cafradas no me gana nadie xD, si es que "cuando el programador coge el camino..."robalo escribió:Como somos muy cafres/cabezones y lo queremos hacer todo de cabeza pues es lo que nos suele pasarCmos escribió:Me llegó a rayar un poco con tanto split y join, además como en python los join se escriben "a la inversa" por un momento ya no sabía lo que hacía xD Estos montan un puzzle cada vez que tocan algo
Re: Reportar aquí cualquier problema con Openload
Mensaje por zastilla » 26 Oct 2016, 13:47
Me están saliendo errores en la función get_link_api(page_url): del openload.py cuando intenta sacar la extensión.
Código: Seleccionar todo
extension = "." + find_single_match(data["result"]["content_type"], '/(\w+)')
Un saludo y perdón por ser tan pesado.
Re: Reportar aquí cualquier problema con Openload
Mensaje por Cmos » 26 Oct 2016, 15:02
No hay nada que perdonar hombre. La función get_link_api que comentas solo se ejecuta si la principal no puede descodificar el código, y además la api funciona cuando quiere, a veces la desactivan por exceso de tráfico, otras ponen captcha, es normal que falle porque no siempre da un resultado válido. Lo que no es normal es que llegue a ejecutarse esa función, yo he probado varios enlaces y todos los extrae correctamente, algo tienes que tener mal.zastilla escribió:Hola Cmos,
Me están saliendo errores en la función get_link_api(page_url): del openload.py cuando intenta sacar la extensión.Código: Seleccionar todo
extension = "." + find_single_match(data["result"]["content_type"], '/(\w+)')
Re: Reportar aquí cualquier problema con Openload
Mensaje por zastilla » 27 Oct 2016, 08:43
A mi siempre me lo resuelve la API, así que cuando está saturada la web (tardes-noche) me tira error y por las mañanas me va bien
PD ya he solucionado los errores que tenía y ya me funciona todo con normalidad.
Perdón por las molestias y gracias por todo
Re: Reportar aquí cualquier problema con Openload
Mensaje por Cmos » 27 Oct 2016, 13:25
Respecto a la línea que comentas que te da error, seguramente hay algo que está fallando antes, y cuando llega a esa parte la variable magic no tiene el valor correcto. Lo mismo se debe a alguna referencia a scrapertools o a la libreria aadecode. Puedes probar con este código, que no necesita de otros archivos, y a mí al menos por línea de comandos me funciona bien, ya tendrías que cambiar el print videourl por lo que quieras hacer con el enlace
Código: Seleccionar todo
# -*- coding: utf-8 -*-
import re, urllib2, urllib, sys
def get_video_url(url):
req = urllib2.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:46.0) Gecko/20100101 Firefox/46.0')
req.add_header('X-Requested-With','XMLHttpRequest')
response = urllib2.urlopen(req)
data = response.read()
response.close()
if "videocontainer" not in data:
url = url.replace("/embed/","/f/")
req = urllib2.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:46.0) Gecko/20100101 Firefox/46.0')
req.add_header('X-Requested-With','XMLHttpRequest')
response = urllib2.urlopen(req)
data = response.read()
response.close()
text_encode = re.findall('(゚ω゚.*?\(\'\_\'\));',data,re.DOTALL)
text_decode = ""
for t in text_encode:
text_decode += decode(t)
number = re.findall('charCodeAt\(0\)\s*\+\s*(\d+)',text_decode,re.DOTALL)[0]
varj = re.findall('var magic\s*=\s*(\w+)\.slice',text_decode,re.DOTALL)[0]
varhidden = re.findall('var\s*'+varj+'\s*=\s*\$\("[#]*([^"]+)"\).text',text_decode,re.DOTALL)[0]
valuehidden = re.findall('id="'+varhidden+'">(.*?)<', data,re.DOTALL)[0]
magic = ord(valuehidden[-1])
valuehidden = valuehidden.split(chr(magic-1))
valuehidden = "\t".join(valuehidden)
valuehidden = valuehidden.split(valuehidden[-1])
valuehidden = chr(magic-1).join(valuehidden)
valuehidden = valuehidden.split("\t")
valuehidden = chr(magic).join(valuehidden)
videourl = decode_hidden(valuehidden, number)
print videourl
def decode_hidden(text, number):
text = text.replace(">9", ">").replace(""9", '"').replace("<9", '<') \
.replace("&9", '&').replace(">", ">").replace("<", "<")
text = decodeHtmlentities(text)
s = []
for char in text:
j = ord(char)
s.append(chr(33 + ((j+14) % 94)))
temp = "".join(s)
text_decode = temp[0:-1] + chr(ord(temp[-1]) + int(number))
videourl = "https://openload.co/stream/{0}?mime=true".format(text_decode)
opener = urllib2.build_opener(urllib2.HTTPHandler(), NoRedirectHandler())
urllib2.install_opener(opener)
req = urllib2.Request(videourl)
req.add_header('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:46.0) Gecko/20100101 Firefox/46.0')
response = urllib2.urlopen(req)
info = response.info()
response.close()
for header in info:
if header == "location":
videourl = info[header]
videourl = videourl.replace("https", "http").replace("?mime=true", "")
return videourl
class NoRedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_302(self, req, fp, code, msg, headers):
infourl = urllib.addinfourl(fp, headers, req.get_full_url())
infourl.status = code
infourl.code = code
return infourl
http_error_300 = http_error_302
http_error_301 = http_error_302
http_error_303 = http_error_302
http_error_307 = http_error_302
def decodeHtmlentities(string):
entity_re = re.compile("&(#?)(\d{1,5}|\w{1,8});")
def substitute_entity(match):
from htmlentitydefs import name2codepoint as n2cp
ent = match.group(2)
if match.group(1) == "#":
return unichr(int(ent)).encode('utf-8')
else:
cp = n2cp.get(ent)
if cp:
return unichr(cp).encode('utf-8')
else:
return match.group()
return entity_re.subn(substitute_entity, string)[0]
def decode(text):
text = re.sub(r"\s+|/\*.*?\*/", "", text)
data = text.split("+(゚Д゚)[゚o゚]")[1]
chars = data.split("+(゚Д゚)[゚ε゚]+")[1:]
txt = ""
for char in chars:
char = char \
.replace("(o゚ー゚o)","u") \
.replace("c", "0") \
.replace("(゚Д゚)['0']", "c") \
.replace("゚Θ゚", "1") \
.replace("!+[]", "1") \
.replace("-~", "1+") \
.replace("o", "3") \
.replace("_", "3") \
.replace("゚ー゚", "4") \
.replace("(+", "(")
char = re.sub(r'\((\d)\)', r'\1', char)
c = ""; subchar = ""
for v in char:
c+= v
try: x = c; subchar+= str(eval(x)); c = ""
except: pass
if subchar != '': txt+= subchar + "|"
txt = txt[:-1].replace('+','')
txt_result = "".join([ chr(int(n, 8)) for n in txt.split('|') ])
return toStringCases(txt_result)
def toStringCases(txt_result):
sum_base = ""
m3 = False
if ".toString(" in txt_result:
if "+(" in txt_result:
m3 = True
sum_base = "+"+re.findall(".toString...(\d+).", txt_result,re.DOTALL)[0]
txt_pre_temp = re.findall("..(\d),(\d+).", txt_result,re.DOTALL)
txt_temp = [ (n, b) for b ,n in txt_pre_temp ]
else:
txt_temp = re.findall('(\d+)\.0.\w+.([^\)]+).', txt_result, re.DOTALL)
for numero, base in txt_temp:
code = toString( int(numero), eval(base+sum_base) )
if m3:
txt_result = re.sub( r'"|\+', '', txt_result.replace("("+base+","+numero+")", code) )
else:
txt_result = re.sub( r"'|\+", '', txt_result.replace(numero+".0.toString("+base+")", code) )
return txt_result
def toString(number,base):
string = "0123456789abcdefghijklmnopqrstuvwxyz"
if number < base:
return string[number]
else:
return toString(number//base,base) + string[number%base]
if __name__ == '__main__':
get_video_url(sys.argv[1])
Re: Reportar aquí cualquier problema con Openload
Mensaje por zastilla » 28 Oct 2016, 07:17
funciona de maravilla y bastante más limpio de como yo lo había dejado.
Me va a venir perfecto, para intentar comprenderlo.
Muchísimas gracias, todo un detalle por tu parte que te hayas tomado la molestia para ayudarme.
Volver a “Problemas (no me funciona...)”
- Ayuda sobre plugins
- ↳ tvalacarta
- ↳ Problemas (no me funciona...)
- ↳ Preguntas (cómo se hace...)
- ↳ Sugerencias (estaría bien que hubiera...)
- ↳ pelisalacarta
- ↳ Problemas (no me funciona...)
- ↳ Preguntas (cómo se hace...)
- ↳ Sugerencias (estaría bien que hubiera...)
- ↳ pelisalacarta (For Italian users)
- ↳ Problemi (Non mi funziona...)
- ↳ Domande (Come fare a...)
- ↳ Suggerimenti (Sarebbe bello che...)
- ↳ mywebtv
- ↳ Problemas (no me funciona...)
- ↳ Preguntas (cómo se hace...)
- ↳ Sugerencias (estaría bien que hubiera...)
- ↳ MediaExplorer
- ↳ Balandro
- ↳ Otros plugins
- ↳ Alfa
- ↳ Alfa (For Italian users)
- ↳ Tutoriales
- Ayuda sobre mediacenters
- ↳ XBMC / Kodi
- ↳ Plex
- ↳ Android
- ↳ Raspberry Pi
- ↳ Boxee
- ↳ WiiMC
- ↳ Enigma 2
- ↳ Otros media center
- Sugerencias
- ↳ Nuevos canales
- ↳ Mejoras
- Desarrolladores
- Comunidad
¿Qué es Mi media center?
Este es el foro oficial de soporte para pelisalacarta, tvalacarta y mywebtv.
También es un lugar para compartir tus experiencias con dispositivos multimedia y software media center, puede que encuentres algo interesante que ni siquiera sabías que se podía hacer.
Primeros pasos en Kodi
Si estás empezando con Kodi, o si estás interesado en sacarle más partido, puedes echar un vistazo a esta colección de video-tutoriales.
Aprenderás a crear y optimizar tu biblioteca, a instalar add-ons, a buscar subtítulos...
Cómo reportar un problema
Si tienes un problema en alguno de los plugins y quieres reportarlo, no olvides incluir el log.
Para que resulte útil tienes que activar la opción de "log completo" en el plugin, luego reiniciar Kodi y dar los pasos necesarios hasta que se produzca el problema.
Luego copia tu fichero de log, siguiendo las instrucciones que se describen en este enlace, e inclúyelo al final de la descripción de tu problema.
Aprende a programar para Kodi
Si sabes programar, esta serie de tutoriales que describen paso a paso cómo desarrollar tu propio add-on para Kodi.
Y si quieres añadir tus propios canales a pelisalacarta también te contamos paso a paso cómo hacerlo en este enlace.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados