Descargar vídeos de TVE

Nota: Este programa está discontinuado. Hay una versión mejorada y actualizada en https://www.carballude.es/blog/?p=1019

Hace algún tiempo publiqué un Script para descargar vídeos de TVE. Desgraciadamente cambiaron su sistema y dejó de funcionar. Sin embargo, ayer necesité descargar algunos vídeos porque no iba a tener conexión así que me puse manos a la obra e investigué su sistema. A continuación explicaré cómo descargar los vídeos manualmente y publicaré el código de un programa en C# y un script de PowerShell que automatizan el proceso.

Funcionamiento del sistema

Cuando se accede a un vídeo de TVE la dirección que obtenemos es similar a esta: http://www.rtve.es/mediateca/videos/20100814/jovenes-solistas/851513.shtml. Realmente sólo nos interesa el nombre del fichero shtml, en este caso 851513, para hacerlo genérico, digamos que es de la forma abcdef.

Por cada fichero shtml de ese aspecto, tenemos un fichero xml que da detalles sobre el vídeo que ofrece. La URL de ese xml se construye de la forma: http://www.rtve.es/swf/data/es/videos/video/f/e/d/c/abcdef.xml. En el caso de nuestro ejemplo, la dirección que formaríamos sería: http://www.rtve.es/swf/data/es/videos/video/3/1/5/1/851513.xml

Llegados a este punto, pueden pasar dos cosas. Algunos xml contienen el elemento <file>URL</file>, si este fuera el caso, no hay más que hacer, esa es la dirección desde la que podríamos descargar el fichero. Sin embargo, algunos xml (como el de nuestro ejemplo) contienen <file/>, con lo que no tenemos ni idea de dónde puede estar.

De ocurrir eso, tendríamos que seguir leyendo el xml hasta encontrar una referencia a assetDataId:: seguido de otro código de 6 dígitos, 527620 en el caso del ejemplo. Dicho código nos servirá para formar una url con la siguiente fórmula: http://www.rtve.es/scd/CONTENTS/ASSET_DATA_VIDEO/f/e/d/c/ASSET_DATA_VIDEO-abcdef.xml. En nuestro caso obtenemos: http://www.rtve.es/scd/CONTENTS/ASSET_DATA_VIDEO/0/2/6/7/ASSET_DATA_VIDEO-527620.xml.

Dentro de ese xml encontraremos el atributo defaultLocation, y nos interesa la ruta desde /flv, a la que antecederemos de http://www.rtve.es/resources/TE_NGVA. Es decir, en nuestro ejemplo obtenemos:

defaultLocation="/deliverty/demo/resources/flv/8/9/1281768459498.flv"

Que debemos cambiar por: http://www.rtve.es/resources/TE_NGVA/flv/8/9/1281768459498.flv y ya estaremos listos para descargar el fichero :)

Si alguien se pregunta cómo he descubierto el sistema, simplemente he leído los ficheros shtml y xml y he analizado el tráfico que enviaba el reproductor Flash de TVE con Wireshark, siguiendo el método que ya empleé para GoEar y que explico en https://www.carballude.es/blog/?p=444

Programa en C#

Como me parecía muy pesado hacer todo esto a mano, me he creado un sencillo programa en C# que automatiza el proceso. Podéis descargároslo junto con su código fuente, pero que nadie tome ese código para nada “serio”. Es una chapuza del quince, son cuatro líneas puestas juntas para hacer lo justo, basta con mostraros esto:

        public Form1()
        {
            CheckForIllegalCrossThreadCalls = false; //Smelly
            InitializeComponent();
        }

Os dejo una capturilla:

Script PowerShell

Últimamente me estoy aficionando mucho a PowerShell y casi siempre la tengo a mano, así que me he decidido a hacerme un script que me ayude en la tarea. Tal y como está hace lo mismo que el programa en C#, pero si tenéis wget en vuestro sistema, descomentando la línea que indico haréis que además os lo baje ;)

function PrintBanner()
{
	Write-Host "TVE Revealer for PowerShell - v0.1"
	Write-Host "Pablo Carballude - 16/08/2010"
	Write-Host ""
}

function DownloadFileFromURL([string]$url)
{
	$aux = $url.Split('/')
	$id = $aux[$aux.Count-1].Split('.')[0]
	$url = "http://www.rtve.es/swf/data/es/videos/video/" + $id[5] + "/" + $id[4] + "/" + $id[3] + "/" + $id[2] + "/" + $id + ".xml";
	$content = (new-object net.webclient).DownloadString($url);
	if ($content.Contains("")) 
	{
		$aux = [regex]::split($content, "assetDataId::")[1]
		$id = $aux.Split('"')[0]
		$url = "http://www.rtve.es/scd/CONTENTS/ASSET_DATA_VIDEO/" + $id[5] + "/" + $id[4] + "/" + $id[3] + "/" + $id[2] + "/ASSET_DATA_VIDEO-" + $id + ".xml";
		$content = (new-object net.webclient).DownloadString($url)
		$url = [regex]::split($content,"defaultLocation=""/deliverty/demo/resources/")[1]
		$url = "http://www.rtve.es/resources/TE_NGVA/" + $url.Split('"')[0]
	} else {
		$aux = [regex]::split($content, "")[1]
		$url = [regex]::split($aux,"")[0]
	}
	Write-Host $url
	#Uncoment the following line to download the file with wget
	#wget $url
}

PrintBanner
DownloadFileFromURL($args[0])

Por Carballude

Me llamo Pablo Carballude González, soy graduado en computación con master en HCI y Seguridad Informática. Actualmente trabajo para Amazon en Seattle como Software Developer Engineer. Soy de esas personas que no saben si los textos autobiográficos deben ser en primera o tercera persona. Lo intenté en segunda, pero no le entendí nada :P

98 comentarios

  1. Amigo. Sos la ostia. Muchísimas gracias. Soy forofa de días de cine y quiero bajarme todo lo que hay del ultimo año en la mediateca y no encontraba como. Me reconforta que haya gente como tu que se da a la tarea de inventarse algo y darlo sin ningún interés. Muy divertido tu comentario sobre los textos autobiográficos.
    Un saludo desde San Cristóbal, Chiapas, México… y otra vez gracias.
    Irene Rojas
    Lilcenciada en comunicación y… nodo de captación y redistribución de materiales culturales liberados en la red. O sea, pirata de cabecera de buenas películas, programas y libros en este pueblito del sur, donde no hay librerías, ni filmotecas, ni cines que valgan la pena.

  2. Hola Pablo. ¿Puedes explicarte de otra forma para que podamos utilizar el script gente inexperta como yo? He descargado el Power Shell pero no sé lo qué es el wget. ¿Qué nombre se le da al script y cómo se ejecuta? Muchas gracias. Un saludo.

  3. ¡Hola Pablo!
    Eres un prodigio, que maravilla.
    Me ha costado ponerlo en marcha porque yo no soy más que una aficionada. En mi vida había hecho ni utlizado un Script. El programa en C funciona también y más cómodo que el Script.
    Ya para seguir pidiendo ¿qué programa uso para descargar el .flv? ¿Cuál me recomiendas? Es que lo estoy bajando desde el propio explorador pero como haya que salir luego vuelve a empezar desde el principio.
    Muchas gracias de antemano.
    Vaya aporte.
    Es que a los de TVE ya les vale mucho ponerlo online para tener que verlo ahí sin poder bajarlo y verlo donde quieras tu.

  4. Manuel,

    Si no dices que error da, es imposible que pueda ayudarte. Yo acabo de probarlo con ese programa y estos son los datos:
    Detectado id = 874519
    Creada la dirección: http://www.rtve.es/swf/data/es/videos/video/9/1/5/4/874519.xml
    Descargando el xml…
    Detectado el assertDataId = 538593
    Creada la dirección: http://www.rtve.es/scd/CONTENTS/ASSET_DATA_VIDEO/3/9/5/8/ASSET_DATA_VIDEO-538593.xml
    Descargando el xml…
    La url de descarga es: http://www.rtve.es/resources/TE_NGVA/flv/8/6/1284310988468.flv

    Usando la URL de descarga deberías poder descargarlo con cualquier programa.

  5. Hola Pablo gracias por el programa funciona muy bien, solo te queria comentar que tengo algunos enlaces mas antiguos que al meterle la direccion al programa me da error, y se cierra el programa, o no encuentra el enlace, tienes algun programa que lo haga por el metodo antiguo, y consiga descargarmelos gracias.

  6. Hola Pablo. Soy el de encima ya he solucionado el problema, si teneis algun enlace antiguo, o en el buscador de Rtve habeis encontrado algo que descargar antiguo, y no os lo baja el programa dando error y cerrandose, pues yo he conseguido bajar cosas de hace mas de 2 años de la web de rtve que ya creia que ni estaban en su servidor, ya que ni permitia visualizarlas, aparecia el Play le dabas o ni aparecia nada, no iba el enlace, pero aun estaban en el servidor, y las he descargado de la siguiente forma:

    Ejemplo:

    http://www.rtve.es/alacarta/player/475609.html (Mas de 2 años)

    Cojemos el Numero 475609 y se lo ponemos a la terminacion de un enlace actual como:

    http://www.rtve.es/mediateca/videos/20100912/paraisos-cercanos/484352.shtml
    http://www.rtve.es/mediateca/videos/20100912/paraisos-cercanos/475609.shtml CAMBIADO

    y Este enlace lo introducimos en el programa dando:
    http://www.rtve.es/resources/TE_SCIUDA/flv/9/7/1239573259579.flv DESCARGADO

    Si es mucho pedirte podrias incluir esta opcion en el programa, en otra tecla «Enlaces que fallan»

    «»»»»»»»»»»»»»»»»»»»»»»»»»»Si le hicieras esto seria un Top 1 en descargas»»»»»»»»»»»»»»

    Que haga lo que yo hago con los antiguos pero con el programa, y meterle al programa unas cuantas teclas como borrar Historial, Copy, que al darle al enter se ejecute conseguir el enlace para hacerlo mas rapido, y si ya le incluyes la opcion de descargar el enlace, y cambiarle el nombre poniendole el nombre original tipo «Rabo de Toro a la Jerezana» y una cola o lista de descargas para automatizar muchos enlaces a la vez.

    Nos vemos Figura, estoy atento a la respuesta.

  7. Para Manuel Dominguez:

    El que decia que le daba error de Windows, el archivo que pones a descargar tras meterlo en el programa es este:

    http://www.rtve.es/resources/TE_NGVA/flv/8/6/1284310988468.flv Que lo Disfrutes

    Para WINX que dices que ya no va el programa, a mi me va perfectamente, el enlace que me sale de descarga de tu video es:

    http://www.rtve.es/resources/TE_NGVA/flv/3/0/1284565578803.flv Que lo Disfrutes

    Que los Disfruteis. Saludos. Y por cierto Pablo otra opcion que puedes poner en el programa es la de borrar la ventana donde se pone el enlace, para no andar borrando cada vez que metes uno nuevo, además del de borrar Historial de enlaces conseguidos.

  8. Hola Pablo, yo lo estoy intentando con el contenido de la dirección (http://www.rtve.es/mediateca/videos/20100920/universo-matematico-200910/882229.shtml), contenido que recomiendo a todo el mundo, y tengo el siguiente problema:
    1) id = 882229
    2) http://www.rtve.es/swf/data/es/videos/video/9/2/2/2/882229.xml
    3) assetDataId::542166
    4) http://www.rtve.es/scd/CONTENTS/ASSET_DATA_VIDEO/6/6/1/2/ASSET_DATA_VIDEO-542166.xml
    5) PROBLEMA: No recupero el archivo xml. Obtengo el mensaje «La página solicitada no está disponible por haber cambiado la dirección (URL) o no existir. Disculpe las molestias.»
    ¿Te importaría comprobar si estoy aplicando correctamente el método?
    Muchas gracias por tu tiempo, por la información y por la dedicación.
    Un saludo.

  9. Hola, gran ayuda este blog, me estoy intentando usar el programa pero me da error.
    El link que quier descargar es este, pero no sería el último de estilo estilo que quiera bajar por lo que me gustaría explicaras el problema para futuras ocasiones que pudiese suceder.
    Por si influye, tengo un ordenador con win xp 64 bit. Garcias

    link que quiero bajar; http://www.rtve.es/deportes/20100808/margarita-dominguez-se-queda-a-dedo-del-bronce-25-km-aguas-abiertas/344941.shtml

    Error de windows al ejecutar TVE revealer (aparece esto);
    Descripción:
    Stopped working

    Firma con problemas:
    Nombre del evento de problema: CLR20r3
    Firma del problema 01: tvedownloader.exe
    Firma del problema 02: 1.0.0.0
    Firma del problema 03: 4c68bb23
    Firma del problema 04: TVEDownloader
    Firma del problema 05: 1.0.0.0
    Firma del problema 06: 4c68bb23
    Firma del problema 07: d
    Firma del problema 08: 0
    Firma del problema 09: System.IndexOutOfRangeException
    Versión del sistema operativo: 6.0.6002.2.2.0.768.3
    Id. de configuración regional: 3082

    Lea nuestra declaración de privacidad:
    http://go.microsoft.com/fwlink/?linkid=50163&clcid=0x0c0a

  10. ¡Hola!
    Una ayudita, por favor!
    Utilizando el programa me aparece la url de descarga, pero al pincharla no me descarga nada.
    No sé si lo estoy haciendo bien, tampoco puedo copiarla y pegarla en el explorador.
    ¿Alguna soluciÓn?
    Muxas gracias

  11. Buenas tardes, gracias por los scripts que nos hacen la vida más facil, a veces.
    Mi problema con xp Blackcristal v8 es que no corre el scrip para bajar de rtve sale el siguiente mensaje «la aplicacion no se ha podido inicializar correctamente (0xc000135). haga clic en aceptar para terminar la aplicación. El mismo scrip en otro pc con xp si corre perfectamente. Tengo firefox 3.6 con dowload helper y cuando trato de descargar segun indicas en tu post lo que hace es abrir otra ventana corre unos segundos el archivo y se bloquea, ¿a que puede ser debido?
    Gracias por tu contestación.

  12. ¡X favor!
    ¿Cómo se descarga el archivo?
    No se puede copiar la dirección de descarga ni tampoco nos lleva a la pagina pinchandola.
    Muxas gracias

  13. De chapucilla, nada de nada.
    Un gran profesional.
    Muchas gracias por su trabajo. He probado previamente otros sistemas y habían quedado anticuados. Con el suyo, lo he descargado sin problema.

    Gracias de nuevo.

  14. Vaya, el programita no sirve para mac. ¿alguien sabe como puedo descargar en mac? gracias majos os debían de dar el novel.

  15. gracias Pablo !
    dsp de leer indescifrables métodos para hacerlo, me encuentro con tu programa en C# q es una maravilla…..
    10 puntos

  16. Juán, el programa está hecho en .Net y funciona bajo Mac (vale, no es la mejor solución, pero funciona). Aquí tienes una captura del programa en mi Mac: http://img214.imageshack.us/img214/2800/tvemac.png

    A todos los demás: Nunca pensé que pudiera haber tanta gente interesada en esto… si tengo algo de tiempo haré una versión decente del programa :)

    Gracias a todos por vuestros comentarios y agradecimientos.

  17. Increíble amigo, has dado en el clavo con esta aparente «tontería». Gracias por tu trabajo, el programa es estupendo y nos libra de quebraderos de cabeza a mucha gente. Ahora podré disfrutar y compartir como es debido muchos documentales inaccesibles de otra forma… ¡mil gracias!

  18. Si tienes urgencia en conseguir cualquier video de «A la Carta» o páginas similares que esconden los videos en descarga (YouTube no esconde nada y se pueden copiar sin más desde los archivos temporales de Internet, intuyendo su tamaño, copiándolos y renombrándolos a «.flv») un sistema de capturar esos videos para tu colección es:

    Navegas la página de «A la Carta» normalmente y pones a visionar el video. Esperas a que acabe de verse todo el archivo y, cuando haya terminado y se ponga en pausa, pulsas sin complejos el botón de «Reset» del ordenador (no pidas reiniciar, haz reset como si se hubiese colgado el equipo).

    Cuando el ordenador haya reiniciado, con «MiPC» o el «Explorador de Windows» abres la carpeta:
    «C:\Documents and settings\nombre-de-tu-usuario\Configuración local\Temp»
    En esa carpeta habrá un archivo de buen tamaño (en función de lo largo que sea el vídeo) con un nombre del estilo «fla8B.tmp», es decir, empieza por «fla» y tiene una extensión «.tmp». Pues ese es el vídeo. Lo copias a otra carpeta o lo mueves, y lo renombras poniéndole la extensión «.flv».

    Puedes hacer la prueba de copiarlo durante el visionado del video, o cuando acabe de visionarse, y verás que no te deja copiarlo. Con la operación de reinicio por «reset», se burla esa protección del servidor de TVE. Al hacer reset, lo podrás copiar o mover sin ningún problema.

    Saludos y buena caza.

  19. Antes de hacer «reset», puedes mirar en la carpeta «Archivos temporales de Internet» (Dentro de «Configuración local»), pues he visto que con algunos de los videos de «A la Carta», también aparecen en esa carpeta y se dejan copiar a otra (después de haberlos visionado por completo). Incluso algunos videos se descargan con la extensión «.flv» ya puesta y todo, sólo hay que copiarlos a otra carpeta y cambiarles el nombre.

    Supongo que sabréis que los archivos de extensión «.flv» se reproducen muy bién con el reproductor VIDEOLAN.

    Saludos.

  20. La manera mas facil que he encontrado para descargarse los videos de rtve es abriendo la pagina web de rtve y el video que queramos ver usando Firefox a traves del «add on» que podeis descargar gratuitamente yendo al menu «herramientas» de Firefox y buscando el add-on «DownloadHelper». Yo lo he probado y se me descargan perfectamente sin tener que hacer ningun otro paso adicional

  21. Me olvidaba decir que no hace falta visionar todo el video para poder descargarlo. Una vez estas en la pagina web donde esta el video y le has pinchado como si quisieras visionarlo, hay que ir donde esta el icono del «DownloadHelper» que son tres bolitas de color amarillo azul y rojo que esta situado justo debajp de los menus de Firefox, y pulsando la pequena flecha que hay al lado de las 3 bolitas aparee el video y la opcion de bajarlo. Una vez ha empezado la descarga ya se puede salir de la pagina de rtve sin problemas porque la descarga continuara aunque no visionemos el archivo.

  22. Excelente !! funcionó a la perfección. Vamos a probar ahora de la forma corta.

    Saludos desde Chile !

  23. Buenos días. Estoy intentando descargar un vídeo con un reportaje de donde vivo siguiendo tu programa y no sale nada, te explico.
    Me he bajado el programa y tras introducir la dirección donde está alojado el vídeo http://www.rtve.es/mediateca/videos/20090515/los-pueblos-pontedeume/505752.shtml tu programa me facilita esta dirección http://www.rtve.es/resources/TE SLOSPUE/flv/6/4/1242387715946.flv dirección que tras ponerla en el navegador me lleva a esta otra y no puedo descargar nada http://media9.rtve.es/resources/TE%20SLOSPUE/flv/6/4/1242387715946.flv por lo que os pediría me informáseis de que es lo que estoy haciendo mal.
    Un saludo y gracias anticipadas ya que necesito bajar ese vídeo.

  24. Ángel-I. Cuando te sale el enlace para descargar, lo sombreas con el raton, y tocas Ctrl+C y lo pegas en el navegador tocando Ctrl+V

    kike
    Posted octubre 21, 2010 at 4:18 PM
    no tengo …. de hacerlo con este video alguien me podria ayudar?? gracias
    http://www.rtve.es/alacarta/search.html?q=espa%F1a+directo#895758

    La url de descarga es: http://www.rtve.es/resources/TE_NGVA/flv/0/2/1286399788620.flv

    El resto de los que habeis pedido como casi todos los de RTVE de hoy mismo dan error, compruebalo Pablo.

  25. Pablo estos 3 videos de abajo me dan fallo:

    Marcos
    link que quiero bajar; http://www.rtve.es/deportes/20100808/margarita-dominguez-se-queda-a-dedo-del-bronce-25-km-aguas-abiertas/344941.shtml

    Este da error no se porque, el programa ha generado errores y debe cerrarse.

    Pedro : http://www.rtve.es/television/20091026/fabrica-ideas-tve-programa/297785.shtml

    Este da error no se porque, el programa ha generado errores y debe cerrarse.

    jaku

    hola ya que sois unos masters en estode la descarga dificil me podriais descargar esto porfa?
    http://www.rtve.es/mediateca/audios/20100621/dia-musica-heineken-2010-nacho-vegas/806196.shtml

    Este da error no se porque, el programa ha generado errores y debe cerrarse.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *