Obtener la Lista de Canales y Programación de Movistar TV

#41
Re: Obtener la Lista de Canales y Programación de Movistar T

azlon dijo:
joserg dijo:
Cual es esa aplicacion que estas usando de cliente? tvhclient? la instalé en el ipad pero me sale error, creo que no escompatible con tvheadend 3.9 todavia
Sí, tvhclient en un iphone 4. ¿Qué error te da? Yo uso el tvheandend 3.4 que viene en los repositorios de apt-get para raspberry pi. La versión de git se me pixelaba y a parte añadir los canales y la interfaz me resultaba más incómodo.



Sent from my iPhone using Tapatalk
Será eso entonces, yo compilé de 0 la github que es la 3.9, probaré con la 3.4 a ver que tal
 
#42
Re: Obtener la Lista de Canales y Programación de Movistar T

Muy grande la contribución azlon.

Por mi parte he refactorizado un poco el código para separar las funcionalidades y facilitar la reutilización.

Esta en mi repo:
https://github.com/ese/movistartv2xmltv

Tiene un bug al pillar el xml de los canales que ha veces lo coge bien y otras coge un xml que no puede procesar y se queda colgado.

Saludos
 
#43
Re: Obtener la Lista de Canales y Programación de Movistar T

eSeSe dijo:
Muy grande la contribución azlon.

Por mi parte he refactorizado un poco el código para separar las funcionalidades y facilitar la reutilización.

Esta en mi repo:
https://github.com/ese/movistartv2xmltv

Tiene un bug al pillar el xml de los canales que ha veces lo coge bien y otras coge un xml que no puede procesar y se queda colgado.

Saludos

Gracias a ti! Me centré en acabarlo lo antes posible y descuidé el código. Aunque tampoco es que sepa programar muy bien. Entonces, ¿al refactorizar dices que se queda bloqueado en algún punto?

De todas formas el problema que estaba viendo es que no captura todos los programas y a base de ejecutarlo periódicamente el tvheadend va rellenando más. Pero me fastidia que haya que estar haciendo eso cuando con una ejecución diaria y de un día, no de los 7, debería ser suficiente. Tanta ejecución me carga la raspberry y me genera "ruido" al ver la tele.

¿Alguien que lo haya probado en linux o windows le captura todos los canales?

Tengo que hacer la prueba teórica de ver cuántos paquetes es capaz de leer sin escribir en fichero ni parsear. Lo óptimo sería guardar en memoria todo lo capturado y luego procesarlo.
 
#44
Re: Obtener la Lista de Canales y Programación de Movistar T

azlon dijo:
Gracias a ti! Me centré en acabarlo lo antes posible y descuidé el código. Aunque tampoco es que sepa programar muy bien. Entonces, ¿al refactorizar dices que se queda bloqueado en algún punto?

De todas formas el problema que estaba viendo es que no captura todos los programas y a base de ejecutarlo periódicamente el tvheadend va rellenando más. Pero me fastidia que haya que estar haciendo eso cuando con una ejecución diaria y de un día, no de los 7, debería ser suficiente. Tanta ejecución me carga la raspberry y me genera "ruido" al ver la tele.

¿Alguien que lo haya probado en linux o windows le captura todos los canales?

Tengo que hacer la prueba teórica de ver cuántos paquetes es capaz de leer sin escribir en fichero ni parsear. Lo óptimo sería guardar en memoria todo lo capturado y luego procesarlo.
Yo podría ayudarte testeando y demas lo que haces, por que de programar ni idea, pero no consigo ejecutar tu codigo de python
 
#45
Re: Obtener la Lista de Canales y Programación de Movistar T

azlon dijo:
eSeSe dijo:
Muy grande la contribución azlon.

Por mi parte he refactorizado un poco el código para separar las funcionalidades y facilitar la reutilización.

Esta en mi repo:
https://github.com/ese/movistartv2xmltv

Tiene un bug al pillar el xml de los canales que ha veces lo coge bien y otras coge un xml que no puede procesar y se queda colgado.

Saludos

Gracias a ti! Me centré en acabarlo lo antes posible y descuidé el código. Aunque tampoco es que sepa programar muy bien. Entonces, ¿al refactorizar dices que se queda bloqueado en algún punto?

De todas formas el problema que estaba viendo es que no captura todos los programas y a base de ejecutarlo periódicamente el tvheadend va rellenando más. Pero me fastidia que haya que estar haciendo eso cuando con una ejecución diaria y de un día, no de los 7, debería ser suficiente. Tanta ejecución me carga la raspberry y me genera "ruido" al ver la tele.

¿Alguien que lo haya probado en linux o windows le captura todos los canales?

Tengo que hacer la prueba teórica de ver cuántos paquetes es capaz de leer sin escribir en fichero ni parsear. Lo óptimo sería guardar en memoria todo lo capturado y luego procesarlo.

Buenas,

El bug que comentaba ya esta arreglado. El problema es que técnicamente en el stream donde se reciben los canales y su dirección y puerto se están transmitiendo un par de ficheros más que no tenia contemplado. Ahora es capaz de distinguir esto y lo próximo que quiero sacar (Ya lo tengo practicamente hecho) es sacar el numero de orden lógico del canal que viene en otro fichero de ese mismo stream, una pijadita pero mola tener los canales ordenados.

Actualmente con la refactorización se hace todo en memoria y solo se escribe en disco el fichero final.

Esta noche si saco un rato en casa le paso el resultado al tvheadend a ver como de completo es el resultado que saca.
 
#46
Re: Obtener la Lista de Canales y Programación de Movistar T

¡Vaya crack! Está genial. He hecho varias pruebas y el cuello de botella es claramente el procesamiento, la escritura afecta mucho menos en comparación, pero de todas formas trabajando en memoria es mucho mejor.
Eso sí, ahora que ya procesa todo, tarda un montón, pero supongo que ya poco se podrá hacer. Intentaré revisar mi parte de código que cuando tuve problemas de encoding guarreé mucho el código.

Joserg, lo que te tiene que fallar es que igual lo estás copiando y pegando, porque el error ese de indent es espaciado/tabulación. Prueba a pinchar en la versión raw, copias el enlace y lo descargas con wget directamente en la raspberry. Te recomiendo que uses directamente la versión de eSe. Tendrás que bajar:
https://raw.githubusercontent.com/ese/m ... ter/tva.py
https://raw.githubusercontent.com/ese/m ... ovistar.py
 
#47
Re: Obtener la Lista de Canales y Programación de Movistar T

azlon dijo:
Joserg, lo que te tiene que fallar es que igual lo estás copiando y pegando, porque el error ese de indent es espaciado/tabulación. Prueba a pinchar en la versión raw, copias el enlace y lo descargas con wget directamente en la raspberry. Te recomiendo que uses directamente la versión de eSe. Tendrás que bajar:
https://raw.githubusercontent.com/ese/m ... ter/tva.py
https://raw.githubusercontent.com/ese/m ... ovistar.py
Lo he ejecutado y veo que ahora me salen muchos grabbers de distintos paises, he probado con laguia.tv de España yen el system log me sale esto:

2014-09-30 21:26:53.677 /usr/bin/tv_grab_es_laguiatv: grab /usr/bin/tv_grab_es_laguiatv

2014-09-30 21:27:01.393 /usr/bin/tv_grab_es_laguiatv: no output detected

2014-09-30 21:27:01.393 /usr/bin/tv_grab_es_laguiatv: grab returned no data
 
#48
Re: Obtener la Lista de Canales y Programación de Movistar T

El de la laguiatv va regular y hay que hacer algunas modificaciones. El que estamos haciendo se tiene que ejecutar de momento por consola y usar uno genérico como el que descarga de la web de rytec.



Sent from my iPhone using Tapatalk
 
#49
Re: Obtener la Lista de Canales y Programación de Movistar T

azlon dijo:
El de la laguiatv va regular y hay que hacer algunas modificaciones. El que estamos haciendo se tiene que ejecutar de momento por consola y usar uno genérico como el que descarga de la web de rytec.
y como haria eso? el de rytec ya lo tengo funcionando, he ejecutado python tva.py y por lo que he visto se han añadido los grabber de distintos paises, que no funcionan, pero nada mas
 
#50
Re: Obtener la Lista de Canales y Programación de Movistar T

joserg dijo:
azlon dijo:
El de la laguiatv va regular y hay que hacer algunas modificaciones. El que estamos haciendo se tiene que ejecutar de momento por consola y usar uno genérico como el que descarga de la web de rytec.
y como haria eso? el de rytec ya lo tengo funcionando, he ejecutado python tva.py y por lo que he visto se han añadido los grabber de distintos paises, que no funcionan, pero nada mas
Tienes que ejecutar el otro con el día del que quieres obtener la programación, por ejemplo, para mañana:

Código:
./tv_grab_es_movistar.py 1 &
Cuando acabe, en mi raspberry me está tardando casi dos horas, tendrás un archivo:

Código:
/tmp/tv_grab_es_movistar_1.xml
Puedes ver el progreso con:

Código:
 tail -f /tmp/movistar.log
 
#51
Re: Obtener la Lista de Canales y Programación de Movistar T

azlon dijo:
Tienes que ejecutar el otro con el día del que quieres obtener la programación, por ejemplo, para mañana:
Código:
./tv_grab_es_movistar.py 1 &
En primer lugar enhorabuena por el script. He conseguido ejecutarlo en un Vu+ con enigma2 y siguiendo las instrucciones de azlon he podido descargar la guía completa de un día usando el script de eSeSe. ¿Sabrías cómo puedo hacer para descargar varios días a la misma vez? (De poder hacerse claro).

Azlon, he probado tu script en Windows, Mac OS X y Enigma2 y en ningún sistema consigo que termine descargando toda la guía. Donde más aguanta es en Mac.

Saludos y gracias.
 
#52
Re: Obtener la Lista de Canales y Programación de Movistar T

pizzel dijo:
azlon dijo:
Tienes que ejecutar el otro con el día del que quieres obtener la programación, por ejemplo, para mañana:
Código:
./tv_grab_es_movistar.py 1 &
En primer lugar enhorabuena por el script. He conseguido ejecutarlo en un Vu+ con enigma2 y siguiendo las instrucciones de azlon he podido descargar la guía completa de un día usando el script de eSeSe. ¿Sabrías cómo puedo hacer para descargar varios días a la misma vez? (De poder hacerse claro).

Azlon, he probado tu script en Windows, Mac OS X y Enigma2 y en ningún sistema consigo que termine descargando toda la guía. Donde más aguanta es en Mac.

Saludos y gracias.
Muy bien! Menudo cacharraco el Enigma2, creí que lo de que fuera en python podría dar problemas en esos aparatos.

La verdad es que no tengo claro todavía si merece la pena que el script capture los 7 días con lo que tarda. Yo personalmente lo tengo puesto en el cron para que por las noches capture el día 7, así mantengo siempre los próximos 7 días. Al principio hice la carga manual. Sin tocar el código python, simplemente llámalo usando los días que te interese, por ejemplo:

Código:
 ./tv_grab_es_movistar.py 1; ./tv_grab_es_movistar.py 2; ./tv_grab_es_movistar.py 3; ./tv_grab_es_movistar.py 4
Cuando eSeSe acabe lo que quería hacer y empiece yo a tener tiempo, veré cómo puedo optimizar la parte que hice del parseado. Idealmente lo que decías, debería capturar lo de los 7 días por si en algún momento se ha escapado algún programa en la captura (que yo creo que es difícil que ocurra) Luego tvheadend cuando lo mete en su base de datos ya se encarga de comprobar si los eventos están duplicados. Otra cosa que podría hacerse cuando se llame al script, es comprobar qué días ya tiene el xml actual, y capturar sólo de los días que falten.

¿Qué errores te daba en otras plataformas? Es que igual podría pasar también en Linux en algún momento.
 
#53
Re: Obtener la Lista de Canales y Programación de Movistar T

Buenas, a mi me da el siguiente error al ejecutarlo (tanto en una raspberry pi como en un router con openwrt)

Traceback (most recent call last):
File "./tv_grab_es_movistar.py", line 141, in <module>
xmlchannels = channelsstream.files()["2_0"]
KeyError: '2_0'

Y en el archivo movistar.log solo pone esto (una entrada así por cada vez que lo he ejecutado):

2014-10-09 11:21:39,860 - movistarxmltv - INFO - Getting channels list

Lo he probado varias veces y nada, no hay manera
No he modificado nada del script y están ambos (tva.py y tv_grab_es_movistar.py) descargados con wget directamente desde github.
Los tengo ambos guardados en la misma carpeta.

Gracias!
 
#54
Re: Obtener la Lista de Canales y Programación de Movistar T

Es el primer uso de la librería tva, así que mira a ver si la tienes


Sent from my iPhone using Tapatalk
 
#55
Re: Obtener la Lista de Canales y Programación de Movistar T

azlon dijo:
Es el primer uso de la librería tva, así que mira a ver si la tienes


Sent from my iPhone using Tapatalk
Siento mi ignorancia pero, ¿cómo puedo saber si la tengo?
He ejecutado primero el archivo "tva.py" y se ha creado un archivo "tva.pyc" si es eso a lo que te refieres.
Gracias!
 
#56
Re: Obtener la Lista de Canales y Programación de Movistar T

danielikogp87 dijo:
azlon dijo:
Es el primer uso de la librería tva, así que mira a ver si la tienes


Sent from my iPhone using Tapatalk
Siento mi ignorancia pero, ¿cómo puedo saber si la tengo?
He ejecutado primero el archivo "tva.py" y se ha creado un archivo "tva.pyc" si es eso a lo que te refieres.
Gracias!
La verdad es que últimamente he montado de cero un raspbmc y un openelec y me ha funcionado a la primera. Te pongo los paquetes python que tengo, por si te sirve. Compara con los que tengas tú:

Código:
 dpkg -l| grep python 
ii  libboost-python1.49.0                1.49.0-3.2                     armhf        Boost.Python Library
ii  libpython2.7                         2.7.3-6+deb7u2                 armhf        Shared Python runtime library (version 2.7)
ii  python                               2.7.3-4+deb7u1                 all          interactive high-level object-oriented language (default version)
ii  python-adns                          1.2.1-5                        armhf        Python bindings to the asynchronous DNS resolver library
ii  python-chardet                       2.0.1-2                        all          universal character encoding detector
ii  python-cheetah                       2.4.4-3                        armhf        text-based template engine and Python code generator
ii  python-configobj                     4.7.2+ds-4                     all          simple but powerful config file reader and writer for Python
ii  python-dbus                          1.1.1-1                        armhf        simple interprocess messaging system (Python interface)
ii  python-dbus-dev                      1.1.1-1                        all          main loop integration development files for python-dbus
ii  python-feedparser                    5.1.2-1                        all          Universal Feed Parser for Python
ii  python-geoip                         1.2.4-2                        armhf        Python bindings for the GeoIP IP-to-country resolver library
ii  python-gi                            3.2.2-2                        armhf        Python 2.x bindings for gobject-introspection libraries
ii  python-ipy                           1:0.75-1                       all          Python module for handling IPv4 and IPv6 addresses and networks
ii  python-libtorrent                    0.15.10-1                      armhf        Python bindings for libtorrent-rasterbar
ii  python-libxml2                       2.8.0+dfsg1-7+wheezy1          armhf        Python bindings for the GNOME XML library
ii  python-mako                          0.7.0-1.1                      all          fast and lightweight templating for the Python platform
ii  python-markupsafe                    0.15-1                         armhf        XML/HTML/XHTML Markup safe string for Python
ii  python-minimal                       2.7.3-4+deb7u1                 all          minimal subset of the Python language (default version)
ii  python-openssl                       0.13-2+rpi1+deb7u1             armhf        Python 2 wrapper around the OpenSSL library
ii  python-pam                           0.4.2-13                       armhf        Python interface to the PAM library
ii  python-pexpect                       2.4-1                          all          Python module for automating interactive applications
ii  python-pkg-resources                 0.6.24-1                       all          Package Discovery and Resource Access using pkg_resources
ii  python-serial                        2.5-2.1                        all          pyserial - module encapsulating access for the serial port
ii  python-sqlite                        1.0.1-9                        armhf        Python interface to SQLite 2
ii  python-support                       1.0.15                         all          automated rebuilding support for Python modules
ii  python-twisted-bin                   12.0.0-1                       armhf        Event-based framework for internet applications
ii  python-twisted-core                  12.0.0-1                       all          Event-based framework for internet applications
ii  python-twisted-web                   12.0.0-1                       all          HTTP protocol implementation together with clients and servers
ii  python-utidylib                      0.2-8                          all          Python wrapper for TidyLib
ii  python-xdg                           0.19-5                         all          Python library to access freedesktop.org standards
ii  python-zope.interface                3.6.1-3                        armhf        Interfaces for Python
ii  python2.6                            2.6.8-1.1                      armhf        Interactive high-level object-oriented language (version 2.6)
ii  python2.6-minimal                    2.6.8-1.1                      armhf        Minimal subset of the Python language (version 2.6)
ii  python2.7                            2.7.3-6+deb7u2                 armhf        Interactive high-level object-oriented language (version 2.7)
ii  python2.7-minimal                    2.7.3-6+deb7u2                 armhf        Minimal subset of the Python language (version 2.7)
 
#57
Re: Obtener la Lista de Canales y Programación de Movistar T

danielikogp87 dijo:
azlon dijo:
Es el primer uso de la librería tva, así que mira a ver si la tienes


Sent from my iPhone using Tapatalk
Siento mi ignorancia pero, ¿cómo puedo saber si la tengo?
He ejecutado primero el archivo "tva.py" y se ha creado un archivo "tva.pyc" si es eso a lo que te refieres.
Gracias!

Puedes editar esta linea en tv_grab_es_movistar.py
fh.setLevel(logging.INFO)
por:
fh.setLevel(logging.DEBUG)

con eso saldrán más cosas en el movistar.log que pueden ser útiles para diagnosticar el problema.

También he actualizado el repo con algunas cosillas que aunque en principio no tienen que ver con tu problema, puedes probar a ver que tal.

La cosa esta un poco en modo experimental y necesita un poco de tarea manual para que ocurra toda la magia. Esto como apunte
 
#58
Re: Obtener la Lista de Canales y Programación de Movistar T

He añadido nuevos cambios, espero que partiendo de la versión más actualizada de eSe, porque con git no me manejo bien y no he sabido si lo que tenía que hacer era un fork, una rama...

Básicamente lo he modificado para que pueda coger un rango de días, se ponen dos valores, por ejemplo:
./tv_grab_es_movistar.py 0 7
Spain (Multicast Movistar - py)
2014-10-16 23:12:48,869 - movistarxmltv - INFO - Getting channels list
2014-10-16 23:13:39,351 - movistarxmltv - INFO - Reading day 16-10-2014
2014-10-16 23:26:27,082 - movistarxmltv - INFO - Reading day 17-10-2014

https://raw.githubusercontent.com/migin ... ovistar.py
https://github.com/miginv/tv_grab_es_mo ... ter/tva.py

También he metido control de excepciones para evitar que se quede la ejecución a medias por no saber parsear algo.

Más o menos tarda unos 10 minutos por día. Ahora ya cada uno lo puede configurar a su gusto.
 
#59
Re: Obtener la Lista de Canales y Programación de Movistar T

azlon dijo:
He añadido nuevos cambios, espero que partiendo de la versión más actualizada de eSe, porque con git no me manejo bien y no he sabido si lo que tenía que hacer era un fork, una rama...

Básicamente lo he modificado para que pueda coger un rango de días, se ponen dos valores, por ejemplo:
./tv_grab_es_movistar.py 0 7
Spain (Multicast Movistar - py)
2014-10-16 23:12:48,869 - movistarxmltv - INFO - Getting channels list
2014-10-16 23:13:39,351 - movistarxmltv - INFO - Reading day 16-10-2014
2014-10-16 23:26:27,082 - movistarxmltv - INFO - Reading day 17-10-2014

https://raw.githubusercontent.com/migin ... ovistar.py
https://github.com/miginv/tv_grab_es_mo ... ter/tva.py

También he metido control de excepciones para evitar que se quede la ejecución a medias por no saber parsear algo.

Más o menos tarda unos 10 minutos por día. Ahora ya cada uno lo puede configurar a su gusto.
Siento decirte que te has basado en una versión un poco antigua de lo que llevo haciendo. Tengo bastantes mejoras, cuando tenga un ratillo lo integro esto también.

https://github.com/ese/movistartv2xmltv

Algunos cambios:
- Ahora detecta los canales que tenemos contratados y la provincia donde estamos para sacar un m3u con solo esos canales.
- El m3u lo saca ordenado según el orden de movistartv.
- Algunos detalles más en el xmltv como los creditos.
- Reordenado un poco el xmltv para que sea compatible con tv-cat (xmltv-tools)
- m3u compatible con m3u2hts para generar configuración de tvheadend (con logos, asociacion automática de canales-epg, categorias)


Haciendo:
- Mapear las categorias con los genre id de xbmc para que salga la epg coloreada.
- Generar un m3u compatible con pvr-iptvsimple para que salgan logos y epg con este otro plugin de pvr
 
#60
Re: Obtener la Lista de Canales y Programación de Movistar T

eSeeSe dijo:
Siento decirte que te has basado en una versión un poco antigua de lo que llevo haciendo. Tengo bastantes mejoras, cuando tenga un ratillo lo integro esto también.

https://github.com/ese/movistartv2xmltv

Algunos cambios:
- Ahora detecta los canales que tenemos contratados y la provincia donde estamos para sacar un m3u con solo esos canales.
- El m3u lo saca ordenado según el orden de movistartv.
- Algunos detalles más en el xmltv como los creditos.
- Reordenado un poco el xmltv para que sea compatible con tv-cat (xmltv-tools)
- m3u compatible con m3u2hts para generar configuración de tvheadend (con logos, asociacion automática de canales-epg, categorias)


Haciendo:
- Mapear las categorias con los genre id de xbmc para que salga la epg coloreada.
- Generar un m3u compatible con pvr-iptvsimple para que salgan logos y epg con este otro plugin de pvr
Podrias hacer un pequeño tutorial para implementar tu script en el tvheadend?

Gracias
 
Arriba