miércoles, febrero 03, 2010

tvtime + xmltv + tv_grab_ar.py

En lo que ha sido del año pasado he dedicado poco tiempo a la TV, tras advertir como se viene abajo la calidad de la programación (o como cada vez uno se pone más exquisito), me da menos ímpetu. Veo la "caja boba" por la PC, como todo el que quiere ahorrar espacio, mediante una pequeña y económica placa sintonizadora (Encore ENLTV-FM) que funciona muy bien en Linux, incluso con control remoto.

Tratando de encontrar alguna emisión como la gente por el canal de cable, hace unos meses me dediqué a hacer funcionar la información en pantalla de tvtime. Básicamente, tvtime obtiene la información de programación a partir de un archivo con formato estándar XMLTV, por lo que del lado del software de visualización está todo hecho, lo que falta es conseguir una fuente desde la cual obtener la información y entregársela de la forma adecuada (es decir, generar el archivo XML).

De eso se encargan los scripts del paquete xmltv-util. En particular, el script tv_grab_ar toma la información de mi proveedor de cable en argentina, amasa los datos y escupe un xml que se puede pasar directo a tvtime. Lamentablemente no logré hacer funcionar la versión 1.6 de tv_grab_ar tal cual viene en el paquete, y tras varios minutos haciendo debugging sobre las líneas decidí dejar de descifrar perl y comenzar a escribir un nuevo script en python.

Las primeras versiones fueron bastante sencillas, la librería BeautifulSoup lxml (BeautifulSoup ya no funciona correctamente) facilita mucho nadar en el HTML del sitio web de MC. En versiones siguientes añadí la posibilidad de descargar la reseña de cada programa de TV, una funcionalidad que según creo no estaba en el paquete original.

Básicamente los pasos son: obtener la grilla de programación de la semana actual para cada canal, y luego para cada programa obtener el título, horario, descripción, género, etc. Como la descarga de descripciones es muy tediosa y lenta (es como mínimo una petición HTTP por programa) y como muchas veces los programas se repiten (en la misma semana o entre semanas) aproveché el módulo pickle para almacenar el diccionario de emisiones entre invocaciones al script, agilizando de esta manera la actualización de los datos.

Finalmente terminé con este script que dejo en el blog por si a alguien le sirve. Las capturas de pantalla son un indicio de como tvtime presenta la información. Como siempre, cualquier consulta, sugerencia, crítica o mejora es bienvenida.

Descarga: tv_grab_ar.py [ver. 2015.03.02-1]

Últimos cambios: Fix sutil por problemas en la codificación de los títulos. Reincorporación del caché y de la descarga de descripciones de los shows. Sean pacientes pues la descarga ahora demora bastante más tiempo que antes. Si quieren la programación rápidamente, aunque no tenga las descripciones, usen --skip-descriptions. Como no tengo forma de probarlo localmente, Please Test & Give Feedback!



Instalación:
  1. Descargar tv_grab_ar.py y mover el archivo al directorio de tvtime:
    mv tv_grab_ar.py ~/.tvtime/tv_grab_ar.py

  2. Instalar la librería beautifulsoup:
    apt-get install python-beautifulsoup

  3. Instalar la librería python lxml:
    apt-get install python-lxml

  4. Ejecutar:
    ./tv_grab_ar.py --configure
    e indicar la zona y los canales para los cuales se desea obtener la información. El valor de zona determina la grilla de canales según la localidad.

  5. Ejecutar:
    ./tv_grab_ar.py --verbose --output=programacion.xml
    para obtener la programación y las descripciones de los programas. Este proceso demora varios minutos, sean pacientes.

  6. Iniciar tvtime e indicar que obtenga la programación desde el archivo:
    tvtime --xmltv=programacion.xml
Para finalizar, lo ideal es colocar en el cron de usuario una entrada para ejecutar la actualización al menos una vez por semana.



usage: tv_grab_ar.py [-h] [--days N] [--offset N] [--skip-descriptions]
                     [--output FILE] [--configure] [--config-file FILE]
                     [--quiet] [--verbose] [--list-channels] [--zone N]
                     [--capabilities] [--describe] [--description]
                     [--cache FILE] [--version]

Get Argentinian television listings in XMLTV format

optional arguments:
  -h, --help           show this help message and exit
  --days N             Grab N days. The default is 3.
  --offset N           Start N days in the future. The default is to start
                       from today.
  --skip-descriptions  Do not download program descriptions.
  --output FILE        Write to FILE rather than standard output.
  --configure          Prompt for which channels and write the configuration
                       file.
  --config-file FILE   Set the name of the configuration file, the default is
                       </home/maurom/.xmltv/tv_grab_ar.conf>. This is the file
                       written by --configure and read when grabbing.
  --quiet              Suppress the progress messages normally written to
                       standard error. [not implemented]
  --verbose            Display additional information.
  --list-channels      Display only the channel listing.
  --zone N             Override user location for retrieval of channels.
  --capabilities       Show which capabilities the grabber supports. For more
                       information, see
                       <http://wiki.xmltv.org/index.php/XmltvCapabilities>
  --describe           Show a brief description of the grabber.
  --description        Show a brief description of the grabber.
  --cache FILE         Cache description data in FILE. The default is 
                       </home/maurom/.xmltv/tv_grab_ar.db>.
  --version            show program's version number and exit

134 comentarios:

FaberfoX dijo...

Hola, te esta funcionando actualmente el script? estoy probandolo tratando de reemplazar el nativo de xmltv_util que hace un tiempo que no anda, pero me encuentra 0 canales.

Mauro Meloni dijo...

De momento sí, aunque a veces el sitio desde el cual se toma la programación está caído.

La configuración te lista los canales? Si es así, hay que escribir all para que tome la programación de todos. Por ej.

./tv_grab_ar.py --configure
add channel 44 - Boomerang (id 1) [yes, no, all, none] ? all
...

FaberfoX dijo...

Gracias Mauro, te digo la verdad, probe de nuevo el de xmltv-util y ahora esta andando. Estoy como loco tratando de hacer andar asterisk, en cuanto tenga un rato me pongo a probar el tuyo de nuevo, me gusta mucho mas python que perl ;)

nachokb dijo...

¿alguien conoce forma de obtener la data para Telecentro?

me parece que online no tienen nada...

-- nachokb

Mauro Meloni dijo...

@nachokb: No tengo idea, pero se me ocurre que podés utilizar tv_grab_dtv_ar y mapear los canales a Telecentro como hacen en este post.

FaberfoX dijo...

Te molesto de nuevo, al dia de hoy te anda? sobre que plataforma estas?
En un ubuntu 10.04 recien instalado, --configure devuelve un 'Finished configuration.' sin nada mas.
python 2.6.5, beautifulsoup 3.1.0.1

En este momento buscadorcablevision.com.ar esta andando, y por lo visto el tv_grab_ar de xmltv-util no anda desde el 22/4 (http://www.xmltv.se/validator/nightly/)

Mauro Meloni dijo...

FaberfoX, comprueba que estés utilizando la última versión (2010.04.27-1), ya que el sitio web desde el cual se toma la programación está cambiando constantemente. En todo caso ejecuta el script mediante

./tv_grab_ar.py --configure --verbose

para que se desplieguen las operaciones que va efectuando.

FaberfoX dijo...

faber@T61U:~/Downloads$ ./tv_grab_ar.py --configure --verbose
tv_grab_ar.py 2010.04.27-1

Retrieving /index.php?template=main_grilla_semanal.tpl ...
Found 0 channels online.
Finished configuration.


Por lo visto lo que no esta andando es la captura del cookie, no te pasa eso a vos?

Mauro Meloni dijo...

Buen punto, FaberfoX. He subido una versión actualizada que genera la cookie, en vez de obtenerla desde el sitio web. Puede que con eso funcione.

Saludos,

Mariano dijo...

Hola, te pasaste con el script, anda perfecto!! Te quería consultar si es posible tomar la grilla de canales de otra localidad que no sea Capital, en mi caso la de Cipolletti o Gral Roca, ya que varios canales están en distinto lugar.

Saludos!

Mauro Meloni dijo...

Que tal, Mariano. Muy buen aporte el tuyo. Estoy publicando una nueva versión del script con cambio de zona. Cuando ejecutes el script agregale el parámetro --zone=NN. Donde NN es el código zona que corresponde a tu localidad, para lo cual podes fijarte en el listado de zonas. Si te funciona ok, publico los cambios como nota en el blog. Saludos!

Mariano dijo...

Hola Mauro, ya probé el script con la modificación y anda perfecto!! Así que publica tranquilo en la entrada, porque le va a servir a mucha gente del interior.
Saludos y gracias!!

Unknown dijo...

Muchisimas gracias! me anda bien, pero hay que decir que para que me ande tuve que instalar varias cosas, las cuales no se si son obligatorias como tvtime (yo uso mythtv) y xmltv. Ademas tuve que primero configurar el tv_grab_ar de xmltv para que me cree el archivo tv_grab_ar.conf sino tampoco andaba. Te felicito!!

FaberfoX dijo...

Mauro, sos un capo, estuve sin darle bola un tiempo y hace una semana instale la nueva version de tu script.
Anda perfecto, la unica sugerencia ya que no uso tvtime sino mythtv, seria que si no existe .tvtime intente crearlo, o bien (no se si no rompe alguna regla) crear el fichas.db en .xmltv que si o si tiene que existir.

Gracias, un abrazo.

Mariano dijo...

FGSofia/FaberfoX les hago una pregunta, que placa sintonizadora tienen?? Porque estoy tratando de hacer andar mythtv, y el muy turro no me sintoniza ningun canal. Con tvtime anda todo perfecto, pero queria probar mythtv por los añadidos que tiene. Gracias!

FaberfoX dijo...

Yo tengo una hauppauge pvr250, salio cara en su momento pero nunca un drama, encodea por hardware con lo cual casi no usa cpu.

Unknown dijo...

Las hauppauge son un fierro, pero dificiles de conseguir y ojo que si son de afuera generalmente son ntsc. Yo la verdad me compre 2 placas baratas, una encore y otra kworld, cada una rondaba los 25/30usd y me costo ponerlas al principio porque uso debian estable y no las reconocia de una, al final como estaba armando solo un centro multimedia puse mythbuntu, que tiene el ultimo kernel, etc y andan bien. Si la pc es principalmente de escritorio te recomiendo tvtime que es ligero y facil, si es un centro multimedia dedicado te recomiendo mythtv, mas pesado pero con mas opciones, mas amigable al control remoto, etc.

FaberfoX dijo...

Agrego un poco mas de info para Mariano:

Al igual que FGSofia estoy corriendo (por ahora) mythbuntu pero solo el backend, de frontend uso xbmc que tiene soporte de mythtv nativo hace rato.
XBMC con myth no es lo ideal ya que no permite muchas cosas que si permite mythfrontend, pero es a mi gusto mucho mas funcional para un media center y la realidad es que mucha mucha tele no veo.

Unknown dijo...

Gente a veces me anda bien y a veces me tira error:
¿es problema del sitio o mio?

Traceback (most recent call last):
File "./tv_grab_ar.py", line 645, in
app.grab()
File "./tv_grab_ar.py", line 572, in grab
programs += self.retrieve_grid(channel, date.today())
File "./tv_grab_ar.py", line 372, in retrieve_grid
body = html.parse(self.opener.open(self.base_url + url))
File "/usr/lib/python2.6/urllib2.py", line 391, in open
response = self._open(req, data)
File "/usr/lib/python2.6/urllib2.py", line 409, in _open
'_open', req)
File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
result = func(*args)
File "/usr/lib/python2.6/urllib2.py", line 1170, in http_open
return self.do_open(httplib.HTTPConnection, req)
File "/usr/lib/python2.6/urllib2.py", line 1145, in do_open
raise URLError(err)
urllib2.URLError:

Mariano dijo...

Gracias por responder! Ya pude hacer andar Mythtv, y estoy configurando los programas y canales...Hay alguna forma de usar el xml que genera el tv_grab_ar.py para importarlo directamente a Mythtv?? o hay que hacerlo medio a mano...Saludos!!

Unknown dijo...

Si el archivo que generaste es salida.xml podes cargarlo manualmente con "mythfilldatabase --file 1 salida.xml" aunque obviamente lo podes automatizar con un cron. A mi me falla varias veces el grabber, puede ser? incluso a veces me produce un archivo de fecha anterior, a uds les pasa?

Unknown dijo...

Bueno ya descubri cual es mi problema, no es que no carga sino que me carga lo de la semana, si estoy en el lunes, me carga hasta el domingo, pero si estoy en sabado solo me carga hasta el domingo (1 dia). Y obviamente el domingo, soloc arga el domingo. ¿Alguna solucion?

Mariano dijo...

Si es así...Hay que cargar todos los lunes, porque la guía va de lunes a domingo....No se si es un tema del script o de la pagina de cablevision....Ya pude hacer andar bien la guía en Mythtv. Gracias!

Saludos.

Mariano dijo...

Hola Mauro...Habrá alguna posibilidad de portar el código a Python 3?? Porque en archlinux ya esta esta versión, y por mas que estuve tratando de portar el código es demasiado para mi poco conocimiento, jaja... Gracias!!

Mauro Meloni dijo...

Que tal Mariano. De momento no dispongo de tiempo como para portar el código, pero podés salir del paso cambiando la primera linea del script, la que dice

#!/usr/bin/env python

por

#!/usr/bin/env python2

ya que en Arch ambas versiones de python pueden coexistir, la única diferencia radica en el nombre del ejecutable. Si podés probá el cambio y comentá en todo caso si funciona ok.

Slds!

Mariano dijo...

Hola Mauro, ya pude hacer funcionar el script. No me había dado cuenta que me tenia conviviendo python2 también.

Saludos!

JONATAN dijo...

hola Mauro/FaberfoX y SGSofia!

Estoy intentando usar este scirpt para mythtv, pero en KNOPPMYTH, el cual no tiene interfaz de OS grafica, unicamente el Mythtv y un terminal...
No encuentro la manera de por meterlo, alguno me podra dar una manito con eso?

Mariano S. Cosentino dijo...

Hola Mauro, Soy mariano, uno de los que mantienen el TV_GRAB_AR del XMLTV.
Me gusto mucho la version que hiciste, especialmente por el manejo de la configuracion de zonas (algo que se me habia pasado).
Espero que no te moleste, pero te voy a robar algunas ideas. :-)
Saludos, Marianok.

scaprile dijo...

Hola, soy usuario de CentOS y el script me da el siguiente error:
# ./tv_grab_ar.py
Traceback (most recent call last):
File "./tv_grab_ar.py", line 59, in ?
from lxml import etree, html
ImportError: cannot import name html

Mi python es 2.4 y mi python-lxml es de ATrpms (1.1.2); podrían por favor especificar qué versiones se requieren para poder correr el script ?
Gracias

Mauro Meloni dijo...

@Mariano: ningún problema, como habrás visto el código en python es medio campechano, pero si sirve, metele mano nomás.

@scaprile: puede que la versión de lxml sea algo antigua y no incluya el modulo html. Mis pruebas han funcionado con python 2.5/2.6 y lxml 2.2.

Saludos!

Donato dijo...

Hola,
Uso tu script en Ubuntu con TVTIME y le modifiqué una parte porque no me aparecían los nombres de los canales.
En la línea 224 intercambié el orden y puse arriba el self.name y abajo el self.number
Así sí me funciona el nombre en pantalla. A mi sólo me pasaba eso?

Otra duda, sabes si funciona con tvtime el tag icon ? yo probé de varias maneras y no hace nada

Saludos y gracias!

Mauro Meloni dijo...

Muchas gracias Donato por la recomendación, realmente no había percatado de que TVTime puede mostrar los nombres sólo desde la programación. Previamente había que regenerar el archivo stationlist.xml y eso implicaba un paso adicional. Acabo de subir una versión con tu cambio incorporado.

Respecto al tag icon, hasta ahora no pude hacer que funcionara en TVTime, lo mismo con algunas tags adicionales como año, género y otras.

Leonardo dijo...

Buenas. Estoy interesado en el SCRIPT. Estoy montando un HTPC con XBMC. La idea es agregar una capturadora USB para poner ver TV desde el Media Center y utilizar tu SCRITP para tomar la programación de CABLEVISION Analógica en Córdoba Capital.
Quería saber si existiría algún inconveniente y si saben cómo montar el Script para que funcione correctamente.
Desde ya, muchas gracias.

Dejo mi mail, por las dudas.

elmadridista2002@yahoo.com.ar

Mauro Meloni dijo...

Que tal Leonardo, no tengo idea de cómo toma XBMC la programación de los canales, si es con XMLTV supongo que no habría mucha dificultad, pero sin haber visto la aplicación no puedo más que conjeturar. Alguno que lo utilice asiduamente podría echar algo de luz sobre el tema?

FaberfoX dijo...

Yo uso xbmc en varias maquinas, la maquina que tiene la capturadora usa el backend de mythtv, para el cual el script de Mauro anda perfecto.
Podes instalar mythtv en la misma maquina que vas a usar xbmc, yo te recomiendo que en lugar de usar xbmc-live, uses de base mythbuntu (con el que es bien facil sacar mythtv andando) y despues instales xbmc y xbmc-standalone. Despues lo unico que haces es poner xbmc como la sesion default en el gdm y listo, arranca solo a xbmc.

gabriel! dijo...

Mauro, al ejecutar el código me tira este error:
Traceback (most recent call last):
File "./tv_grab_ar.py", line 750, in
app.configure()
File "./tv_grab_ar.py", line 569, in configure
codigo_zona, nombre_zona = self.select_location()
File "./tv_grab_ar.py", line 549, in select_location
print "%4d. %-30s " % (code, name[:30]),
UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 16: ordinal not in range(128)


Como puedo solucionarlo? desde ya gracias!

Mauro Meloni dijo...

Que tal, Gabriel. Seguramente es algún problema con la codificación de caracteres de la consola o de la página web de programación. En cualquier caso, acabo de subir una versión que puede llegar a servirte. Si funciona bien, o no lo hace para nada, comenta así lo seguimos. Saludos.

Mariano dijo...

Hola Mauro, con la ultima actualizacion me sale el siguiente error:

./tv_grab_ar.py --verbose --output=programacion.xmltv_grab_ar.py 2011.05.30-1

Configured location: 473. Gral. Roca
Getting list of channels
Retrieving http://www.buscadorcablevision.com.ar/ ...
Found 64 channels online.
Found 66 channels enabled.
Reading program card cache ...
Traceback (most recent call last):
File "./tv_grab_ar.py", line 755, in
app.grab()
File "./tv_grab_ar.py", line 674, in grab
self.load_fichas()
File "./tv_grab_ar.py", line 636, in load_fichas
self.fichas = pickle.load(open(self.fichasdb, 'r'))
File "/usr/lib/python2.7/pickle.py", line 1378, in load
return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 858, in load
dispatch[key](self)
File "/usr/lib/python2.7/pickle.py", line 880, in load_eof
raise EOFError
EOFError

Saludos!

Mauro Meloni dijo...

Que tal, Mariano. El error que comentas se debe probablemente a un archivo de descripciones corrupto. Como ya ha pasado varias veces, he subido una nueva versión que realiza una copia de seguridad antes de iniciar la descarga. Quizá esta nueva versión te sirva. Saludos.

Mariano dijo...

Hola Mauro, esta versión anduvo lo mas bien..Muchas gracias!

WillyM dijo...

Buen trabajo! Me ha funcionado muy bien. Gracias.

Anónimo dijo...

Hola Mauro felicitaciones por el script! Soy algo nuevo en esto de python, estoy trabajando bajo windows y cuando lo ejecut me sale lo siguiente:


C:\grab>tv_grab_ar.py --verbose --two-weeks --output=programacion.xml
tv_grab_ar.py 2011.09.16-1

Configured location: 226. Capital Federal -GBA (Digital)
Getting list of channels
Retrieving http://www.buscadorcablevision.com.ar/popUpGuiaCanales.php?companiaSe
leccionada=226 ...
Found 185 channels online.
Found 0 channels enabled.
Reading program card cache ... could not load C:\Users\camilo/.tvtime\fichas.db

Que puedo hacer para pasarle ese archivo fichas.db, y qué debe tener adentro?

Gracias de antemano

Camilo B

Mauro Meloni dijo...

Que tal, Camilo. Gracias por tu comentario.

El error que te da sobre fichas.db es normal cuando se ejecuta el script por primera vez. Ese archivo se crea y actualiza automáticamente al finalizar la recuperación de los canales.

Lo que te está sucediendo es que no has indicado de qué canales hay que obtener la programación.

Para ello, ejecuta tv_grab_ar.py con el parámetro --configure, indicale el código de zona (226, por lo que veo) y luego con yes/no vas activando o desactivando los canales cuya programación te interesa, o bien con "all" activas la descarga de toda la programación.

Espero que la info te sea de utilidad.
Suerte,

Anónimo dijo...

Hola Mauro mil gracias por tu pronta respuesta. Mira que cuando le ingreso el codigo de locacion en --comfigure me sale este error, no se si sea normal que suceda:

enter your location code: 226
location selected: Capital Federal -GBA (Digital)
Traceback (most recent call last):
File "C:\grab\tv_grab_ar.py", line 839, in
app.configure()
File "C:\grab\tv_grab_ar.py", line 625, in configure
chanlist = self.select_channels()
File "C:\grab\tv_grab_ar.py", line 564, in select_channels
channels = self.retrieve_channels()
File "C:\grab\tv_grab_ar.py", line 442, in retrieve_channels
url = self.base_url + '/popUpGuiaCanales.php?companiaSeleccionada=' + codigo
_zona
TypeError: cannot concatenate 'str' and 'int' objects

Camilo B

Mauro Meloni dijo...

Ah Camilo, ese es un bug mío. Recién subí el script arreglado. Descargalo desde el mismo sitio y contame cómo te anduvo.

Anónimo dijo...

Hola Mauro gracias por actualizarlo ya me funcionó :D solo que veo que no agarra la lista completa de Capital Federal -GBA (Digital), aparecen pocos canales y en la página de buscadorcablevision.com.ar aparecen muchos más y en otro orden. Mira los que me salen en el archivo tv_grab_ar.conf:

location 226 Capital Federal -GBA (Digital)
#channel 1 Boomerang
#channel 2 Cartoon Network
#channel 4 Cinecanal
#channel 5 Film&Arts
#channel 6 The Film Zone
#channel 7 Animal Planet
#channel 8 AXN
#channel 9 ESPN
#channel 10 Fox Sports
#channel 11 elgourmet.com Sur
#channel 13 Space
#channel 14 Sony
#channel 15 Galicia TV
#channel 17 Canal (á)
#channel 18 El Canal de las Estrellas
#channel 19 Canal Rural
#channel 23 Discovery Channel
#channel 24 Discovery Home & Health
#channel 25 Discovery Kids
#channel 26 E! Entertainment
#channel 27 FOX
#channel 28 Disney XD
#channel 30 Studio Universal
#channel 33 Infinito
#channel 34 I.Sat
#channel 36 MTV Sur
#channel 37 MGM
#channel 38 Magazine
#channel 40 Metro
#channel 42 MuchMusic
#channel 44 A&E
#channel 46 National Geographic
#channel 47 Nickelodeon
#channel 48 Liv
#channel 50 RAItalia
#channel 51 The History Channel
#channel 52 TNT
#channel 54 TVE
#channel 56 TyC Sports
#channel 58 Universal Channel
#channel 59 Utilísima
#channel 60 Volver
#channel 61 Warner Channel
#channel 65 Glitz
#channel 66 TN - Todo Noticias
#channel 67 CNN en español
#channel 68 Crónica TV
#channel 71 26 Noticias
#channel 75 América
#channel 77 El Trece
#channel 78 Canal 9
#channel 79 Canal 7
#channel 80 Europa, Europa
#channel 81 ESPN+
#channel 84 Cosmopolitan TV
#channel 90 TLC
#channel 102 Disney Channel
#channel 120 Telefe
#channel 156 A24
#channel 177 El Garage
#channel 178 FX
#channel 181 VH1 Sur
#channel 196 Cinemax
#channel 198 Senado TV
#channel 216 CM El canal de la música
#channel 242 TCM
#channel 288 Canal Ciudad
#channel 292 Canal Santa María
#channel 315 Sony Spin
#channel 410 Encuentro
#channel 493 Canal 21 (Arzobispado)
#channel 503 C5N
#channel 562 Disney Junior
#channel 571 Zeta TV
#channel 572 Quiero música en mi idioma
#channel 634 TruTV

ya he variado el codigo de location y obtengo esos mismos canales. ¿Cómo podría obtener los mimso canales que aparecen en la página de buscadorcablevision.com.ar ?

Saludos y gracias nuevamente :D

Mauro Meloni dijo...

Que grande, Camilo. Lo último que me pasaste se debe a otro error que cometí debido al solapamiento de la escritura del archivo de configuración, que sólo ocurre en plataformas Windows.

La (segunda) versión que acabo de subir debería funcionar mejor (o al menos, dar un error nuevo). Por las dudas, borrá el archivo de configuración tv_grab_ar.conf que figura en la carpeta de usuario, dentro de la carpeta .xmltv (si no aparece conviene usar el buscador de archivos) y luego volvé a ejecutar la configuración (./tv_grab_ar.py --configure). Allí deberían aparecerte los 185 canales de la zona Digital.

PD: recurro a tu voluntad pues en este momento tengo un Windows para probar el código. Espero que funcione!

Anónimo dijo...

Hola Mauro eres un genio, con la nueva actualización no tuve problemas, en 3.15 horas descargó todos los 185 canales :D

Muchas gracias nuevamente tu script es lo máximo

Camilo B

Anónimo dijo...

Mauro estuve revisando el archivo programacion.xml y veo que no agrega todos los parámetros que sí aparecen en el archivo fichas.db.

Los parametros que faltan son:

S'Director'
sS'Protagonistas'
sVPaís
sVTítulo original
sVClasificación
sVAño
sVDuración


Por lo demás todo perfecto ;)

Camilo B

Mauro Meloni dijo...

Camilo, me alegro que haya andado correctamente. Efectivamente, la DTD de XMLTV especifica varios campos de información más pero aún no he tenido tiempo para analizarla en detalle e incorporar todos los datos que figuran en la guía de programación. Por otro lado, como la aplicación que utilizo (tvtime) sólo muestra el título y la descripción del programa, con eso ha sido suficiente hasta el momento.

Me interesa saber qué programa estás utilizando para ver TV, así trato de añadir los datos que le faltan.

Anónimo dijo...

Hola Mauro recibe un caluroso saludo de Feliz Navidad. Estoy usando el Windows Media Center pero para ver con detalles el archivo xml lo abro con un programa que se llama FreeGuide http://www.artificialworlds.net/freeguide/Main/HomePage

Saludos

Ramiro Morales dijo...

Hola Mauro,

Realmente fabuloso lo que estás haciendo con este script.

Había encontrado el post en tu blog hace tiempo y lo había gradado como marcador pero no había tenido tiempo de probarlo.

Cuando al fin me dediqué a jugar con el tema, el placer fué mucho mayor cuando vi que lo mantenés actualizado.

Aun mas, como Pythonero que soy me dió mucho gusto que la solución mas actual y que realmente funciona para bajar la grilla de Cablevision este escrita en Python y no en Perl o PHP como las iteraciones anteriores, abandonadas o que vaya a saber si alguna vez funcionaron :)

Todo esto me llevó algunos días atras a expresar en Twitter lo chocho que estaba: (también hay un par de tweets posteriores en los que cuento como logré mi setup ideal para ver TV analógica tradicional en mi Debian Sid).

Algo que se me ocure sugerirte es que mantengas el script en algún VCS e incluso hasta en algún sitio de hosting público (github, bitbucket, Google code, etc.), o si ya lo está haciendo que lo hagas mas en público. De esa manera a lo mejor podés obtener ayuda de gente que esta acustumbrada a trabajar colaborando de dicha forma.

Dos puntos mas en lo que ayudaría: a) Podés agregar un archivo con el texto de la GPL y b) agregar un archivo README con algun instructivo ya sea con texto de este blog post y/o del comentario de las primeras líneas de propio script para que usuarios menos experimentados puedan leer cómo usarlo.

¡Gracias de nuevo!

Mauro Meloni dijo...

Que tal, Ramiro. Me alegro que te haya sido útil el script y desde ya muchas gracias por la promoción. En principio no fue más que resolver la cuestión personal de querer tener la programación a mano al cambiar de canal, armé algo sencillo y lo publiqué con la fugaz idea de que podría servirle a algún loco que esté buscando lo mismo. Con el tiempo me han ido demostrando que somos varios los locos, que encontraron bugs y recomendaron añadir funcionalidades extra, y así es como hemos ido armando el script actual.

Como tal, y por ser un único archivo, no se me había ocurrido subirlo a un repositorio, pero ahora que lo mencionás efectivamente sería buena idea subirlo a github, con un poco más de documentación, para que quede disponible a la comunidad. De paso me pongo a tono con git que lo vengo relegando hace tiempo. Hasta tanto, los patches (.diff) son siempre bienvenidos.

Suerte y saludos!

Juanjo dijo...

Hola Capo, la idea esta genial, y tengo ganas de tener la info, pero me tira un par de errores y no puedo encontrar el problema, capaz cambiaron algo de la info del buscador y ya no es compatible ? o estoy haciendo algo mal

el error que me tira es
Reading program card cache ... could not load /home/juanjo/.tvtime/fichas.db
Channel 23 - Cartoon Network (id 2)
Retrieving /dinamicas/grilla_semanal/index.php?canal=2&sintonia=23&cantidadPasa=0 ...
Traceback (most recent call last):
File "./tv_grab_ar.py", line 856, in
app.grab()
File "./tv_grab_ar.py", line 769, in grab
programs += self.retrieve_grid(channel, date.today())
File "./tv_grab_ar.py", line 503, in retrieve_grid
self.retrieve_week(channel, day, 0, programs)
File "./tv_grab_ar.py", line 496, in retrieve_week
programs.append(self.parse_program(channel, startDay, celda))
File "./tv_grab_ar.py", line 514, in parse_program
fichaid = celda.get('href').split('=')[1]

Mauro Meloni dijo...

Que tal, Juanjo. Efectivamente, es posible que la página haya cambiado y por ello el script ya no pueda extraer la información correctamente. En cualquier caso te voy a pedir el código de zona en la que estás (si no es Capital) y algunas líneas más del mensaje de error que aparece, a fin de poder reproducir el mismo en mi equipo. A simple vista parecería que alguno de los enlaces a la ficha de un programa no está correctamente armado.

Juanjo dijo...

Hola Mauro,gracias por contestar
estoy en zona 3, estuve metiendole prints al fuente, aparentemente el contenido de "celda" en la linea 514 no es el esperado, y mirando el contenido del html de la pagina en la que busca, parece que esta mal formado, como que lo empezaron a modificar y lo dejaron por la mitad... la pagina misma tiene muchos errores... una lastima..
no soy experto en python, capaz vos le encontras la vuelta, un abrazo grande y quedo al aguardo.
Juanjo

Mauro Meloni dijo...

No hay problema, Juanjo. Ahí hice un script nuevo con un parche para que omita procesar los programas cuyas fichas están mal. Lo dejo disponible en este enlace. Probalo cuando puedas, y si funciona razonablemente bien comentame así agrego el cambio en forma definitiva. Saludos!

Juanjo dijo...

Hola Mauro, sos un capo, la ultima version esta funcionando perfecto.
Ya me arme un cron para actualizar la info semanalmente.
Muchas gracias por el aporte!

Juanjo

macaronij dijo...

Mauro, sigo luchando con este error
http://pastebin.com/8FqM1LQ5
mira me pasa a veces si y a veces no, estaría bueno -si fuera posible- que si pasa no interrumpa todo el proceso, sino mas bien que no cargue ese programa o canal. Vos cargas TODOS los canales? nunca te da este error?

Mauro Meloni dijo...

Que tal, macaronij. Curioso que siga ocurriendo, supongo que será algún problema del DNS del proveedor. En cualquier caso, he subido una nueva versión (2012.05.02-1) que omite las descripciones y continúa el proceso ante la ocurrencia del error. Probalo cuando puedas y vemos si va bien. Saludos,

Jonatan dijo...

hola mauro

estoy intentando usar el tv grab de acuerdo a tus instrucciones, pero al instalar python me dice que ya esta instalado y no tiene que actualizar, pero al intentar correr el script me dice command not found...

tenes idea que puede ser?

lo estoy instalando en un server mythbuntu

gracias

Jonatan dijo...

hola nuevamente, solucione en parte el problema poniendo python delante de la linea a ejecutar y lo realiza, el problema es que la linea de carga de programacion lleva 2 horas sin cambio alguno...
esta es la linea ejecutada

python tv_grab_ar.py --days=2 --output=cable.xml

y queda el cursor en verde esperando, sin ninguna modificacion...

Mauro Meloni dijo...

Que tal Jonatan. La descarga de información tarda bastante tiempo y por defecto el script no informa nada de lo que está haciendo. Si tenés un rato, probá ejecutarlo con estos parámetros:

python tv_grab_ar.py --verbose --days=2 --output=cable-nuevo.xml

efecehache dijo...

Estaba por comentarte que tenía problemas para bajar la grilla, pero probando la última versión (antes tenía la 2011.09.16-1) parece haberse solucionado. Muchas gracias! me viene bárbaro para tvtime y programar grabaciones con gTVG.

efecehache dijo...

Estaba por comentarte que tenía problemas para actualizar la grilla, pero probé bajando la última versión (antes tenía la 2011.09.16-1) y parece haberse solucionado. Muchas gracias! el script me viene bárbaro para usar con tvtime y programar grabaciones con gTVG.

efecehache dijo...

Estaba por comentarte que tenía problemas para actualizar la grilla, pero probé bajando la última versión (antes tenía la 2011.09.16-1) y parece haberse solucionado. Muchas gracias! el script me viene bárbaro para usar con tvtime y programar grabaciones con gTVG.

Anónimo dijo...

Parece que se cambiaron algo en la página de Cablevision.
Tira un error el script:

HTTP error: HTTP Error 404: Not Found
Retrieving /dinamicas/grilla_semanal/index.php?canal=824&sintonia=54&cantidadPasa=1 ...


El grabber de xmltv tampoco funciona. :( :(

Saludos!!

Fernando dijo...

El sitio www.buscadorcablevision.com.ar no está mostrando la grilla de canales, por lo quen ningún script va a funcionar de momento. Hace mas o menos un par de meses que el sitio está entregando información incompleta o errónea y hoy directamente no hay nada, quizás sea algo temporal debido a actualizaciones o mantenimiento o, espero que no, permanente. De todas maneras, sería bueno poder obtener la información de algún sitio alternativo para no depender solo de un sitio y pasar por lo que pasamos ahora, alguien conoce alguno?

Juan dijo...

Hola, ante todo gracias Mauro por el script anda barbaro, lastima que ahora no anda por problema del website.

Fernando, el otro que conozco además de cablevision en Reportv. Lo estuve viendo pero no se como hacer para que saque la info de la pagina ya que es una función de Ajax o Jquery el que trae toda la info del canal de uno a la vez. Asi que ahi me quede. Saludos!

Mauro Meloni dijo...

Juan, Fernando y Anónimo, efectivamente, el sitio de CV/MC tiene algunas fallas (o lo hacen a propósito para que no podamos obtener la grilla). Es curioso pues creo que desde diciembre del año pasado venia funcionando bien, pero bueno, "nada es para siempre", y menos este tipo de sitios.
Ahora estoy de viaje y mucho no puedo hacer, pero en cuanto retorne veré de buscar una nueva fuente de datos, u obtener de otra forma lo que ya teníamos a mano. Me interesó la sugerencia de ReporTV hecha por Juan. Gracias por avisar!

Fernando dijo...

Mauro,

Yo pensaba también que nos estarían filtrando desde el sitio, pero probé con el sitio uruguayo y es la misma cosa, es más, probé chequeando con una IP europea y otra americana y es lo mismo. Contacté a CV en FB preguntando por esta situación y nunca me respondieron, quizás den de baja el servicio de guia de canales on-line o migren a otra manera de mostrar la información, no lo sé, yo no puedo aportar mucho con lenguajes o programación en general porque no es mi fuerte, pero si puedo ayudar en algo extra, cuenten conmigo.

Fernando dijo...

Hoy volvió a estar en línea la programación en http://www.buscadorcablevision.com.ar ... que alegría !!!

Fernando dijo...

Hola gente.

La páginade Cablevisión cambió, aparentemente, de http://www.buscadorcablevision.com.ar/ a http://clientes.cablevisionfibertel.com.ar/Buscador y nuevamente el script dejó de funcionar. Intenté cambiar la URL en el archivo tv_grab_ar.py pero no funciona, ¿alguna idea y ayuda por favor?

Mauro Meloni dijo...

Hola Fernando, gracias por el aviso. Efectivamente, han modificado los enlaces y el diseño de la grilla de programación, por lo que el grabber actual no puede interpretarla. Trataré de verlo en detalle en cuanto tenga un rato libre para ver si se puede solucionar, pero no puedo dar un estimado de tiempo.
Saludos!

Fernando dijo...

Gracias Mauro por tu respuesta y buena predisposición. Si puedo ayudar con algo como pruebas, contá con mi ayuda.

Fernando dijo...

Alguna novedad respecto al nuevo grabber ? Estoy perdido sin la grilla, imposible programar grabaciones, etc. Me siento un inútil esperando que alguien lo haga por mí, pero si puedo ayudar con algo, acá estoy ! Gracias.

Mauro Meloni dijo...

Fernando, probaste esta nueva version?

Fernando dijo...

Hola Mauro.Antes que nada, te aclaro que lo estoy intentando ejecutar bajo W7. Bajé el script del link que posteaste y lo renombré como "tv_grab_ar" y desde una línea de comandos ejecuto xmltv.exe tv_grab_ar --configure y me dice:

"getting list of Locations: could not fetch http://www.buscadorcablevision.com.ar
//popUpSeleccionZona.php?paisSeleccionado=cd, error: 404 Not Found, aborting"

Edito el script y veo que sigue apuntando al dominio anterior ( http://www.buscadorcablevision.com.ar) por lo que no creo que funcione ...

Mauro Meloni dijo...

Humm... probablemente no estés obteniendo la última versión. Fijate que en el archivo debe decir VERSION = '2013.10.19-1rc'

Quizás el navegador te está retornando una versión cacheada del mismo archivo. En ese caso, probá descargar el script mediante wget o a través de un proxy.

Fernando dijo...
Este comentario ha sido eliminado por el autor.
Fernando dijo...

Mauro: Dónde debo copiar el archivo tv_grab_ar.py ? Lo estoy poniendo en la misma carpeta del ejecutable xmltv.exe y lo ejecuto como xmltv.exe tv_grab_ar --configure pero sigue dando el mensaje de error que puse antes. La versión del script es la correcta: VERSION = '2013.10.19-1rc'

Mauro Meloni dijo...

Ah perdón. Ahora que lo veo, el error surge pues estás intentando ejecutar el script mediante xmltv.exe.

tv_grab_ar.py funciona por fuera de xmltv, por lo que en Windows podés colocarlo donde quieras, pero se debe invocar mediante el intérprete de Python 2.7. La línea de comando a ejecutar para configurarlo debería ser similar a la siguiente:

C:\Python27\python.exe tv_grab_ar.py --configure

y luego, para descargar la programación:

C:\Python27\python.exe tv_grab_ar.py --verbose --output=programacion.xml

Recuerda que es necesario tener instalada también la biblioteca python-lxml correspondiente a la versión Python 2.7, ya que el script se basa en ella para procesar la grilla obtenida desde el sitio web.

Fernando dijo...
Este comentario ha sido eliminado por el autor.
Fernando dijo...

Gracias Mauro.
Te cuento, bajé la librería, lo configuré, bajo la programación pero no me general el archivo programacion.xml.

Acá te paso el log para ver si te das cuenta que puede ser:

https://dl.dropboxusercontent.com/u/2247024/log.txt

Mauro Meloni dijo...

Ah eso me pasó recién a mi también. Por lo visto falla al interpretar el número de algún episodio que está en la grilla.

Más adelante lo voy a ver y corregir en detalle, pero de momento acabo de subir una versión (2013.11.10-1) que salva el error y funciona correctamente.

Fernando dijo...

Gracias. Ahí funcionó con esta nueva versión. Ahora me queda ver porqué la grilla no se actualiza en mi Media Center, Big Screen EPG parece estar procesando todo bien...

Unknown dijo...

en el wmc y Big Screen EPG por unica ves hay que configurar los canales a mano por ejemplo al canal 2 hay que asignarle américa hay que editar la lista de canales y al final de la misma van a ir apareciendo los que el big creo no lo hace automáticamente. es medio engorroso pero es por única ves pero funciona.

Fernando dijo...

@ distribuidora dulzuras : Gracias. Finalmente pude hacerlo por mi lado ... Y sí, era así como decís, pasa que hace mucho lo había hecho y no me acordaba.

@Mauro Meloni: El script está funcionando muy bien, mejor te diría que el anterior antes de que CV cambiara el formato de la grilla, ahora puedo ver texto en la sinopsis cosa que antes no.

Muchas Gracias !!!

Fernando dijo...

Hola gente, espero que estén bien. Creo que hubo algún cambio en el site de CV nuevamente porque el script ya no funciona.Devuelve error HTTP 500 Internal Server error ¿alguna idea?

Mauro Meloni dijo...

Que tal, Fernando.

Gracias por el aviso. Efectivamente, han cambiado algunas cosas del sitio de Cablevisión. En cuanto pueda le doy un vistazo para ver los cambios y hacer las correcciones que sean necesarias.

Quedamos en contacto.
Saludos,

Fernando dijo...

Gracias Mauro. Yo estuve mirando el script para ver si podía solucionarlo facilmente, porque creo que cambio la url de la grilla, cambié los datos pero no logro hacerlo funcionar. Más allá de eso, te quería preguntar que lectura (preferentemente on line) me recomendás para aprender un poco sobre como funcionan este tipo de scripts, como para poder hacer los míos o modificar alguno ya existente, como en este caso, para que funcione correctamente. Gracias de antemano.

Mauro Meloni dijo...

No hay problema, Fernando, cuanto más gente haya detrás, mejor.

Para arreglar el script yo utilizo habitualmente Firefox con las herramientas de desarrollador.

Como lectura, la documentación de python 2.7 y la de lxml son referencias de consulta obligada. Desde este año, recomiendo arrancar por la presentación "Introduction to Web (and data!) Scraping with Python" de Katharine Jarmul, siempre que uno esté cómodo con el inglés.

Ahí subí una nueva versión con algunos cambios, por las dudas prueben y comenten.

Fernando dijo...

Gracias Mauro por tu ayuda, como siempre. El script parece funcionar bien. me quedo con los links y los voy a ir mirando. Un abrazo.

WillyM dijo...

Gracias Mauro, funciona muy bien. Saludos!

Unknown dijo...

no funciona el link de descarga

Mauro Meloni dijo...

Gracias Walter. Ya debería estar arreglado.

Unknown dijo...

no mil gracias a vos Mauro, funciona muy bien, con el Windows media center desde hace tiempo siempre muy atento .saludos

Fernando dijo...

Hola Walter Botta ...

Yo también lo uso con Windows Media Center, ¿ te pasa que no te baja la programación de las 10 PM en la grilla ? O es solo a mí que me pasa ? Con el script anterior andaba bien, pero ahora no sé si es un problema del script, del sitio de CableVisión o mío !

Mauro Meloni dijo...

Buenas, Fernando. La versión anterior no descargaba la programación nocturna. Prueba con la última versión disponible, quizás tengas mejor resultado.

Unknown dijo...

me estoy durmiendo temprano y ni me di cuenta q no descargaba la programación nocturna .

gracias mauro siempre atento .

scaprile dijo...

Hola, me pasarías los cambios relacionados con el "500" y los "fixes por separación en horas" ? Yo uso el tv_grab_ar en perl de xmltv y no está funcionando; antes de joderlo al maintainer quería ver si lo podía resolver. Saludos.
PD: no uso el tuyo porque mi CentOS 5 con su python2.4 no se lo bancan...

Rodrigo Solari dijo...

Mauro como estas Saludos desde Peru, Y bueno no funciona el link de descarga... a ver si nos das una ayudita :)

Mauro Meloni dijo...

Buenas Lokitos, gracias por el mensaje. Ahí arreglé el link, ya debería andar. Eso me pasa por cambiar de dominio tan seguido.

Sólo por curiosidad, les sirve tv_grab_ar en Perú? tienen una grilla de canales similar?

Saludos!

Rodrigo Solari dijo...

me imagino, recien probare esto :)... el detalle es que quiero ver que hiciste y hacer un fork para movistar peru, u otros proveedores, te cuento que tengo IPTV, y la verdad no tengo EPG en XBMC, Ahora tambien voy a ver si se puede integrar en un addon para XBMC (PVR simple client), si te interesa puedo pasarte la lista M3U de IPTV que tengo, por inbox amigo.

Mariano dijo...

Hola Mauro.
Te queria comentar que no está funcionando el proceso, me parece que cambiaron algo en la página.
Muchas gracias por tus aportes.
Saludos Mariano

Fernando dijo...

Confirmo lo dicho por Mariano, no funciona:

tv_grab_ar.py 2014.06.21-2

Getting list of channels
Retrieving https://buscador.cablevisionfibertel.com.ar/index.aspx?cl=874 ...
No channels found online.
Maybe the website is offline or it has been recently redesigned.
Found 70 channels enabled.
Found 0 programs.
Press any key to continue . . .

Mauro Meloni dijo...

Gracias Mariano y Fernando. Fue un cambio sencillo en el sitio web. La versión que acabo de subir debería operar correctamente. Saludos!

WillyM dijo...

Gracias Mauro, funciona muy bien! Saludos

Unknown dijo...

Este es un agradecimiento que debería haberse hecho hace mucho, gracias por este trabajo Mauro!

La última versión que subiste (2014.10.16-1) me funciona correctamente, pero ya no aparecen las descripciones de la emisión. ¿Es arreglable o esa información ya no está disponible?

Gracias, un abrazo!

Mariano dijo...

Excelente Mauro.
El único inconveniente, como dice Gastón, no tiene las descripciones.
Muchas gracias

Mauro Meloni dijo...

Gastón, Mariano, gracias por la mención y el aviso. Efectivamente, a partir del último cambio en el sitio web y a diferencia del diseño anterior, la grilla de programación no contiene la descripción de los shows.

Para obtener la descripción, es necesario hacer ahora una nueva petición por cada show que figura en el sitio web. Ese cambio no lo había notado originalmente y va a llevar un buen rato de desarrollo hasta tenerlo a punto, además de que una vez implementado demorará ampliamente la descarga de programas.

Lo dejo anotado para incorporarlo en la próxima versión, pero lamento no poder darles una fecha estimada. Saludos!

Unknown dijo...

Faltaba más Mauro, gracias por compartir tu trabajo. Conforme vaya aprendiendo un poco de Python tal vez pueda dar una mano, ojalá pudiera colaborar. Un abrazo!

Unknown dijo...

gracias mauro por ocuparte en mantener funcionando la descarga de la guia

Mariano dijo...

Como estás Mauro, la verdad que te agradecemos lo que haces con estos scripts, son muy utiles.
Te hago una consulta, ¿hay alguna manera de obtener la programacion de los canales HD? Yo no logro que me aparezcan en la lista.

Muchas gracias por todo. Mariano

Mauro Meloni dijo...

Buenas Mariano, cómo va todo?

Me había quedado agendado tratar de resolver la captura de la programación de HD, y aprovechando que tuve unos minutos libres pude hacer alguna pequeña prueba de concepto. Te dejo disponible una versión -muy borrador- para que pruebes si descarga correctamente la progamación HD. El archivo es tv_grab_ar_beta_hd.py

Seguramente está verde, pero probalo y contá que tal va así lo vamos mejorando.

Saludos,

Fernando dijo...

Hola Mauro ! Gracias por tu aporte y tenernos en cuenta a todos los que nos es tan útil tu trabajo desinterezado. Antes de bajar este script, ya que no necesito la programación HD como el amigo Mariano, te pregunto: En esta versión, ¿ hay algún avance en cuanto a la descripción de los shows de la grilla como preguntaba Gastón ?

Mauro Meloni dijo...

Que tal, Fernando? Siempre que se pueda dar una mano, no hay problema.

La versión que le recomendé a Mariano está hecha sólo para HD (e incluso no se si anda bien), pero si te referís al comentario de Gastón del 16 de octubre, podes probar la que figura en el post (2014.10.22-1) previa limpieza del caché viejo de descarga (archivo tv_grab_ar.db que está guardado en algún lado, je). Cualquier problema lo seguimos viendo. Slds!

Anónimo dijo...

Hola Mauro:
probe tu ultimo beta (tv_grab_ar_beta_hd.py), funciona como reloj suizo, solo un poco lento en la captura de trilla, felicitaciones!

Fernando dijo...

Bueno, a mí esta nueva versión no me funciona ... me dá errores de conexión "Unable to retrieve ..." todo el tiempo y nunca termina de hacer la descarga ... estuvo ejecutándose durante casi 3 horas hasta que lo cancelé, entonces volví al anterior y funcionó tan bien como siempre. Se agradece el esfuerzo de todas maneras.

Mariano dijo...

Bueno Mauro, acabo de hacer las primeras pruebas de la nueva version donde tomas los HD. Funciona Excelente!
Voy a verlo en detalle el lunes, pero que más decirte que Excelente tu trabajo y muchas gracias.
Abrazo Mariano

Anónimo dijo...

Muchas gracias por tu trabajo. Funciona perfectamente.

Fernando dijo...

Hola. Perdón anticipadas por el Off Topic, pero tengo un problema con la sontonización de los canales de CableVisión desde hace un tiempo. Primero comenzó con algunos canales, luego fueron más, y ahora son todos.Esto solo pasa con el HTPC con el Media Center de Windows 7 Ultimate que tengo funcionando, conectando el cable directo a la sintonizadora de una TV se ve bien, sin problemas.... No es problema aparente de software porque reinstalé el sistema operativo en otro disco rígido como prueba y probé con otra placa sintonizadora diferente de otro fabricante y el resultado es el mismo ... A alguien le pasó algo parecido ??? Estoy perdido sin la TV en el Media Center realmente y se me acabaron las ideas ... Dejo un link con la imagen de una canal sintonizado para que aprecien como se vé. Gracias de antemano. Fernando

https://dl.dropboxusercontent.com/u/2247024/TV.jpg

Unknown dijo...

hola no es un problema tuyo a mi me pasa lo mismo empezó con el canal 21 y después se extendió al resto de los canales yo tengo 3 placas wintv en 3 maquinas distintas y en todas paso lo mismo . hable con un amigo que trabaja en cablevisión y estaban cambiando los equipos cuando empezaron a fallar mis placas además en un lcd de mi casa el canal 40 hace lo mismo y en la casa de un amigo el lcd nuevo anda como en mis computadoras no se puede ver nada y no es la tele ya que los DVD andan ok . así que supongo q no somos los únicos que tenemos problemas y sera algún tipo de codificación u otro problema que solucionaran ,

Fernando dijo...

Gracias Walter Bottta por contarme al respecto, me estaba volviendo loco intentando saber que pasaba, el tema es saber que carajo están haciendo en CV que solo afecta a cierto tipo de sintonizadores y a otros no ... Si te enterás de algo mas al respecto, por favor, dejame un comentario, lo mismo haré yo. Gracias nuevamente.

Unknown dijo...

hola el problema es que cablevision cambio la norma ya no trasmite mas en pal ahora lo hace en ntsc x eso no funcionaban mis placas wintv o algunas televisiones , hay que ponerlo en forma automatica o en el windows media center seleccionar un país diferente a argentina x ejemplo chile o bolivia que tienen ntsc , y después descargar la guía de mauro meloni y sincronizarla .

Fernando dijo...

Gracias Walter por el dato!!! Lo configuré como Chile y funcionó perfecto. Un abrazo

Fernando dijo...

Hola. Estoy teniendo un problema con el script, de un momento a otro comenzó a mostrar el siguiente error:

https://www.dropbox.com/s/jt2hau7g5f89geq/Screenshot%202015-10-03%2013.31.04.png?dl=0

Alguna idea ?

Mauro Meloni dijo...

Buenas Fernando. Hace tiempo que no toco el código, pero por lo que comentas, parece que se corrompió la base de fichas (descripciones) de los programas. Si encontrás el archivo tv_grab_ar.db, probá renombrarlo a tv_grab_ar.old y volver a ejecutar el proceso. Va a tardar bastante más, pues implica que hay que volver a descargar las descripciones, pero es probable que se ejecute sin inconvenientes hasta el final.

Sobre bsetool.exe no tengo idea de que es, pues el script no lo utiliza de ninguna manera.

Por otro lado, y a partir de lo que mencionás, es probable que tenga que adaptar un poco el código para operar igual ante estos errores. Lo veo en cuanto tenga un rato.

Gracias por avisar.

Fernando dijo...

Hola Mauro ! Gracias por responder. Efectivamente, renombré el .db y empezó a funcionar ! Supongo ese es el "program cache" que siempre veía en el script cuando se ejecutaba y nunca supe donde estaba y eso que me volví loco buscandolo ... Gracias al dato que me pasaste, lo pude encontrar dentro de la carpeta del perfil de usuario logueado, lo renombré y ya está corriendo como bien decís. El bsetool.exe es una aplicación que toma el XML generado , lo importa e inyecta dentro de Windows Media Center y genera la guía de canales, lo ves ahí porque en un archivo CMD que cree y que se ejecuta un par de veces al día para bajar la guía. Gracias nuevamente !!!

Mariano dijo...

Como estás Mauro, espero que todo bien.

Estoy usando esta version 2014.12.23-1rc (Recuperacion de programacion para servicios digital y HD), que me pasaste el mismo 23/12/2014.

Me trae bien los nombres y horarios de los programas de los canales HD. Pero comencé a usar recien ahora el parámetro para que me traiga las descripciones, imagenes, actores, etc etc.

Descubrí que muchos programas traen mal todos esos datos. A excepción del nombre del programa y horario, todo el resto pertenece a un programa 2 o 3 horas hacia adelante.
Si podés fijate en alguno (por ejemplo A24), donde casi todos los trae mal.

Ya los corroboré con lo que está en la página de Cablevisión, y allí están bien.

Bueno, como siempre te agradezco que nos ayudes con estas cosas.
Saludos, Mariano

Mauro Meloni dijo...

Buenas Mariano, todo bien. Espero por allá también.

Gracias por avisar del desfase entre los programas y las descripciones. Lamentablemente en esta última época no dispongo de mucho tiempo para tocar código, pero haré lo posible para pegarle una mirada para ver por donde puede venir el error.

Saludos!

Marcos dijo...

Hola Mauro, ante todo gracias por tu trabajo y quería informarte que hubo algún cambio en el diseño de la web y está fallando al tratar de obtener la lista de canales. Metiendo un poco de mano al código (y comparando con las urls de la web) vi que modificando la línea Nº 567 de "url += '?cl=%d' % self.codigo_zona" a "url += '?int=1&cl=%d&pr=1' % self.codigo_zona" funciona correctamente en las pruebas que hice aunque no se si para todos los casos.

Por otra parte yo también observo el desfase entre los programas y las descripciones pero hasta acá llego con mis escasos conocimientos de programación. Si te sirve de información, en una oportunidad borré el caché de programas y se solucionó este problema, pero unos días después volvió a aparecer.

Muchas gracias nuevamente y saludos!!!

German dijo...

Gracias por el trabajo Mauro y gracias Marcos por la corrección. También tenía ese problema y tu sugerencia fue la solución.

Saludos y gracias!

Anónimo dijo...

WG++ es otra solucion a la falta de tiempo de mauro
les paso la URL para no tener que esperar indefinidamente por una EPG:

http://webgrabplus.com/