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

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

Hola,

El día 5 hicieron cambios que afectaron al script, los póster de los programas cambiaron de URI y Kodi no era capaz de descargarlos. Acabo de subir a GitHub el parche que soluciona el problema. Si actualizas, asegúrate de que todos los usuarios pueden ejecutar el archivo (755), sino TVHeadend dejará de reconocer el grabber.

¿Hay alguien interesado en tener en Kodi el servicio Últimos 7 Días? De momento el addon es de uso interno, pero si hay gente interesada igual lo subo a GitHub. Eso sí, hay que tocar el código de TVHeadend para que envíe a Kodi los ID de programa y de canal de cada evento y eso implica descargar las fuentes, aplicar parches y compilar...

Ahora emiten en HD por unicast, aunque a mí me va de pena. El servidor me corta cada poco la emisión. El servicio web a veces se tira minutos sin responder. Y ésto pasa también en el deco oficial conectado al HGU... ¿soy el único?

Un saludo.
 
Re: Obtener la Lista de Canales y Programación de Movistar T

_WiLloW_ dijo:
Hola,

El día 5 hicieron cambios que afectaron al script, los póster de los programas cambiaron de URI y Kodi no era capaz de descargarlos. Acabo de subir a GitHub el parche que soluciona el problema. Si actualizas, asegúrate de que todos los usuarios pueden ejecutar el archivo (755), sino TVHeadend dejará de reconocer el grabber.
Buenas tardes _WiLloW_ , lo primero agradecer de veras el esfuerzo, trabajo y resultante script porque funciona la mar de bien, echare un vistazo al parche que comentas.

_WiLloW_ dijo:
¿Hay alguien interesado en tener en Kodi el servicio Últimos 7 Días? De momento el addon es de uso interno, pero si hay gente interesada igual lo subo a GitHub. Eso sí, hay que tocar el código de TVHeadend para que envíe a Kodi los ID de programa y de canal de cada evento y eso implica descargar las fuentes, aplicar parches y compilar...
Sería interesante echarle un vistazo, inicialmente lo probaría en una Rpi si funcionase como espero lo portaria al server.

Un saludo y lo dicho grande el trabajo :smile:
 
Re: Obtener la Lista de Canales y Programación de Movistar T

Sería interesante echarle un vistazo, inicialmente lo probaría en una Rpi si funcionase como espero lo portaria al server.
Ojo: es un addon de Kodi, se instala en los clientes... no en el servidor.

En el servidor hay que instalar una versión modificada de TVHeadend. Eso implica que el que lo quiera tiene que descargar fuentes, aplicar parches, compilar y mantener su propia rama de TVHeadend y de pvr.hts, el addon que hace de cliente de TVHeadend en Kodi, porque también hay que tocarlo.

Yo no tengo tiempo para mantener un repositorio con los cambios, tengo suficiente con el grabber, pero si alguien se anima comparto los parches.

EDIT: ya lo comenté en páginas anteriores, pero por si acaso: el addon da soporte en Kodi a los servicios "Ver desde el Inicio" y "Últimos 7 Días".

 lo primero agradecer de veras el esfuerzo, trabajo y resultante script porque funciona la mar de bien
Gracias!

Un saludo.
 
Hola a todos,
He intentado poner el grabber como dice en su pagina de github _WiLloW_ , pero como le pasa a jlazkano no se me ve en tvheadend reflejado.
Hay algun tuto paso a paso para los principiantes como yo , de como instalarlo en tvheadend y que funcione.

Cuando ejecuto
sudo -u hts tv_find_grabbers --verbose
Me sale
Investigating /usr/bin/tv_grab_es_movistartv.py
No capabilities found...

SI
sudo -u root tv_find_grabbers --verbose
Me sale
Investigating /usr/bin/tv_grab_es_movistartv.py
Found capabilities (run_capture): baseline cache

Found description (run_capture): Spain (MovistarTV)

/usr/bin/tv_grab_es_movistartv|Spain (MovistarTV)


Si ejecuto /usr/bin/tv_find_grabbers No me sale el tv_grab_es
Si lo ejecuto con sudo , si que sale
Como puedo hacer que funcione
Muchas gracias
 
Última edición:
Hola a todos.

Lo primero agradecer el tiempo y dedicación para la realización del grabber. Gran trabajo.

Por otro lado, llevo observando el grabber varias semanas, y me da muchas veces el siguiente error:


[30/08/2018 22:33:07] [INFO] ---------------------------------------------------
[30/08/2018 22:33:07] [INFO] MovistarTV EPG Grabber
[30/08/2018 22:33:07] [INFO] Parámetros: ['--tvheadend', '/home/dsi/.xmltv/MovistarTV']
[30/08/2018 22:33:07] [INFO] ---------------------------------------------------
[30/08/2018 22:33:07] [INFO] Cookie: JSESSIONID=54595BCF3A86F25B2F32327DAB46D0F4-node3; Path=/appserver/; HttpOnly
[30/08/2018 22:33:07] [INFO] tvPackages: UTX4N|UTX4S|UTX50|UTX65|UTX92
[30/08/2018 22:33:07] [INFO] Demarcation: 38
[30/08/2018 22:33:07] [INFO] Buscando el Proveedor de Servicios de Castilla la Mancha
[30/08/2018 22:33:07] [INFO] Proveedor de Servicios de Castilla la Mancha: 239.0.2.172
[30/08/2018 22:33:07] [INFO] Canales: 406
[30/08/2018 22:33:07] [INFO] Paquetes: 170
[30/08/2018 22:33:07] [INFO] Días de EPG: 8
[30/08/2018 22:33:08] [INFO] Multithread: 3 descargas simultáneas
[30/08/2018 22:33:08] [INFO] Descargando EPG_0_BIN.imagenio.es
[30/08/2018 22:33:08] [INFO] Descargando EPG_1_BIN.imagenio.es
[30/08/2018 22:33:08] [INFO] Descargando EPG_2_BIN.imagenio.es
[30/08/2018 22:33:45] [INFO] Descargando EPG_3_BIN.imagenio.es
[30/08/2018 22:33:48] [INFO] Descargando EPG_4_BIN.imagenio.es
[30/08/2018 22:33:48] [INFO] Descargando EPG_5_BIN.imagenio.es
[30/08/2018 22:33:48] [ERROR] Error al descargar los archivos XML: timed out
[30/08/2018 22:33:48] [INFO] Descargando EPG_6_BIN.imagenio.es
[30/08/2018 22:33:51] [ERROR] Error al descargar los archivos XML: timed out
[30/08/2018 22:33:51] [INFO] Descargando EPG_7_BIN.imagenio.es
[30/08/2018 22:33:51] [ERROR] Error al descargar los archivos XML: timed out
[30/08/2018 22:33:54] [ERROR] Error al descargar los archivos XML: timed out
[30/08/2018 22:34:17] [CRITICAL] 'NoneType' object has no attribute 'keys'
Traceback (most recent call last):
File "/usr/bin/tv_grab_es_movistartv", line 1182, in <module>
epg = iptv.get_epg()
File "/usr/bin/tv_grab_es_movistartv", line 777, in get_epg
return self.__parse_bin_epg()
File "/usr/bin/tv_grab_es_movistartv", line 883, in __parse_bin_epg
for ch_id in epg_day.keys():
AttributeError: 'NoneType' object has no attribute 'keys'


Sucede lo mismo si lo lanzo a mano desde TVHeadend, pinchando en opción Volver a ejecutar los capturadores de EPG internos. Tengo que intentarlo varias veces, hasta que al final lo coge.

Pero claro, ya tengo que estar pendiente de lanzarlo yo, en vez de dejarlo estar. No sé si hay una solución a esto, o es tema de la infrastructura de Movistar.

Un saludo
 
He actualizado el grabber:

Los iconos de los canales ya se ven, pero hay que ir a la interfaz web de TVHeadend para borrar todos los canales y volver a mapearlos desde los servicios. He añadido una sección al README.md de solución de problemas en el que explico cómo hacerlo. Se tarda menos de dos minutos...

Además de añadir la sección de solución de problemas al README.md he arreglado las capturas de pantalla y sobretodo, he reescrito la integración con TVHeadend para evitar problemas de permisos.

Si actualizáis, no os olvidéis de volver a cambiar los permisos y si tenéis problemas, también el propietario.

https://github.com/MovistarTV/tv_grab_es_movistartv

Sucede lo mismo si lo lanzo a mano desde TVHeadend, pinchando en opción Volver a ejecutar los capturadores de EPG internos. Tengo que intentarlo varias veces, hasta que al final lo coge.

Pero claro, ya tengo que estar pendiente de lanzarlo yo, en vez de dejarlo estar. No sé si hay una solución a esto, o es tema de la infrastructura de Movistar.
La descarga de la guía básica que viene por Multicast es multihilo, se conecta a varias IP simultáneamente para agilizar el tiempo de ejecución del grabber. Por defecto hay tres hilos (tres conexiones a tres IP diferentes) porque con cuatro muchas veces me daban los mismos timeouts que te están dando a tí...

Parece ser que en tu caso tres es demasiado... prueba a bajarlo a dos.

Edita el grabber y busca la línea:
Código:
threads = 3
Cámbiala por:
Código:
threads = 2
Si sigues teniendo problemas desactiva el multihilo.

Busca la línea:
Código:
use_multithread = True
Y cámbiala por:
Código:
use_multithread = False
Va a tardar unos tres minutos más pero al menos deberías poder olvidarte de la guía... Si incluso con el multihilo desactivado sigue dando timeouts comprueba tu red.

Un saludo.
 
... ¿Hay alguien interesado en tener en Kodi el servicio Últimos 7 Días? De momento el addon es de uso interno, pero si hay gente interesada igual lo subo a GitHub. Eso sí, hay que tocar el código de TVHeadend para que envíe a Kodi los ID de programa y de canal de cada evento y eso implica descargar las fuentes, aplicar parches y compilar...
Hola, sí yo estaría interesado en leerlo.

Retomé el tema hace dos semanas y ya sé cómo ver los u7d en kodi sin necesidad de parches, es muy sencillo, he modificado el módulo pvr.iptvsimple para ver las grabaciones y los u7d, que para el caso es lo mismo. Eso sí aún me queda mucho, sobre todo aprender sobre c++, hilos y kodi ...

He actualizado el grabber: ... Los iconos de los canales ya se ven..
He echado un vistazo al código y veo que algunas cosas a fuego en el código, deberías intentar usar las configuraciones que proporciona el servidor, por ejemplo:

Código:
curl --silent http://www-60.svc.imagenio.telefonica.net:2001/appserver/mvtv.do?action=getConfigurationParams | jq '.resultData.tvChannelLogoPath'
"incoming/epg/channelLogo/"
quizás lo diga por esto
 
Hola, sí yo estaría interesado en leerlo.
Lo preparo y lo subo, que además de lo de Movistar hay cosas de la época de Telecable y llevo tiempo sin actualizar, no sé si se llevará bien con la rama master actual. A ver el fin de semana...

Retomé el tema hace dos semanas y ya sé cómo ver los u7d en kodi sin necesidad de parches, es muy sencillo, he modificado el módulo pvr.iptvsimple para ver las grabaciones y los u7d, que para el caso es lo mismo. Eso sí aún me queda mucho, sobre todo aprender sobre c++, hilos y kodi ...
Pero no tiras de TVHeadend, ¿no? El problema en mi caso es que TVH es obligatorio.

Lo que hice fue un addon que implementa el protocolo RTSP. Los clientes no leen la guía multicast directamente de Internet sino que leen una copia de la que recibe Kodi de TVHeadend y que almacena en una base de datos SQLite en el perfil de usuario. Insisto, en mi caso TVH es obligatorio y tener a los clientes -unos cuantos- leyendo cada pocas horas como locos toda la guía es una tontería si sólo hacen falta el CID y el PID y me lo puede enviar TVH de la que envía la guia a Kodi...

Como nadie utiliza el campo originalTitle (ni el skin por defecto de Kodi ni TVH) aproveché el formato XMLTV y metí ahí a huevo (ésto sí) los ID de canal y de programa:
XML:
<original-title>2543|47058626</original-title>
El grabber genera los pogramas así:
XML:
<programme channel="1611.movistar.tv" start="20180909051300 +0200" stop="20180909055600 +0200">
  <title lang="es">Suits</title>
  <sub-title lang="es">2x09 Asterisco</sub-title>
  <desc lang="es">Harvey le pide a Donna que regrese al bufete, a lo que ella accede. Entre tanto, ha llegado el momento del reparto de los bonos en la oficina.</desc>
  <date>
      <year>2012</year>
  </date>
  <episode-num system="xmltv_ns">1.8.</episode-num>
  <credits>
      <actor>Gina Torres, Gabriel Macht, Patrick J. Adams, David Costabile</actor>
  </credits>
  <icon src="http://www-60.svc.imagenio.telefonica.net:2001/appclientv/nux/incoming/epg/covers/programmeImages/portrait/290x429/4705/47059165.jpg" />
  <original-title>1611|47059165</original-title>
  <rating system="pl">
    <value>12</value>
  </rating>
  <category lang="en">Show / Game show</category>
  <category lang="en">Variety show</category>
</programme>
Pero eso implicó tocar el cliente pvr.hts para que procesase las etiquetas nuevas.

No sé si ya lo habrán implementado, pero el grabber también genera el año y los créditos (directores, actores y guionistas) y lo tengo parcheado para que se vean en Kodi, además del género y las carátulas de las grabaciones. Haré un commit con todos los cambios para que puedas descargar el parche y coger de ahí lo que quieras...

Un par de dudas: ¿tú también tuviste que implementar el protocolo RTSP? ¿Tienes acceso a los controles play, pausa, avanzar y retroceder sin tocar el skin? ¿Y desde el mando a distancia? ¿Puedes interceptar y gestionar tú los controles multimedia?

Aún estoy lidiando con el skin para que funcione perfecto avanzar y retroceder, por eso no metí categorías (por días o géneros) ni la lista de todas las emisiones de un programa concreto (una película o el capítulo de una serie, por ejemplo) más allá de películas y series. Ahora mismo está así:





Y ver desde el inicio:



He echado un vistazo al código y veo que algunas cosas a fuego en el código, deberías intentar usar las configuraciones que proporciona el servidor, por ejemplo:
Código:
curl --silent http://www-60.svc.imagenio.telefonica.net:2001/appserver/mvtv.do?action=getConfigurationParams | jq '.resultData.tvChannelLogoPath'
"incoming/epg/channelLogo/"
quizás lo diga por esto
No, no... lo coge todo de la configuración del operador excepto este trozo de los pósters de los programas que no encontré por ninguna parte:
Python:
portrait/290x429/
Fíjate que las partes metidas a huevo están todas en el cuerpo de una excepción:
Python:
except:
    logger.error('Usando los parámetros de configuración por defecto')
    return {
        'tvChannelLogoPath': 'incoming/epg/channelLogo/',
        'tvCoversPath': 'incoming/covers/programmeImages/',
        'landscapeSubPath': 'landscape/',
        'bigSubpath': 'big/'
Si todo revienta o se cae el Servicio Web y no hay forma de descargar la configuración, pero sí hay guía multicast, teniendo esos parámetros por defecto se puede generar una guía básica, sin descripciones ni carátulas, pero una guía al fin y al cabo... y sin complicarse demasiado la vida...
Python:
logger.error('Usando los parámetros de configuración por defecto')
Se dejaron de ver los iconos de los canales porque no se regeneraron las cachés del grabber ni de TVHeadend y aunque había URIs nuevas a Kodi le seguían llegando las antiguas...

Un saludo.
 
Mil gracias, estudiar nunca está de más.

... TVH es obligatorio...
NUNCA algo es imprescindibe, todos y todo somos prescindibles, la evolución creo que funciona así. ;-P


... Lo que hice fue un addon que implementa el protocolo RTSP...
Es lo que toca, por desgracia hay un par de cosas que son muy particulares y los reproductores no lo soportan, el transporte y el engaño del tamaño del contenido, en mi humilde opinión, lo segundo es torpeza no intencionado.

...Los clientes no leen la guía multicast directamente de Internet...
de internet no creo, si fuese así ¿cuál sería el problema? y aún siendo así ¿cuál es el problema?

... sino que leen una copia de la que recibe Kodi de TVHeadend y que almacena en una base de datos SQLite...
eso me interesa.
Desde hace algún tiempo estoy usando una base de datos en sqlite para almacenar la información de SDS, toda la información de epg quizás no me parezca interesante guardarla, pero me interesa leerlo y ver su rendimiento.

...Insisto, en mi caso TVH es obligatorio...
recuerda, evolución ... :p

... y tener a los clientes -unos cuantos-...
cñ, ¿cuántos tienes? :eek:, yo sólo tengo tres o cuatro y no se suelen encender al mismo tiempo, como mucho dos a la vez.

... Como nadie utiliza el campo originalTitle (ni el skin por defecto de Kodi ni TVH) aproveché el formato XMLTV y metí ahí a huevo (ésto sí) los ID de canal y de programa...
Yo he hecho algo similar, he añadido, de momento, un campo que se llama product-id :rolleyes:, la identidad de canal, o serviceid, ya está en la identidad de canal :p.
Pero eso es transitorio, hasta que termine el trabajo o lo abandone, quién sabe.
Si lo termino no será necesario el fichero xmltv, y sino, pues tampoco.

... No sé si ya lo habrán implementado, pero el grabber también genera el año y los créditos (directores, actores y guionistas)...
Por lo menos en lo que se ve, defectuosamente hablando, creo que no, yo también lo hice, pero la piel creo que no lo trata. Trabajo de futuro ...

... y lo tengo parcheado para que se vean en Kodi, además del género y las carátulas de las grabaciones. Haré un commit con todos los cambios para que puedas descargar el parche y coger de ahí lo que quieras...
lascivo me tinenes, aquí iría un emoticono que demostrase lo que he dicho, pero no lo existe, al menos aquí.

... Un par de dudas: ¿tú también tuviste que implementar el protocolo RTSP?...
Parece que ya entramos en materia y dejamos la satisfacción superficial :p
Sí, claro, imprescindible, ... interminable.
Lo he implementado tres veces chapuceramente, una en perl, otra en c++ y otra en c usando la biblioteca de curl.

... ¿Tienes acceso a los controles play, pausa, avanzar y retroceder sin tocar el skin? ¿Y desde el mando a distancia? ¿Puedes interceptar y gestionar tú los controles multimedia?...
No, aún no he llegado a eso, como ya dije, he retomado el tema hace un par de semanas, ya quizás tres, la última semana de agosto.
Es muy, muy complicado abordar un tema como este con unas pocas horas al día un par de semanas al año :x

... Aún estoy lidiando ...
Parece que has incluído las películas de los últimos siete días en la biblioteca de kodi, me parece buena idea, pero ¿y lo demás?.
Usando la guía se puede reproducir lo que quieras, pero aún no he encontrado solución a los problemas que tengo.


... No, no... lo coge todo de la configuración del operador excepto este trozo de los pósters de los programas que no encontré por ninguna parte...
Culpa mía por no leer todo el código y criticar sin base, mil disculpas.

dos
 
Joe, hacía un año que no actualizaba y vaya que si han tocado el código...

Han metido los créditos (actores, directores y guionistas), el año, el género en las grabaciones (aunque sólo parcialmente, TVHeadend no envía el subgénero), categorías (sustituyen al género), keywords... y han reescrito buena parte de los objetos que gestionan la EPG y el grabber XMLTV (la estructura epg_episode_t ya no existe) así que he tenido que adaptarlo todo...

lascivo me tinenes, aquí iría un emoticono que demostrase lo que he dicho, pero no lo existe, al menos aquí.
Pues aquí lo tienes:

https://github.com/MovistarTV/tvheadend
https://github.com/MovistarTV/pvr.hts

Incluye pósters de las grabaciones y el género completo (con subgénero), actores, directores, escritores, el año y soporte para la etiqueta XMLTV <original-title></original-title> (se procesa como una cadena de caracteres, no se muestra en Kodi, está incluida en la API de TVHeadend y es accesible junto al resto de parámetros de la EPG desde Python y C++, perfecta para pasar datos desde la guía XML a Kodi) y hay versiones tanto para Krypton (v17) como para Leia (v18 ).

También te he dejado una rama con los parches originales que lo incluyen todo, desde la matriz de géneros ampliada con los extras de Telecable hasta Wake On LAN en pvr.hts (hace años suspendía el antiguo servidor y necesitaba que el cliente lo despertase)

Parche de TVHeadend:
https://github.com/MovistarTV/tvheadend/commit/48ed290b668c69f231ffb0cb067f8fa7733a565f

Parches de pvr.hts para Krypton:
https://github.com/MovistarTV/pvr.hts/commits/Krypton

Parche de pvr.hts para Leia:
https://github.com/MovistarTV/pvr.hts/commit/254f2fa5d9ab19c38e51da16a898c020d746672f

Hay dos parches para Krypton: el que añade los créditos (de la versión de Leia) y el que añade los póster a las grabaciones, el género y la etiqueta original-title. Y aquí están los parches originales con todo:

TVHeadend 4.3-344 (rama tvh43_old, del 15/08/2017):
https://github.com/MovistarTV/tvheadend/commit/444368cf30a07b3aa1e15ff79fb96589bbcdca2e

pvr.hts 3.4.23 (rama Krypton_old, del 27/08/2017):
https://github.com/MovistarTV/pvr.hts/commit/e63ce8ab75910b3543b749742fc833085bf2f03d

Y un par de capturas:



NUNCA algo es imprescindibe, todos y todo somos prescindibles, la evolución creo que funciona así. ;-P
Teniendo en cuenta que tengo varias fuentes de entrada, que necesito las grabaciones centralizadas, que no quiero nubes y que valoro mucho la estabilidad y el rendimiento... es obligatorio.

de internet no creo, si fuese así ¿cuál sería el problema? y aún siendo así ¿cuál es el problema?
Bueno, de la Intranet de Telefónica... pero estamos en las mismas. En el caso de "Ver desde el Inicio" el problema es que si lo usas con TVHeadend de servidor corres el riesgo de que la información que sacas de la EPG de Kodi no coincida con la que obtienes del cliente (si uno la descarga horas más tarde y consigue una copia más actualizada estás jodido)

En cuanto al rendimiento: al no tener un servidor gestionando la guía, hay casos en los que te puedes tirar minutos esperando a que el cliente la descargue...

eso me interesa.
Desde hace algún tiempo estoy usando una base de datos en sqlite para almacenar la información de SDS, toda la información de epg quizás no me parezca interesante guardarla, pero me interesa leerlo y ver su rendimiento.
Está en ~/.kodi/userdata/Database/Epg11.db:



Al instalar el addon hace una copia de la base de datos, añade las tablas que necesita y un servicio se dedica a actualizarla cada cierto tiempo y al arrancar Kodi:
Código:
01:10:31.311 T:140132971706112  NOTICE: [MovistarU7D] Service: started
01:10:31.311 T:140132971706112  NOTICE: [MovistarU7D] Service: db init
01:10:31.491 T:140132971706112  NOTICE: [MovistarU7D] Service: db update
01:10:31.584 T:140132971706112  NOTICE: [MovistarU7D] Database: updating
01:10:31.697 T:140132971706112  NOTICE: [MovistarU7D] Database: cleaning
Este es el código que inicializa la base de datos y la actualiza:
Python:
def initialize():
    if not os.path.exists(u7d_db_dir):
        kodi.log('Database: create db')
        os.makedirs(u7d_db_dir, 0755)
        shutil.copy(u7d_db_kodi, u7d_db_file)
    db = sqlite.connect(u7d_db_file)
    db.row_factory = sqlite.Row
    cursor = db.cursor()
    cursor.execute(
        'CREATE TABLE '
        'IF NOT EXISTS webservice ('
        ' id INTEGER PRIMARY KEY,'
        ' cookie TEXT NOT NULL)')
    cursor.execute(
        'CREATE TABLE '
        'IF NOT EXISTS u7d ('
        ' program_id INTEGER PRIMARY KEY NOT NULL,'
        ' channel_id INTEGER NOT NULL,'
        ' resume TEXT NOT NULL,'
        ' tstamp INTEGER NOT NULL)')
    cursor.execute(
        'CREATE INDEX '
        'IF NOT EXISTS idx_channel_id '
        'ON u7d (channel_id)')
    db.commit()
    db.close()


def update_db():
    progress_bar = xbmcgui.DialogProgressBG()
    progress_bar.create('Sincronizando EPG', 'Movistar 7 Últimos Días')
    db = sqlite.connect(u7d_db_file)
    db.row_factory = sqlite.Row
    try:
        progress_bar.update(25)
        cursor = db.cursor()
        cursor.execute('ATTACH DATABASE ? AS kodi', (u7d_db_kodi,))
        kodi.log('Database: updating')
        cursor.execute(
            'REPLACE INTO epg (idEpg, sName, sScraperName) '
            'SELECT idEpg, sName, sScraperName '
            'FROM kodi.epg')
        progress_bar.update(50)
        cursor.execute(
            'REPLACE INTO epgtags (idBroadcast, iBroadcastUid, idEpg, sTitle, sPlotOutline, sPlot, sOriginalTitle, sCast, sDirector, sWriter, iYear, sIMDBNumber, sIconPath, iStartTime, iEndTime, iGenreType, iGenreSubType, sGenre, iFirstAired, iParentalRating, iStarRating, bNotify, iSeriesId, iEpisodeId, iEpisodePart, sEpisodeName, iFlags) '
            'SELECT idBroadcast, iBroadcastUid, idEpg, sTitle, sPlotOutline, sPlot, sOriginalTitle, sCast, sDirector, sWriter, iYear, sIMDBNumber, sIconPath, iStartTime, iEndTime, iGenreType, iGenreSubType, sGenre, iFirstAired, iParentalRating, iStarRating, bNotify, iSeriesId, iEpisodeId, iEpisodePart, sEpisodeName, iFlags '
            'FROM kodi.epgtags')
        progress_bar.update(75)
        cursor.execute('DETACH DATABASE \'kodi\'')
        kodi.log('Database: cleaning')
        time_limit = time.time() - 648000  # 7 días y 12 horas
        cursor.execute(
            'DELETE FROM epgtags '
            'WHERE iStartTime < ?', (time_limit,))
        progress_bar.update(100)
        cursor.execute(
            'DELETE FROM u7d '
            'WHERE tstamp < ?', (time_limit,))
        db.commit()
    except Exception, ex:
        kodi.log('Database: exception -> %s' % ex)
    finally:
        db.close()
        progress_bar.close()
Luego tiro de ahí para sacar las películas, las series y el resto de la información...

cñ, ¿cuántos tienes? :eek:, yo sólo tengo tres o cuatro y no se suelen encender al mismo tiempo, como mucho dos a la vez.
Tres permanentes, otros dos que se conectan de vez en cuando y los móviles.

Parece que has incluído las películas de los últimos siete días en la biblioteca de kodi, me parece buena idea, pero ¿y lo demás?.
Usando la guía se puede reproducir lo que quieras, pero aún no he encontrado solución a los problemas que tengo.
No, no... no está en la biblioteca. Es sólo una vista que se genera dinámicamente, la misma que usa la biblioteca pero no almaceno ahí los datos. Esa información está sacada directamente de la base datos de la EPG.

¿Qué problemas tienes?

Un saludo.
 
Última edición:
He actualizado el grabber.

Genera los créditos adaptados a los cambios en TVHeadend (he añadido un parámetro max_credits para limitar el número de actores y directores) y genera keywords a partir de los géneros de Movistar.

Un saludo.
 
Acaban de meter las imágenes de las grabaciones en pvr.hts (sólo para Leia):

https://github.com/kodi-pvr/pvr.hts/commit/8b66ec3d80527f8803ba3b8db4abb34a18cfde54

Pero en vez de meterlas en strIconPath las han metido en strThumbnailPath y aún no sé cual tiene preferencia, si el icono (logo del canal) o la miniatura (póster de la grabación). Estoy mirando las fuentes de Kodi...

EDIT: Pues sí... y no es que tenga preferencia, es que es la forma correcta de hacerlo:
C++:
// Use the channel icon as a fallback when a thumbnail is not available
pFileItem->SetArtFallback("thumb", "icon");
Un saludo.
 
Última edición:
Muchas gracias por este grabber.
Está funcionando en una Raspberry Pi 3 junto con nginx para distribuir los archivos .m3u y .xml, y udpxy en el router (Ubiquity ER-X).
Va perfecto con TVirl en una tele Sony Bravia con Android TV.

Saludos!
 
Hola, sí yo estaría interesado en leerlo.

Retomé el tema hace dos semanas y ya sé cómo ver los u7d en kodi sin necesidad de parches, es muy sencillo, he modificado el módulo pvr.iptvsimple para ver las grabaciones y los u7d, que para el caso es lo mismo. Eso sí aún me queda mucho, sobre todo aprender sobre c++, hilos y kodi ...
Buenas,

Alguno tiene algo de código publicado sobre los últimos 7 días?

Tengo mi propio set de utilidades para Movistar aquí https://github.com/juanmasg/movigo , just for fun y para uso personal, y me faltaría este tema. Con una URL que me podáis decir que me sirva como entry point, ya me iría bien :)

Gracias!
 
Alguno tiene algo de código publicado sobre los últimos 7 días?
Código no, pero tienes toda la información a partir de aquí.

Muchas gracias por este grabber.
Está funcionando en una Raspberry Pi 3 junto con nginx para distribuir los archivos .m3u y .xml, y udpxy en el router (Ubiquity ER-X).
Va perfecto con TVirl en una tele Sony Bravia con Android TV.
(y)
 
Muchas gracias por publicar el código, algo aprenderé. Por el momento la caberera me parece algo compleja y más oriendatada a fuentes no tan flexibles como la televisión por ip. Seguramente le daré una oportunidad si termino lo que tengo entre manos.

...¿Tienes acceso a los controles play, pausa, avanzar y retroceder sin tocar el skin?...
Tengo acceso a los controles de play, pausa, stop e inicio, los de avanzar y retroceder no aparecen, aunque funciona la barra de desplazamiento y los botones de izquierda y derecha. No he tocado nada en kodi.


... ¿Qué problemas tienes?
El problema que aún no tengo claro cómo salvar es la reproducción de un canal en vivo y usar la pausa, ver desde el inicio o usar el retroceso. Aunque aún no he empezado con el avance y retroceso a mayor velocidad.

He implementado la reproducción en directo y grabaciones con OpenLiveStream, OpenRecordedStream y sus respectivas funciones de lectura, búsqueda y tiempos, pero creo que estas están obsoletas desde v18 y se debe implementar por inputstream, corrígeme si me equivoco. Además la única forma que he visto para reproduccir los últimos siete días es usando esa interfaz, por lo tanto también la he implementado.
Al tener el vídeo y la gestión separadas no veo cómo solventar ese problema puesto que necesito gestión para obtener la url de rtsp. He pensado en obtenerla en el momento de cambio de canal y pasarla al inputstream, pero creo que es mucho ruido sobre todo cuando cambias rápido de canal.
 
Hoy al intentar actualizar la guía me ha salido este error y no he tocado en la configuración...

Código:
[20/09/2018 16:32:00] [INFO] Generando la guía XMLTV: descargando info extendida
[20/09/2018 16:32:00] [CRITICAL] UTXAT
Traceback (most recent call last):
  File "/usr/bin/tv_grab_es_movistartv", line 1198, in <module>
    epg_x = xmltv.generate_xml(epg)
  File "/usr/bin/tv_grab_es_movistartv", line 910, in generate_xml
    services = self.__get_client_channels()
  File "/usr/bin/tv_grab_es_movistartv", line 1046, in __get_client_channels
    services.update(self.__packages[package]['services'])
KeyError: u'UTXAT'
EDIT:

Si lanzo el script desde tvheadend el error que veo es:

Código:
2018-09-20 17:54:27.573 spawn: Executing "/usr/bin/tv_grab_es_movistartv"
2018-09-20 17:54:28.036 spawn: Traceback (most recent call last):
2018-09-20 17:54:28.036 spawn:   File "/usr/bin/tv_grab_es_movistartv", line 1220, in
2018-09-20 17:54:28.036 spawn:     print u'Excepción:\n\n\t %s\n\nTraceback:\n\n\t%s' % (e.message, traceback.format_exc())
2018-09-20 17:54:28.036 spawn: UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 7: ordinal not in range(128)
2018-09-20 17:54:28.093 xmltv: /usr/bin/tv_grab_es_movistartv: no output detected
2018-09-20 17:54:28.093 xmltv: /usr/bin/tv_grab_es_movistartv: grab returned no data
 
Última edición:
Arriba