LuisPalacios / tvhstar

Descarga periódica del EPG desde Movistar TV para ser consumido por Tvheadend
25 stars 11 forks source link

cambio de web de movistar para exportar programación #6

Open kralizeck opened 5 years ago

kralizeck commented 5 years ago

Hola.

El link que usa tvhstar para obtener la guía ya no funciona: http://comunicacion.movistarplus.es/guiaProgramacion/exportarProgramacion

Lo han cambiado por un link que abre una ventana desde esta página: http://comunicacion.movistarplus.es/programacion/

Saludos.

LuisPalacios commented 5 years ago

Muchas gracias

kralizeck commented 5 years ago

Bicheando un poco, usando el depurador del chrome, he visto que la web a la que hace el post es: http://comunicacion.movistarplus.es/wp-admin/admin-post.php

y he probado a sacar el xml de un día de todos los canales con curl:

curl -d "@data.txt" -X POST http://comunicacion.movistarplus.es/wp-admin/admin-post.php -o export.a.mano.xml

Este es el data.txt que es la parte del Form Data que he sacado desde Network del depurador del chrome. En formato URL encoded: data.txt

Éste es el xml recibido (añadida extensión .txt para poder subirlo aquí): export.a.mano.xml.txt

Espero que sirva.

Saludos.

LuisPalacios commented 5 years ago

Hola. Qué buena pinta tiene eso. En un vistazo rápido al post (data.txt) ... ¿estás pidiendo 1 día y todos los canales (o mucho vamos...)? es correcto?. Lo que obtienes es la programación en formato XML verdad?.

Llevo mucho tiempo sin tocarlo y tengo que refrescar :-), pero si es así tiene muy buena pinta. En principio desde ahí podría convertirse relativamente fácil a formato que le guste a Tvheadend?

kralizeck commented 5 years ago

Hola.

Sí, el data.txt es de un día, todos los canales seleccionados en la página http://comunicacion.movistarplus.es/programacion/ y exportación a xml.

Como curiosidad, en el selector de canales a incluir en la exportación, me parece que no aparecen casi ninguno de los propios de movistar (#0, cine, series, etc...), pero sí están en el xml exportado. Creo que muchos los incluyen "por defecto".

Lo estudiaré más a fondo para hacer una lista completa de canales y los id que usa la página de exportación.

Todo en lo que pueda ayudar para actualizar tvhstar, no dudes en pedírmelo. No tengo muchos conocimientos de programación web, pero puedo ocuparme de identificar canales o cosas así.

Y muchas gracias por el proyecto, lo he estado usando desde diciembre pasado y me ha venido muy bien.

Saludos.

LuisPalacios commented 5 years ago

Muchas gracias, a ver si puedo meterme esta semana con esto y le doy una vuelta por mi lado y te voy comentado.

kralizeck commented 5 years ago

Hola.

He seguido investigando un poco el nuevo armado de canales y es incorrecto lo que dije antes de que algunos los exporta "por defecto". En la web de programación (http://comunicacion.movistarplus.es/programacion/ link "Exportar programación) se pueden seleccionar 116 canales y esos son los que se tiene en el xml exportado. En la de diales hay 174 (http://www.movistarplus.es/diales).

He preparado un txt con los 174 canales (incluídos los sólo-fibra y sólo-satélite), ordenados por dial, con el id de movistar, nombre del canal y link de picons pequeños y grandes de la web de movistar: 174 canales - id, diales, canales, picon-peque, picon-grande.txt

Y otro txt con los 116 canales que se pueden exportar desde la web de programación, ordenados alfabéticamente: 116 canales - exportables.txt

Estoy haciendo algunas pruebas un poco chapuzas (bueno, muuyy chapuzas, en realidad), comparando un xml "antiguo" que, por suerte, tenía por ahí olvidado con uno de los nuevos para que tvhstar.sh lo pase a xmltvh y tvheadend lo importe. Aún me quedan por pulir algunas cosas, pero la idea es un script bash o unos cuantos comandos que hagan lo siguiente:

  1. con curl exportar guia.movistar-xml.xml
  2. editar el xml para que tvhstar lo pueda convertir a json
  3. lanzar tvhstar.sh pero que no realice la descarga del xml, que vaya directamente a la conversión en json y xmltv
  4. automatizar todo esto en un script de bash (el node.js me queda muy lejos...) y que se ejecute por cron

Ya iré comentando.

Saludos.

kralizeck commented 5 years ago

Y otro txt más con 206 canales ordenados alfabéticamente, en formato id <> nombre_de_canal ejemplo: PRPA4K <> M. Partidazo 4K

Está sacado de la página http://comunicacion.movistarplus.es/programacion/ pinchando en el botón "Canales" y mirando el código html. Qué enredos de canales que tiene movistar...

206 canales - id y nombre.txt

Sockolet commented 5 years ago

Hola ¿existe solución a este problema? Llevo un par de semanas sufriendo este problema y me muero de ganas por volver a tener la guia disponible :dancer:

kralizeck commented 5 years ago

Hola.

Yo estoy "parcheando" tvhstar (con mis conocimientos y muuuchooo google) para intentar tener la guía actualizada.

En este fork del proyecto de Luis he puesto los archivos modificados/nuevos (he borrado todo lo demás): https://github.com/kralizeck/tvhstar

Por las pruebas que he ido haciendo, tengo la impresión de que la página de exportación está medio en obras. En el xml que genera suelen estar repetidos casi todos los pases. Algunos los he encontrado repetidos 6 veces... con lo que genera un fichero medio monstruosos, más los enredos para los siguientes pasos.

Y otro problema (creo que grave) que he encontrado es que, en el xml exportado desde la web (o desde consola por curl, da igual), los pases de una cadena no están correctamente ordenados por hora, dentro de cada día (salvo en el el canal RT HD... ). Un ejemplo para el día 24 de #0, con un extracto del pase inicial del día (de principo de la mañana), los pases centrales (donde salta de la noche del 24 a la madrugada del 24) y el pase final (que pasa de principio de la mañana del 24 a principios de la mañana del 25):

extracto de pases y horas para #0 el día 24: [enredos-horas.txt](https://github.com/LuisPalacios/tvhstar/files/2307712/enredos-horas.txt]

¿Alguna idea/sugerencia/inspiración de cómo reordenar correctamente este galimatías horario?

Saludos.

kralizeck commented 5 years ago

Ya lo tengo resuelto (muy, pero que muy chapuzas, pero funciona). Mañana pongo el "engendro" en el fork, que ya estoy sin pilas y me bailan las letras en el monitor...

guia

kralizeck commented 5 years ago

Hola.

Ya está todo publicado en el fork .

Como avisaba, es muy chapuzas... un verdadero "engendro" de bash, perl y node.js.... pero funcionar, funciona. ;-)

Saludos.

Sockolet commented 5 years ago

Gracias crack!! Cuando tenga oportunidad lo pruebo (espero que hoy o mañana).

:D

gedas07 commented 5 years ago

Muchisimas gracias , pero podrias poner un mini tutorial de como aplicarlo , Yo tengo instalado el anterior , y he copiado los archivos al directorio , y ahora no se que hacer ( soy un poco novato en el tema de linux), cuando hago npm run start me da un mogollon de errores `1 - Descarga del EPG XML Movistar - OK 2 - Leyendo el fichero XML de movistar /tmp/guia.movistar-xml.xml events.js:160 throw er; // Unhandled 'error' event ^

Error: ENOENT: no such file or directory, open '/home/fernan/incoming/piniculas/wetek/tvhstar/tvheadend/tvHOME.m3u' at Error (native)

npm ERR! Linux 4.9.0-6-amd64 npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "run" "start" npm ERR! node v6.14.3 npm ERR! npm v3.10.10 npm ERR! code ELIFECYCLE npm ERR! tvhstar@1.0.0 start: node build/server.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the tvhstar@1.0.0 start script 'node build/server.js'. npm ERR! Make sure you have the latest version of node.js and npm installed. npm ERR! If you do, this is most likely a problem with the tvhstar package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node build/server.js npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs tvhstar npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls tvhstar npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request: npm ERR! /home/gedas07/tvhstar/npm-debug.log ` Y no se si lo he hecho bien , o solo hay que ejecutar tu script . si ejecuto tu script me sale ~/tvhstar$./parche-epg.sh 7 bash: ./parche-epg.sh: /usr/local/bin/bash: intérprete erróneo: No existe el fichero o el directorio Muchas gracias de nuevo

kralizeck commented 5 years ago

Hola. Te ayudo encantao y creo que lo tuyo tiene fácil solución. Estoy revisando el script y la documentación. Pero mejor abre un pull request en el fork. Así no mezclamos cosas. Saludos

gedas07 commented 5 years ago

Ya he abierto el pull request . Muchisimas gracias por la ayuda

kralizeck commented 5 years ago

Ufff... creo que la estoy liando con mi ignorancia en el uso de git y github... lo siento @LuisPalacios Estoy creando un nuevo proyecto que no sea fork de tvhstar, así no se enredan uno con otro.

@gedas07 cierra el pull request que has creado (está en el proyecto tvhstar) y en un rato pongo los links del nuevo proyecto.

kralizeck commented 5 years ago

Ya he creado el nuevo proyecto tvhstar-parche-epg y archivado el fork (siempre habrá tiempo para borrarlo).

@gedas07 ya puedes poner un Issue con los errores.

gedas07 commented 5 years ago

voy a probar a ver si soy capaz

kralizeck commented 5 years ago

Hola.

Sólo para que estéis avisados. He encontrado un fallo en el orden de los pases entre las 00:00h y las 06:00h... aquí lo explico un poco más "incoherencia de horarios"

El "desorden" de pases dentro de un día no es tal... es una lógica "rarita" de movistar...

Saludos.

pablozg commented 5 years ago

Hola, ante todo dar las gracias a @kralizeck por su enorme trabajo en adaptar el script a la nueva url, dicho esto he subido a mi fork la adaptación del código de @LuisPalacios para usar la nueva url, añadir que he modificado bastante el parser de los pases para adaptarlos a mis gustos particulares, por lo que si queréis dejarlo tal y como lo tiene @LuisPalacios solo tendréis que copiar el fichero movistar.js, copiar la función convierteXMLaJSON de mi script en utils.js así como mirar los cambios realizados en la función convierteJSONaJSONTV para adaptarlos a la función original de @LuisPalacios.

Tras leer el trabajo realizado por @kralizeck he comprobado que los pases que tienen la fecha incorrectamente son los existentes desde las 00:00 hasta las 06:00, por lo que a esos pases les modifico la fecha y he comprobado manualmente la programación de tres canales (AXN,TNT y FOX) y se corresponden perfectamente con la información que obtengo desde las paginas de El Mundo y El País.

https://github.com/pablozg/tvhstar

Espero que os sea de utilidad y un saludo.

Darius82 commented 5 years ago

Hola, ante todo dar las gracias a @kralizeck por su enorme trabajo en adaptar el script a la nueva url, dicho esto he subido a mi fork la adaptación del código de @LuisPalacios para usar la nueva url, añadir que he modificado bastante el parser de los pases para adaptarlos a mis gustos particulares, por lo que si queréis dejarlo tal y como lo tiene @LuisPalacios solo tendréis que copiar el fichero movistar.js, copiar la función convierteXMLaJSON de mi script en utils.js así como mirar los cambios realizados en la función convierteJSONaJSONTV para adaptarlos a la función original de @LuisPalacios.

Tras leer el trabajo realizado por @kralizeck he comprobado que los pases que tienen la fecha incorrectamente son los existentes desde las 00:00 hasta las 06:00, por lo que a esos pases les modifico la fecha y he comprobado manualmente la programación de tres canales (AXN,TNT y FOX) y se corresponden perfectamente con la información que obtengo desde las paginas de El Mundo y El País.

https://github.com/pablozg/tvhstar

Espero que os sea de utilidad y un saludo.

Hola Pablo, he intentado compilar tu fork pero me da muchos errores. Perdona que te conteste aquí.

`dario@ubuntusrv:~/tvhstar_nuevo$ sudo npm run build [sudo] password for dario:

tvhstar@1.0.0 build /home/dario/tvhstar_nuevo babel src -d build

sh: 1: babel: not found npm ERR! file sh npm ERR! code ELIFECYCLE npm ERR! errno ENOENT npm ERR! syscall spawn npm ERR! tvhstar@1.0.0 build: babel src -d build npm ERR! spawn ENOENT npm ERR! npm ERR! Failed at the tvhstar@1.0.0 build script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm WARN Local package.json exists, but node_modules missing, did you mean to install?

npm ERR! A complete log of this run can be found in: npm ERR! /home/dario/.npm/_logs/2018-10-09T10_09_52_231Z-debug.log`

pablozg commented 5 years ago

Hola @Darius82, el problema está en que no tienes instalado el modulo de node "babel", para ello tienes que ejecutar dentro /home/dario/tvhstar_nuevo el comando "npm install babel", en el caso de que te indicara otro error del mismo tipo, el comando seria el mismo pero cambiando "babel" por el nombre del modulo que te falte.

Saludos.

Darius82 commented 5 years ago

Muchas gracias por tu ayuda, ahora que me lo comentas me fijo en la línea del warning y sugiere la instalación. Soy desarrollador pero no he catado nodejs, lo que me deja un poco pez ante errores de este tipo.

Gracias a tu apunte ya sé qué es babel y tengo un poquito más de conocimiento. Gracias

P.D: El proyecto me dijo que el paquete babel está obsoleto. Debemos instalar el paquete babel-cli