Página 1 de 2
Como se crea un nuevo canal.
Publicado: 31 Mar 2016, 13:23
por fontela
Hola a todos, soy nuevo en el foro y soy un gran aficionado a meterme en camisa de 11 varas.
Hoy, tras leer durante la última semana todos los foros de mimediacenter, me decido a hacer una pregunta ya que soy incapaz de continuar con mi "experimento".
Quiero crear un canal en el que en principio habrá Series y Películas, para no molestar a nadie desde que comencé a cacharrear he utilizado algún canal de los ya existentes en pelisalacarta y he ido haciendo modificaciones en el código, ( es la primera vez que uso python ), a la vez que hacía las pruebas en mi XBMC para ver los resultados.
Sea como sea siempre me atasco en un punto ...
¿ Como consultáis los archivos que hay en un servidor ?, ¿ usáis un script php en el servidor junto con base de datos sql u otro método ?.
Mi intención es montar un servidor Linux en el que alojaré los archivos de las series y las películas, los organizaré por géneros y posiblemente crearé una base de datos en MySQL alias MariaDB.
Pasos que he dado hasta el momento:
1 - Un ordenador con XBMC ( concretamente OpenElec + Kodi Jarvis).
2 - Otro ordenador que hace de servidor en el que tengo almacenados los videos
3 - Por supuesto el Addon Pelisalacarta instalado.
4 - En el servidor, he creado un virtual host y he creado un script php que recorre los directorios y me devuelve los datos de los videos.
5 - He usado como base del código de mi "canal experimento" un código que había publicado robalo del canal palasaka, aunque yo no usare torrents.
¿ Que código de ejemplo me recomendáis seguir para hacer esto que me propongo ?.
Viendo el código del canal y si pudiera ser el encontrar un script que consulte y devuelva los datos al python creo que me resultaría bastante sencillo de seguir, por el momento la tarea se me hace imposible ya que no soy capaz de crear la itemlist adecuadamente.
Cierto es que si añado un par de líneas al código del tipo:
itemlist.append(Item( channel=__channel__, action="play", title="titulo", url="la_url_donde_esta_el_archivo.avi", extra="series", fanart=fanart_host ))
sí que me aparece en la lista de archivos y hasta soy capaz de reproducirlo, pero eso no es más que una chapuza para entender cómo funciona.
Agradecería cualquier sugerencia siempre y cuando no os quite tiempo de vuestras tareas.
un abrazo a tod@s
Re: Como se crea un nuevo canal.
Publicado: 31 Mar 2016, 14:45
por super_berny
Vamos por partes como decía Jack...
En primer lugar bienvenido al club de las 11 varas aunque a veces parecemos más bien el de las 11 barras (de bar)
No entiendo muy bien tu experimento. ¿Quieres crear un servidor público con películas y series? Cuidado con eso q es peligroso legalmente hablando. Por contra si lo quieres para uso privado, en red local por ejemplo, no te hace falta pelisalacarta, kodi solo se basta para eso.
Lo q nosotros hacemos con nuestros canales se conoce por scraping y consiste en analizar el código html de las páginas q ofrecen contenidos y obtener los enlaces a dichos contenidos.
Pero practicamente nunca tenemos acceso a scripts php ni al sql de dichas paginas, por lo general y salvo honrosas excepciones no somos muy bien vistos por los webmasters.
Si te interesa esto puedes buscar en el blog unos tutoriales muy completos q aunque se han quedado algo anticuados es un comienzo casi obligatorio. Después puedes analizar alguno de los canales (cuanto más sencillo mejor) y pasarte por el foro de desarrolladores a resolver tus dudas.
Re: Como se crea un nuevo canal.
Publicado: 31 Mar 2016, 16:00
por fontela
Berny, muchas gracias por contestar.
El experimento de crear un canal para incorporarlo al paquete de pelisalacarta ( aunque solo sea a nivel local y lo vaya añadiendo tras cada actualización ), es simplemente para poder tener mis series y películas a disposición desde cualquier sitio.
Si lo hago a nivel local ( red local ) se que puedo verlas desde los diferentes dispositivos de casa pero quiero llegar un poco mas allá.
He leído los tutoriales que me comentas y quizá debido a que Python y yo hemos sido presentados hace menos de una semana aún no somos amigos íntimos.
Efectivamente lo del scraping es lo que no acabo de pillar del todo y es precisamente eso lo que necesito aprender, el cómo se lee una web y se recogen los datos desde el archivo o script o como se le quiera llamar programado en Python.
Estoy buscando por la www ( por toda la www ) algunos ejemplos de lectura HTML usando Python y estoy haciendo pruebas, si consigo entender como se hace para leer el contenido de una web y crear la lista tendré el 50% entendido, el resto será cuestión de ser aplicado, leer con atención y seguiros cada día.
Sobre el tema de tener un servidor propio con contenidos alojados en él, si, por desgracia ya se que eso no es legal y no voy a hacer nada de eso, para alojar los contenidos ya están esos sitios que al parecer no tienen problemas legales.
En fin, no quiero daros la lata con esto, voy a ver si encuentro la mejor manera de hacer scraping y mostrarlo luego en el canal que he creado para las pruebas.
Y con todo mi respeto hacia los webmasters, que no se enfaden, que yo lo he sido, lo soy y lo seré hasta que me quede sin combustible y no me importa que los demás usen mis recursos.
Un abrazo Berny y nuevamente gracias.
Re: Como se crea un nuevo canal.
Publicado: 31 Mar 2016, 16:08
por kampanita
Welcome to the jungle.
Para lo que quieres montar no te hace falta el plugin de pelisalacarta, si no mas bien que te crees un addon ... y básicamente sería hacer tal y como lo describes. ( añadiendo "items" para que los veas en Kodi )
Lo que te falta básicamente es la rutina de transformar los datos del php en items

... pues casi lo tienes todo ya.
Cuando dices que "ejecutas un script php para obtener los datos de los videos" ... que datos son esos ¿¿??
Puedes aportar un poco mas de luz ¿¿??
Si lo unico que quieres es tener enlaces a ficheros ... tampoco te hace falta un addon, con que añadas el directorio raiz de tus videos en kodi y le asignes contenido con un scrapper te vale... pero bueno, como ejercicio para aprender un poco mas de python, no esta mal

Re: Como se crea un nuevo canal.
Publicado: 31 Mar 2016, 16:27
por fontela
Y lo peor de todo es que la llegada a la jungla ya me pilla con unos cuantos años mas de los que debería, jajajajajaja.
Al lio, gracias Kampanita, cómo no me enteraba de la misa a la media no entendía como se hacía para recuperar la información de las webs, ahora lo veo mas claro, el "scraping", esa es mi tarea para los próximos días.
¿ Que porqué quiero hacerlo creando un canal y adjuntarlo a pelisalacarta ?, la respuesta es sencilla, pelisalacarta es el addon que mas uso de todo lo existente para Kodi, XBMC, etc., me gusta como está diseñado, me gustan los contenidos de los diferentes canales y es simplemente por ese motivo por el cuál quiero añadir uno creado por mi mismo.
Te dejo que me llames inconsciente, loco o lo que quieras, la verdad que a mis años ya no hay mucho en lo que entretenerse y este reto me va a mantener activo un tiempo, no es que sea un gran programador, pero me las voy apañando para aprender lo que necesito y me parece entretenido esto de poder hacer mi propio canal .... ¡ quien sabe !, tal vez ... algún día ... si la cosa pinta bien .... podría ser un canal mas de pelisalacarta pero de momento lo que he de hacer lo tengo claro, leer con atención, aprender y practicar.
Y ahora a scrapear un poco.
Muchas gracias.
Re: Como se crea un nuevo canal.
Publicado: 31 Mar 2016, 17:28
por kampanita
nunca es tarde si la picha es buena
Al lio. Lo que te decia es que no te hace falta integrar tu canal en pelis a la carta, te puedes hacer un addon "propio", eso por un lado.
Por otro lado... Pelisalacarta scrappea webs de internet. Si t¡enes los ficheros en local ( o en tu red interna ) no tienes que scrappear nada, solo añadir los links a los ficheros y listo
Y por ultimo...Kodi es expresamente para hacer lo que tu quieres sin necesidad de programar nada, ni tocar nada ....
Si tienes los ficheros en una red local, solamente tienes que crear un acceso de kodi a dicha fuente, vamos, añadir como fuente la ruta en la que tengas los videos ( la raiz ), y una vez seleccionada dicha fuente, la configuras para que su contenido sean "pelis" o "series" ...le configuras un scrapper externo como IMDB o el que quieras, y ...le dices que escanee el nuevo contenido, y listo .... No hace falta programar naaaaaaa ( para lo que tu quieres hacer )
Ahora bien, si lo que quieres es aprender a scrappear te recomiendo que te mires algun canal sencillo .... por ejemplo yo hice este ( para uso personal ) que solo saco los videos de youtube que me interesan ( igual te vale como punto de partida para aprender ) , es sencillo de entender si te sigues el manual ....
https://raw.githubusercontent.com/kampa ... rimenes.py
basicamente se basa en montar un menu principal "estatico" con las urls de "inicio" de la pagina que quieres hacer el scrap.
Despues lees el html de toda la pagina y vas "sacando" trozos del codigo fuente y pasandoselo a las siguientes funciones para seguir descomponiendo la informacion y quedarte basicamente con los datos de URL al video , Imagen ( thumbnail y fanart ) y titulo ( o si quieres se pueden añadir mas datos, calidad, duracion...etc....depende la info que tengas y lo que quieras liarte tu.
Con dichos "elementos" te vas montando los diferentes menus ... y al final, cuando tienes las url al video, se lo pasas al play.
Para obtener dichos "elementos" lo que se hace es uso de expresiones regulares de phyton, tienes por aqui un minimanual que lo explica bastante claro ( .*? )
En el "action" de cada item ( elemento del menu ) es en donde le dices a que funcion vas a llamar ... pasandole como parametro el item completo ( en el campo item.url llega la url a la que vas a ir a bajar y "leer" y extractar los datos que te interesan.....
Asi si en una pagina tienes
URL ---- xxx.com
<bloque>
<a href=".................." title="...." img src="........" />
<a href=".................." title="...." img src="........" />
<a href=".................." title="...." img src="........" />
</bloque>
en el menu principal la url seria xxx.com .... llamas a un action "descomponer_bloque" en el que vas sacando los diferente a href ....que a su vez metes como nuevos items que llaman a la funcion play , pasando lo que tienes en href="" .....´
-es mas jodido de explicar que de hacer.
Re: Como se crea un nuevo canal.
Publicado: 31 Mar 2016, 17:40
por robalo
Aver si lo he pillao...
fontela escribió:4 - En el servidor, he creado un virtual host y he creado un script php que recorre los directorios y me devuelve los datos de los videos.
fontela escribió:itemlist.append(Item( channel=__channel__, action="play", title="titulo", url="la_url_donde_esta_el_archivo.avi", extra="series", fanart=fanart_host ))
Por lo que sea prefieres un canal a incluir la ruta del servidor de los vídeos en la librería de kodi.
Tienes servidor que genera páginas con datos solicitados por una url.
Quieres crear un canal que scrapeé y muestre los resultados como si fuese un canal más de pelisalacarta.
Problemas, no sabes como hacer el scraped.
Si es correcto, lo que yo haría sería simplicar o anular el uso de las expresiones regulares que es lo más engorroso para el más pintao

Una solución, como el server es mio y el canal es para uso personal, pasaría olímpicamente de urls y haría consultas sql a mi server MySql.
Otra solución es formatear los datos de salida que genera el script PHP para reducir al máximo el uso de expresiones regulares o incluso no tener que usarla.
Resumiendo, currando un poco la BD y/o PHP, crear el canal no debería ser tan complicado, al menos ya sabes dónde tienes que colocar la ruta o url del vídeo para verlo

Re: Como se crea un nuevo canal.
Publicado: 31 Mar 2016, 17:55
por super_berny
fontela escribió:El experimento de crear un canal para incorporarlo al paquete de pelisalacarta ( aunque solo sea a nivel local y lo vaya añadiendo tras cada actualización ), es simplemente para poder tener mis series y películas a disposición desde cualquier sitio.
Si lo hago a nivel local ( red local ) se que puedo verlas desde los diferentes dispositivos de casa pero quiero llegar un poco mas allá.
Vale ya lo entiendo. Tu quieres ver TUS contenidos desde tu casa, desde el curro o desde casa de tus amigos. Para eso te montas TU servidor PRIVADO. Si es eso tal y como dice robalo yo tiraria de php/sql para q el servidor de devolviera las cosas lo mas claras posibles.
Antes dije q salvo honrosas excepciones los webmaster no nos quieren

. Pues bien una de esas excepciones es mario2000 webmaster de
http://pepecine.com el cual se ofrecio a colaborar conmigo y me permitio subir en su servidor un php q me retorna los datos q necesitaba. Puedes mirarte ese canal y si lo necesitas te puedo pasar tb el php.
Re: Como se crea un nuevo canal.
Publicado: 31 Mar 2016, 17:59
por fontela
Hola Robalo:
Lo que me comentas es una de las opciones que había barajado en un principio, para mi resultaría mas sencillo hacerlo de esa manera, tener una base de datos MySQL en el servidor, hacer las consultas a la base de datos con php y retornar los datos en un HTML muy simple, como no pretendo crear una web para publicar los enlaces ni nada por el estilo, lo que quiero hacer es precisamente eso, tener una base de datos, una interfaz ( seguramente web ) para ir añadiendo los datos de cada video ( película o capítulo de cada serie ) y desde el canal.py extraer esos datos para que muestre el árbol ( Películas o Series ) y dentro de esos dos "directorios" pues lo suyo es que pudiera mostrar por géneros o lo que sea.
Por otra parte me está picando la mosca esta del scrapeo y yo soy mas bruto que un arao, soy del norte ( que no se ofenda nadie por favor ), me gustan los retos y me encantaría poder hacerlo de esa manera, tal vez tenga que ir despacio, empezando por cosas pequeñas y entendibles como lo que me propone Kampanita que lo voy a mirar dentro de un momento y cuando controle eso doy el siguiente paso.
No os podéis imaginar lo agradecido que estoy por la ayuda que me estáis prestando, algún día quisiera poder devolverla, ahora, como buen alumno aplicado, voy a seguir rascando teclado a ver que sale de todo esto. Os iré contando, lo que NO quiero es daros la chapa ni que dejéis de hacer otras cosas por ayudarme a mi.
Un millón de gracias.
P.D. pepecine.com es uno de mis canales favoritos, es que hay tantos que ..., pues eso, usé el pepecine.py para empezar pero he tenido que desistir porqué está muy bien hecho, demasiado complejo para mi segundo día de Python.
Por cierto, hace días que también me registré en pepecine.com, espero respuesta de Mario2000 a una cosilla que le he comentado.

Re: Como se crea un nuevo canal.
Publicado: 31 Mar 2016, 18:01
por kampanita
Ah...vale, que lo que quieres es hacer stream tambien para "afuera" de tu red local....
Yo para eso me lo montaria con un apache en la raspi, y usando webDAV para exponer los directorios... o bien como te dice Super_Berny, con php y que te devuelva los datos "basicos" en formato json o xml para montarte un miniscrappeo...
PD: los del norte somos asi... emon egurre !