ayuda con primer canal

f3rxi

Usuario Novato
5 Ago 2020
7
1
3
23
Antes ke nada gracias por esta opurtunidad de aprender a crear un canal basico. Les cuento quise crear un canal con novelas suigiendo los tuts de aqui del foro y tambien viendo la estructura de otros canales pero no logro hacerlo funcionar. Hasta ahora solo he logrado ke el canal aparesca en el addon de alfa. me sale el canal y el menu pero al darle clic no pasa nada ni da error. Si me pueden ayudar lo agredeceria, igual y esto es algo muy tonto de preguntar pero aki estoy por ke quiero aprender. Gracias de antemano. Saludos..
 

Adjuntos

  • Me gusta
Reacciones: Anartz

Delta

Miembro del equipo
16 Oct 2017
1.199
1.282
113
Hola nos alegra que quieras aprender y aportar al addon, intentare ayudarte.

Python:
# -*- coding: utf-8 -*-

import re
from channelselector import get_thumb
from core import httptools
from core import scrapertools
from core import servertools
from core import tmdb
from core.item import Item
from platformcode import config, logger

host = 'https://optimovision.tv/'

def mainlist(item):
    logger.info()
    itemlist = []
    itemlist.append(Item(channel=item.channel, title='Novelas', url=host+'novelas-completas',
                         thumbnail='https://estaticos.elperiodico.com/resources/jpg/1/6/1528804403461.jpg',
                         action='list_all'))
    
    return itemlist
    
def list_all(item):
    logger.info()
    itemlist = []
    data = httptools.downloadpage(item.url).data
    logger.debug('codigo =' + data)
    patron = '<?class="col-.*?a href="([^"]+).*?'
    patron += 'img src="([^"]+).*?'
    patron += 'alt="([^"]+)'
    matches = re.compile(patron,re.DOTALL).findall(data)
    for scrapedthumbnail,scrapedurl,scrapedtitle in matches: # Tienes mal el orden de los datos
        title = scrapedtitle
        thumbnail = scrapedthumbnail
        url = scrapedurl # Necesitas incluir el host
        plot = ""
        itemlist.append(item.clone(action="play", title=title, url=url,
                              thumbnail=thumbnail, fanart=thumbnail, plot=plot, contentTitle = title))

    # Te Falto el return itemlist

def play(item):
    logger.info()
    itemlist = []
    data = httptools.downloadpage(item.url).data
    logger.debug('codigo = ' + data)
    itemlist.extend(servertools.find_video_items(data=data))
    for video in itemlist:
        video.channel = item.channel
    
    return itemlist
Las correcciones estan comentadas con #

con esas correcciones ya deberias poder ver el listado

pero ademas antes de llamar play debes obtener el listado de episodios mediante la creación de otra función (episodios), luego obtener los videos también mediante otra función (findvideos) y finalmente haces la llamada a play.

Si necesitas mas ayuda pregunta que por aqui estamos, mas tarde o mas temprano te responderemos.

Saludos y esperamos ver pronto tu canal en Alfa
 
  • Me gusta
Reacciones: Anartz

f3rxi

Usuario Novato
5 Ago 2020
7
1
3
23
Hola nos alegra que quieras aprender y aportar al addon, intentare ayudarte.

Python:
# -*- coding: utf-8 -*-

import re
from channelselector import get_thumb
from core import httptools
from core import scrapertools
from core import servertools
from core import tmdb
from core.item import Item
from platformcode import config, logger

host = 'https://optimovision.tv/'

def mainlist(item):
    logger.info()
    itemlist = []
    itemlist.append(Item(channel=item.channel, title='Novelas', url=host+'novelas-completas',
                         thumbnail='https://estaticos.elperiodico.com/resources/jpg/1/6/1528804403461.jpg',
                         action='list_all'))

    return itemlist

def list_all(item):
    logger.info()
    itemlist = []
    data = httptools.downloadpage(item.url).data
    logger.debug('codigo =' + data)
    patron = '<?class="col-.*?a href="([^"]+).*?'
    patron += 'img src="([^"]+).*?'
    patron += 'alt="([^"]+)'
    matches = re.compile(patron,re.DOTALL).findall(data)
    for scrapedthumbnail,scrapedurl,scrapedtitle in matches: # Tienes mal el orden de los datos
        title = scrapedtitle
        thumbnail = scrapedthumbnail
        url = scrapedurl # Necesitas incluir el host
        plot = ""
        itemlist.append(item.clone(action="play", title=title, url=url,
                              thumbnail=thumbnail, fanart=thumbnail, plot=plot, contentTitle = title))

    # Te Falto el return itemlist

def play(item):
    logger.info()
    itemlist = []
    data = httptools.downloadpage(item.url).data
    logger.debug('codigo = ' + data)
    itemlist.extend(servertools.find_video_items(data=data))
    for video in itemlist:
        video.channel = item.channel

    return itemlist
Las correcciones estan comentadas con #

con esas correcciones ya deberias poder ver el listado

pero ademas antes de llamar play debes obtener el listado de episodios mediante la creación de otra función (episodios), luego obtener los videos también mediante otra función (findvideos) y finalmente haces la llamada a play.

Si necesitas mas ayuda pregunta que por aqui estamos, mas tarde o mas temprano te responderemos.

Saludos y esperamos ver pronto tu canal en Alfa
Gracias @Delta por tu ayuda. Estuve viendo los errores ke me citaste y ya logre ke aparaescan en el addon. Ahora no puedo hacer funcionar los videos. Me da un error en line 52 al descargar la pagina. Estuve viendo la episodios ke es de donde se genera el error pero no logro dar con el fallo. Gracias de antemano. Saludos.
 
Última edición:

f3rxi

Usuario Novato
5 Ago 2020
7
1
3
23
Despues de intentar corregir el codigo ke ya tenia y viendo algunos canales de alfa he avanzado un poco mas. Ahora el problema es ke no se reproduce el video al darle clic en ver video sale ke va a cargar y despues de unos segundos no pasa nada y no da ningun error. Viendo el log de kodi veo ke tiene la url correcta del video ke estoy intentando ver pero al parecer hay un problema al tratar de reproducir el video. error probing input format, Error creating demuxer son los errores ke da el log. Alguna sugerencia ke puedo hacer o si hay algo mal el codigo para poder soluccionarlo. Saludos gracias por todo.

Pd. Aunque hay no puedo lograr hacer funcionar el canal voy a seguir averiguando ke es lo ke me esta faltando, a decir verdad me esta gustando mucho lo poco ke he logrado.
Ya puedo ver el listado sino completo aun, con sus thumbnail cada uno y x ahora solo me sale el primer capitulo de cada novela (algo del bucle for ke me falta x corregir) y no he agregado nada de paginacion, creo ke no es tan dificl, eso ya lo hare despues ke pueda reproducir los videos :) ) , ) Yo se ke me falta bastante pero x algo se empieza.
 

Adjuntos

Delta

Miembro del equipo
16 Oct 2017
1.199
1.282
113
Despues de intentar corregir el codigo ke ya tenia y viendo algunos canales de alfa he avanzado un poco mas. Ahora el problema es ke no se reproduce el video al darle clic en ver video sale ke va a cargar y despues de unos segundos no pasa nada y no da ningun error. Viendo el log de kodi veo ke tiene la url correcta del video ke estoy intentando ver pero al parecer hay un problema al tratar de reproducir el video. error probing input format, Error creating demuxer son los errores ke da el log. Alguna sugerencia ke puedo hacer o si hay algo mal el codigo para poder soluccionarlo. Saludos gracias por todo.

Pd. Aunque hay no puedo lograr hacer funcionar el canal voy a seguir averiguando ke es lo ke me esta faltando, a decir verdad me esta gustando mucho lo poco ke he logrado.
Ya puedo ver el listado sino completo aun, con sus thumbnail cada uno y x ahora solo me sale el primer capitulo de cada novela (algo del bucle for ke me falta x corregir) y no he agregado nada de paginacion, creo ke no es tan dificl, eso ya lo hare despues ke pueda reproducir los videos :) ) , ) Yo se ke me falta bastante pero x algo se empieza.

Bien, a base de prueba y error tambien se aprende mucho ademas de analizando codigo de otros canales.

ok te dare otra ayuda para que puedas continuar, disculpa la tardanza pero no siempre hay tiempo....

Primero episodios (comentado con #)

Python:
def episodios(item):
    logger.info()
    itemlist = []
    data = get_source(item.url)
    patron = 'list_videos.*?href="([^"]+).*?'
    patron += 'title="([^"]+).*?' # data-video-id="\d+"> en lugar de list_videos
    matches = re.compile(patron, re.DOTALL).findall(data)
    for scrapedurl, scrapedtitle in matches:
        url = scrapedurl
        title = scrapedtitle
        itemlist.append(item.clone(action = "findvideos",
                                   title = title,
                                   url = host + url
                                   ))
    return itemlist
Con respecto a la reproduccion tu problema es que no estas pasando un video sino la una url de una pagina, Deberias encontrar el video dentro de codigo usando regex te dejo una pista ;)

1597928343891.png

Espero te sirva la ayuda y continua que vas muy bien, esperamos el canal pronto en alfa.

Saludos
 

f3rxi

Usuario Novato
5 Ago 2020
7
1
3
23
@Delta Antes ke nada gracias por tomarte el tiempo de revisar el codigo y contestar. Ahora ke tenga un chance corrigo los errores ke me citaste. Lo de la url del video estuve viendo el codigo en otros canales de alfa para ser precisos en la función findvidoes y si me di cuenta ke el link era totalmente diferente a la web de la url. El problema fue ke ese link del video ke me citas si lo vi al estar inspecciónando la pagina, pero al pegarlo directamente en el buscador daba error de pagina y no cargaba el video, por eso pense ke ese no era el link.
 

f3rxi

Usuario Novato
5 Ago 2020
7
1
3
23
Hice las correcciones ke me comentaste y tenias razon ya me sale el listado de capitulos. El problema sigue siendo el video no se reproduce igual y es un problema de la pagina porke sigue tirando error. Ahora ke tenga mas tiempo lo reviso con calma para entender bien los cambios ke me citaste y ver en ke estaba mal yo. Gracias de antemano.

Pd. No se si es el codigo ke le faltan correcciones o si el addon alfa no puede reproducir eso videos de esa pagina.
 

Adjuntos

Delta

Miembro del equipo
16 Oct 2017
1.199
1.282
113
Ya casi lo tienes!

Comentado con #

Python:
def findvideos(item):
    logger.info()
    itemlist = []
    data = httptools.downloadpage(item.url).data
    patron  = '<div class="video-container.*?src="([^"]+)'
    matches = scrapertools.find_multiple_matches(data, patron)
    for url in matches:
        itemlist.append(item.clone(action = "play",
                                   title = "Ver en %s",
                                   url = url + "|referer=%s" % host # para estos enlaces en particular necesitas incluir el referer
                                   ))
      
    return itemlist
Ademas debes revisar bien porque parece que no toma bien el capitulo 1 o eso me parecio.

Saludos.
 
  • Me gusta
Reacciones: f3rxi

f3rxi

Usuario Novato
5 Ago 2020
7
1
3
23
Ya casi lo tienes!

Comentado con #

Python:
def findvideos(item):
    logger.info()
    itemlist = []
    data = httptools.downloadpage(item.url).data
    patron  = '<div class="video-container.*?src="([^"]+)'
    matches = scrapertools.find_multiple_matches(data, patron)
    for url in matches:
        itemlist.append(item.clone(action = "play",
                                   title = "Ver en %s",
                                   url = url + "|referer=%s" % host # para estos enlaces en particular necesitas incluir el referer
                                   ))
     
    return itemlist
Ademas debes revisar bien porque parece que no toma bien el capitulo 1 o eso me parecio.

Saludos.
Gracias @Delta ahora si ya funcionan los videos. Lo del primer capitulo si lo habia visto pero primero keria hacer funcionar el video para ver si valia la pena seguir trabajando en esa pagina. Ahora si voy a dedicarme a pulirlo bien, hay varias cosas ke me faltan pero ni siquiera lo habia intentado, pero gracias a tu ayuda voy a poder seguir trabajando en este canal. :)