Error al generar lista de canales
Opened this issue · 4 comments
Hola buenas
Lo primero dar la enhorabuena por el trabajo.
Quería comentarte que llevo ya algún tiempo con el siguiente error en el grabber. El EPG llega a funcionar, pero la lista m3u actualizada no se genera.
Adjunto log
[27/08/2019 12:32:10] [INFO] ---------------------------------------------------
[27/08/2019 12:32:10] [INFO] MovistarTV EPG Grabber
[27/08/2019 12:32:10] [INFO] Parámetros: ['--tvheadend', '/home/hts/.xmltv/MovistarTV']
[27/08/2019 12:32:10] [INFO] ---------------------------------------------------
[27/08/2019 12:32:11] [INFO] Cookie: JSESSIONID=366C9684E1914674AEFF1480209A6589-node7; Path=/appserver; HttpOnly
[27/08/2019 12:32:11] [INFO] tvPackages: UTX4N|UTX4S|UTX50|UTX65|UTX92
[27/08/2019 12:32:11] [INFO] Demarcation: 38
[27/08/2019 12:32:11] [INFO] Buscando el Proveedor de Servicios de Castilla la Mancha
[27/08/2019 12:32:11] [INFO] Proveedor de Servicios de Castilla la Mancha: 239.0.2.172
[27/08/2019 12:32:11] [INFO] Canales: 405
[27/08/2019 12:32:11] [INFO] Paquetes: 346
[27/08/2019 12:32:11] [INFO] Días de EPG: 8
[27/08/2019 12:32:11] [INFO] Generando la guía XMLTV: descargando info extendida
[27/08/2019 12:32:13] [CRITICAL] 4401
Traceback (most recent call last):
File "/usr/bin/tv_grab_es_movistartv", line 1215, in <module>
export_channels(args.channels)
File "/usr/bin/tv_grab_es_movistartv", line 1163, in export_channels
xmltv.write_m3u(m3u_file)
File "/usr/bin/tv_grab_es_movistartv", line 1047, in write_m3u
m3u = self.__generate_m3u()
File "/usr/bin/tv_grab_es_movistartv", line 1071, in __generate_m3u
channel_key = self.__channels[self.__channels[channel_id]['replacement']]['id']
KeyError: u'4401'
Y también este haciendolo directamente con la opción --m3u
después de haber hecho un --reset
[27/08/2019 11:48:47] [INFO] ---------------------------------------------------
[27/08/2019 11:48:47] [INFO] MovistarTV EPG Grabber
[27/08/2019 11:48:47] [INFO] Parámetros: ['--m3u', 'hola.m3u']
[27/08/2019 11:48:47] [INFO] ---------------------------------------------------
[27/08/2019 11:48:47] [INFO] Creando caché en /home/hts/.xmltv/cache
[27/08/2019 11:48:47] [INFO] Cookie: no encontrada
[27/08/2019 11:48:47] [INFO] Descargando configuración del cliente
[27/08/2019 11:48:47] [INFO] Set-Cookie: JSESSIONID=366C9684E1914674AEFF1480209A6589-node7; Path=/appserver; HttpOnly
[27/08/2019 11:48:47] [INFO] Descargando pefil del servicio
[27/08/2019 11:48:47] [INFO] Descargando parámetros de configuración
[27/08/2019 11:48:47] [INFO] tvPackages: UTX4N|UTX4S|UTX50|UTX65|UTX92
[27/08/2019 11:48:47] [INFO] Demarcation: 38
[27/08/2019 11:48:47] [INFO] Nuevos End Points: [u'epNoCach4', u'epNoCach5', u'epNoCach6', u'epNoCach7', u'epNoCach1', u'epNoCach2', u'epNoCach3']
[27/08/2019 11:48:47] [INFO] Descargando mapa de géneros
[27/08/2019 11:48:47] [INFO] Buscando el Proveedor de Servicios de Castilla la Mancha
[27/08/2019 11:48:49] [INFO] Proveedor de Servicios de Castilla la Mancha: 239.0.2.172
[27/08/2019 11:48:49] [INFO] Descargando canales, paquetes e índices
[27/08/2019 11:51:03] [INFO] Canales: 405
[27/08/2019 11:51:03] [INFO] Paquetes: 346
[27/08/2019 11:51:03] [INFO] Días de EPG: 8
[27/08/2019 11:51:03] [CRITICAL] 4401
Traceback (most recent call last):
File "./tv_grab_es_movistartv.py", line 1201, in <module>
export_channels(args.output)
File "./tv_grab_es_movistartv.py", line 1163, in export_channels
xmltv.write_m3u(m3u_file)
File "./tv_grab_es_movistartv.py", line 1047, in write_m3u
m3u = self.__generate_m3u()
File "./tv_grab_es_movistartv.py", line 1071, in __generate_m3u
channel_key = self.__channels[self.__channels[channel_id]['replacement']]['id']
KeyError: '4401'
No sé qué es lo que puede estar sucediendo. Por si se puede arrojar luz.
Saludos
A mi me la acaba de generar sin problemas.
EDITO: Me acabo de dar cuenta de que esa parte del script la tengo modificada... por eso no me falla.
El problema esta aqui:
tv_grab_es_movistartv/tv_grab_es_movistartv.py
Line 1071 in a749a86
Los de movistar mandan un replacement channel y ese canal no existe.
El parche es modificar ese trozo añadiendo un if que lo compruebe
diff --git a/tv_grab_es_movistartv.py b/tv_grab_es_movistartv.py
index 560d21a..d93cc1f 100755
--- a/tv_grab_es_movistartv.py
+++ b/tv_grab_es_movistartv.py
@@ -1068,7 +1068,8 @@ class XMLTV:
channel_quality = 'HDTV' if 'HD' in channel_name else 'SDTV'
channel_logo = '%s%s' % (config['tvChannelLogoPath'], self.__channels[channel_id]['logo_uri'])
if 'replacement' in self.__channels[channel_id]:
- channel_key = self.__channels[self.__channels[channel_id]['replacement']]['id']
+ if self.__channels[channel_id]['replacement'] in self.__channels:
+ channel_key = self.__channels[self.__channels[channel_id]['replacement']]['id']
m3u += '#EXTINF:-1 tvh-epg="disable" tvh-chnum="%s" ' % channel_number
m3u += 'tvg-id="%s.movistar.tv" tvh-tags="Movistar TV|%s|%s" ' % (
channel_key, channel_quality, channel_tag)
Saludos.
Muchas gracias. Ahora ya funciona. Seguiré observando a ver si todo sigue bien y si mapean los canales correctamente.
El problema esta aqui:
El problema está en Movistar... que envía canales sin EPG y sin reemplazo... o, como en este caso, con un ID de reemplazo que no existe, de ahí la excepción.
Obviarlo no es una solución.
Me da que hay algún canal en los paquetes de fútbol (yo no los tengo) que está en pruebas y la han liado.
Estoy en ello.