aabilio / PyDownTV2

Versión 2 (ahora "spaintvs") de la librería para obtener los enlaces de descarga de los vídeos de las webs de TVs españolas (PyDownTV). Y Script para ejemplo de uso. Además en desarrollo nueva web y versiones de Escritorio y Android
52 stars 34 forks source link

No puedo descargar video de enlace de Atresplayer #107

Open Condematos opened 10 years ago

Condematos commented 10 years ago

http://www.atresplayer.com/television/programas/lasexta-noche/temporada-1/capitulo-56-baltasar-garzn_2014021600015.html

aabilio commented 10 years ago

Puede que sea un error puntual. Vamos a ver si se reproduce en otros vídeos. Si alguien tiene la app para Android, que vea a ver si le funciona ese vídeo (pydowntv saca los enlaces para Android y no para la web realmente..)

simonbcn commented 10 years ago

A mi me pasa con el script, he probado varias URLs de diferentes vídeos de AtresPlayer y todos fallan. En lugar de bajar el vídeo baja un fichero de texto con el nombre VideoAtresPlayer.mp4 de ~190 bytes con el contenido:

{"result":0,"resultDes":"http://dpt.antena3.com/a{"result":0,"resultDes":"http://dpt.antena3.com/{"result":0,"resultDes":"http://dpt.antena3.com/{"result":0,"resultDes":"http://dpt.antena3.com/

Sin embargo, si uso la web sí funciona. Por poner unos ejemplos, todos los programas de "El Jefe Infiltrado" fallan: http://www.atresplayer.com/television/programas/el-jefe-infiltrado/

Ubuntu 13.10 64 bits La última versión git (a día de hoy: 11/4/2014) del script.

aabilio commented 10 years ago

@simonbcn es normal que es script para atresplayer te estuviera fallando ya que en ese momento metieron necesario el logueo desde atresplayer para acceder a la API a todos los vídeos. Ahora mismo (última versión), es normal que desde el script te siga "fallando" ya que ahora pydowntv no devuelve la url final, sino la url a la que hay que acceder para obtener el vídeo (API interna de atresplayer), y para poder obtener un resultado correcto, debes estar logueado en atresplayer.. por eso ahora mismo, y de manera temporal está funcinando así.

simonbcn commented 10 years ago

en resumen, para que funcione el script ¿tengo que registrarme y estar logueado en A3Player en el browser? ¿Pero el script cómo detectará esto si es independiente del navegador?

aabilio commented 10 years ago

No, no me he explicado muy bien, sorry. El script, directamente no te va a funcionar, ya que lo que te devuelve es la url de una api interna de atresplayer (lo puedes ver si ejecutas pydowntv así: pydowntv -nsd ) y no la url final del vídeo, por lo tanto lo que descargará es una archivo de texto en formato json con información errónea, como la que muestras arriba en otro comentario. Estar logeado en atresplayer es requisito para utilizar pydowntv web desde el mismo navegador.

Al script habrá que pasarle dos flags más para atresplayer (user y pass) para hacer login, guardar la sesión, y luego hacer la petición a la API de atresplayer que proporciona ahora e script.

Ahora creo que me he explicado mejor.

simonbcn commented 10 years ago

¿Y por qué la versión web de pydowntv me deja descargar un programa sin estar logueado?

forestrf commented 10 years ago

Si un vídeo de ATresPlayer pide que estés logueado en su web para verlo, no podrás conseguir el enlace del vídeo sin antes loguearte. Si puedes verlo sin estar logueado podrás conseguir el enlace del vídeo.

Tal y como dice Aabilio, PyDownTV no da como resultado el enlace del vídeo, en su lugar da la dirección de un archivo json que contiene el enlace del vídeo. Ese archivo lo descarga el usuario de ATresPlayer, que es generado dependiendo de si estás logueado o no y de si el vídeo es publico, para usuarios registrados o de pago, con el enlace del vídeo o bien con un mensaje de error.

Por tanto es más sencillo estar logueado y tener acceso a todos los vídeos que no estarlo y no poder descargar aquellos con candado o premium.

simonbcn commented 10 years ago

Yo no tengo cuenta en A3Player y me puedo bajar vídeos de programas a través de la web usando el complemento para Firefox PyDownTV pero no lo baja cuando uso el script. Como muestra un botón: http://www.atresplayer.com/television/programas/salvados/temporada-8/capitulo-9-los-otros-olvidados_2014042500361.html

Que yo sepa todos los vídeos están disponibles en formato SD públicamente, sin necesidad de hacer login. Necesitas hacer login para verlos en HD o descargarlos para verlos offline (claro que esto es una estupidez porque si lo puedo ver en SD directamente, también lo puedo descargar).

juanjosepablos commented 10 years ago

Pues parece mas bien un error de codigo. si: URL DE DESCARGA FINAL https://servicios.atresplayer.com/api/xxxxxxxxx/es.json le quitas el .json el fichero de texto (json) que descargas tiene el contenido correcto. resultDes":"http://dpt.antena3.com/xxx/900K_640x360_main.mp4?nvb=xxx&nva=xxx&&token=xxx

es la url valida del capitulo completo sin usuario y contraseña. Tal y como lo puedes ver desde la pagina atresplayer.

juanjosepablos commented 10 years ago

A mi este cambio me ha funcionado con los episodios completos y que se emiten en abierto. Si puedes verlo en la web sin usuario y contraseña, esto te funciona (normalmente los 2 ultimos) :

diff --git a/spaintvs/grupo_a3.py b/spaintvs/grupo_a3.py
index b5239e4..1d780cf 100644
--- a/spaintvs/grupo_a3.py
+++ b/spaintvs/grupo_a3.py
@@ -406,8 +406,10 @@ class GrupoA3(Canal.Canal):
                 raise Error.GeneralPyspainTVsError(unicode(jj['resultDes']))
         elif j['type'] == "FREE": # TEMP FIX
             url = Utiles.url_fix(self.__getApiMobileUrl2(episode))
+            self.debug(unicode(url))
+            jj = json.loads(Descargar.getHtmlHeaders(Utiles.url_fix(url)))
             try:
-                url2down = url
+                url2down = jj['resultDes']
             except:
                 raise Error.GeneralPyspainTVsError(unicode(jj['resultDes']))
         else:
simonbcn commented 10 years ago

A mi esto no me funciona intentando bajar el programa: http://www.atresplayer.com/television/programas/equipo-de-investigacion/temporada-1/capitulo-91-epidemia-silenciosa_2014051600337.html

juanjosepablos commented 10 years ago

https://servicios.atresplayer.com/api/urlVideo/20140516-EPISODE-00010-false/android_tablet/20140516-EPISODE-00010-false|1400434039|d13d8b28200360ca63544d72ff2ae0d5 Da el error:

3 Hash no válido
selohu commented 8 years ago

Hola, buenas es posible también descargar los vídeos premium?. gracias