PyDownTV2
PyDownTV2 copied to clipboard
No puedo descargar video de enlace de Atresplayer
http://www.atresplayer.com/television/programas/lasexta-noche/temporada-1/capitulo-56-baltasar-garzn_2014021600015.html
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..)
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.
@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í.
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?
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 <url_del_video>) 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.
¿Y por qué la versión web de pydowntv me deja descargar un programa sin estar logueado?
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.
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).
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.
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:
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
https://servicios.atresplayer.com/api/urlVideo/20140516-EPISODE-00010-false/android_tablet/20140516-EPISODE-00010-false|1400434039|d13d8b28200360ca63544d72ff2ae0d5
Da el error:
<resultData>
Hola, buenas es posible también descargar los vídeos premium?. gracias