MovistarTV / tv_grab_es_movistartv

Grabber XMLTV para Movistar TV
GNU General Public License v3.0
44 stars 20 forks source link

Duda sobre la longitud de la epg descargada #2

Closed cafs78 closed 6 years ago

cafs78 commented 7 years ago

Hola buenas. Por lo que veo la EPG descargada siempre es de 8 días, siendo el último día dentro 3 días y parece que eso no tiene nada que ver con el valor de cache_exp o eso me ha parecido.

¿Es esto así? Si es así no es ningún problema para mi. 3 días adelante son suficientes para mi, pero veo un problema con los expires. Al almacenar la cache creas un expire cuyo valor seria: A + D + cache_exp Donde:

Si el script corren en un crontab cada 3 días, la proxima vez que corra será: A + 3 días < A+D+cache_exp (si cache_exp se deja con su valor por defecto, 3 días) Así que se usará la epg antigua (y eso que casi estaría acabada) durante otros 3 días cuando ya si volvería a descargar una epg actualizada volviendo hacer lo mismo.

Creo que si para el expire se tomara la hora: A + cache_exp se solucionaría el problema

Un saludo

MovistarTV commented 7 years ago

Sí, se descarga la guía multicast completa (la guía básica, sin descripción y demás) de 8 días y luego descarta 5. Esto tiene una explicación. Y sí, la caché expira a los 3 días menos un pequeño margen para asegurarse de que en la próxima ejecución la caché está expirada:

time.time() - 900 + expire_in * 3600

El valor de "expire_in" para la guía EPG que envían por multicast es de 3 días (cache_exp). Teniendo en cuenta que esta guía básica tarda menos de 2 minutos en descargarse y que el margen que estoy dejando es de 900 segundos (15 minutos), no debería haber ningún problema con los tiempos de caducidad de la caché.

Se descartan 5 días de la EPG por dos motivos:

  1. Movistar envía la guía de antes de ayer, ayer, hoy y los próximos 5 días, pero el script sólo incluye programas finalizados 2 horas antes su ejecución y posteriores. Aquí hay un descarte de más de 2 días.

  2. La EPG no es estática, cambia continuamente. Los programas se actualizan. Cuando lo escribí no sabía cuánta gente iba a usar el grabber, podía ser yo sólo o no, y decidí limitar las conexiones a los servidores de Movistar para causar el menor impacto posible. Al final lo dejé en 3 días. Más allá no podía ser porque aparecerían un montón de "Programa por determinar" y películas con título "Cine" y sin descripción. Aquí se descartan los últimos 3 días.

En realidad el grabber debería ejecutarse cada pocas horas, cachear el contenido e ir actualizando los programas cuando haya un cambio de versión. Pero eso multiplica el número de conexiones y se trata de causar el menor impacto posible.

cafs78 commented 7 years ago

pues en mi rpi el script le lleva horas corrrer, y no 15 minutos. en cuanto a correr el script casa pocss horas pues si. funcionaria, pero realmente solo cuando pasaran cache_exp haria otra cosa distinta de borrar ficheros, y bueno, cunado la,hora de ejcución fuera despues de A+D +CACHE_EXP corrreria el full download

MovistarTV commented 7 years ago

pues en mi rpi el script le lleva horas corrrer, y no 15 minutos

Fíjate que en todo momento hablo de la guía básica, la que envían por multicast, no del fichero XMLTV que genera el script. Generar el fichero puede llevar 30 o 40 minutos o incluso más, pero descargar la guía básica lleva 2 minutos.

Ve al log, puedes comprobarlo tú mismo:

[15/09/2017 21:07:14] [INFO] --------------------------------------------------- [15/09/2017 21:07:14] [INFO] MovistarTV EPG Grabber [15/09/2017 21:07:14] [INFO] Parámetros: ['--tvheadend', '/home/hts/.xmltv/MovistarTV'] [15/09/2017 21:07:14] [INFO] --------------------------------------------------- [15/09/2017 21:07:14] [INFO] Creando caché en /home/hts/.xmltv/cache [15/09/2017 21:07:14] [INFO] Cookie: no encontrada [15/09/2017 21:07:14] [INFO] Descargando configuración del cliente [15/09/2017 21:07:14] [INFO] Set-Cookie: JSESSIONID=XXXXX-node10; [...] [15/09/2017 21:07:14] [INFO] Descargando pefil del servicio [15/09/2017 21:07:14] [INFO] Descargando parámetros de configuración [15/09/2017 21:07:14] [INFO] tvPackages: PR05H|UTX6C|UTXA3 [15/09/2017 21:07:14] [INFO] Demarcation: 13 [15/09/2017 21:07:14] [INFO] Nuevos End Points: [...] [15/09/2017 21:07:14] [INFO] Descargando mapa de géneros [15/09/2017 21:07:14] [INFO] Buscando el Proveedor de Servicios de Asturias [15/09/2017 21:07:16] [INFO] Proveedor de Servicios de Asturias: 239.0.2.150 [15/09/2017 21:07:16] [INFO] Descargando canales, paquetes e índices [15/09/2017 21:08:48] [INFO] Canales: 381 [15/09/2017 21:08:48] [INFO] Paquetes: 166 [15/09/2017 21:08:48] [INFO] Días de EPG: 8 [15/09/2017 21:08:49] [INFO] Multithread: 3 descargas simultáneas [15/09/2017 21:08:49] [INFO] Descargando EPG_0_BIN.imagenio.es [15/09/2017 21:08:49] [INFO] Descargando EPG_1_BIN.imagenio.es [15/09/2017 21:08:49] [INFO] Descargando EPG_2_BIN.imagenio.es [15/09/2017 21:09:26] [INFO] Descargando EPG_3_BIN.imagenio.es [15/09/2017 21:09:27] [INFO] Descargando EPG_4_BIN.imagenio.es [15/09/2017 21:09:27] [INFO] Descargando EPG_5_BIN.imagenio.es [15/09/2017 21:10:03] [INFO] Descargando EPG_6_BIN.imagenio.es [15/09/2017 21:10:04] [INFO] Descargando EPG_7_BIN.imagenio.es [15/09/2017 21:11:02] [INFO] Generando la guía XMLTV: descargando info extendida`

La guía está en los "EPG_X_BIN.imagenio.es".

La caché de esta guía básica expira el 18/09/2017 a las 20:56h. Si has programado Cron para que ejecute el script cada 3 días, la próxima ejecución será el 18/09/2017 a las 21:07h, por lo que aún tienes 11 minutos de margen.

en cuanto a correr el script casa pocss horas pues si. funcionaria, pero [...]

Para que funcione como debería funcionar hay que reescribir parte del script. El parámetro "cache_exp" desaparecería. Pero las conexiones aumentarían y como he dicho, el objetivo siempre fue tener una guía decente causando el menor perjuicio posible a los servidores de Movistar.

De todos modos, si tienes algún problema concreto coméntalo y lo solucionamos ;-)