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. Los vídeos siempre los ha descargado con DownloadHelper (desde Firefox)… y desde hoy 1 de Noviembre 2010, los videos que descargo en FLV están en color azulado, han modificado los colores del propio archivo FLV. nosé el porque RTVE se empeña en hacer imposible el visionado de sus videos en cualquier dispositivo excepto desde un PC con internet y desde un navegador web…. y que el Flash Player corra bien, pues si no se ve el video dando saltos)

  2. Qué grande eres! Artista!, viva el Ciberneocomunismo y la cultura asequible a todos los cerebros! qué bonito es no-ser-tonto!

    Miles de gracias. Has salvado la vida a más de uno sin saberlo. Sigue así!

    Respeto.

  3. Muchas gracias!. Qué suerte que aun exista gente como tú.

    Te deseo lo mejor jejeje.

  4. Hola, Carballude! Volví de trabajar fuera de Buenos Aires, y me encuentro con la sorpresa de que ni con tu genial programa puedo bajar tres capítulos de cu´netame como pasó que me faltan, de esta última temporada. Tu programa me ponde: http://www.rtve.es/resources/TE_NGVA/mp4/0/0/1292543569600.mp4 pero no me deja guardarlo ¿Sabes qué está pasando?
    Mil gracias!
    Graciela
    (de Buenos Aires, Argentina)

  5. Graciela Restelli acabo de probar a bajarme el video que has puesto y si que puedo bajarlo y guardarlo, quizás tengan en los servidores algun tipo de problema o restricción cuando ya has bajado varios videso, vuelve a provarlo más tarde o mañana.

    Saludos.

    Carballude ¿Podrías crear un gestor de descargas que lo que hiciera fuera descargar los enlaces de los videos de esta página? la idea es que si tenemos varios videos que en este momento no podemos descargar, añadirlos todos en ese programa y que el programa los vaya descargando y así no tienes que ir a buscarlos otra vez, en el caso de que los guardaras en algún block de notas.

  6. Hola Pablo,

    He seguido las instrucciones, ¡si que hay que leer código!, pero vale la pena, el que yo me he bajado esta en mp4 en vez de en flv pero las instrucciones sirven igual.

    Gracias

  7. Compañero, he descargado el programa y el código fuente pero no me deja instalarlo. Me da error nada más ejecutarlo y me dice que informa de errores a microsoft.

  8. Hola Sr. Carballude: Ante todo muchas gracias por tu esfuerzo y por compartir tu sabiduría con nosotros. Me he descargado esta utilidad para descargarme un video de tve de la mediateca le pongo la dirección del video a tu utilidad me acaba todo el proceso pero no se si me descarga el video y donde lo hace. Me podrias decir como utilizarlo, por favor. Otra vez muchas gracias por tu tiempo y paciencia.

  9. José A. el programa te da el enlace de descarga, para descargarlo has de pulsar sobre el enlace que te da el programa, si no empieza la descarga copia el enlace, pegalo en tu navegador y pulsa intro, entonces empezará la descarga, te pregunta si quieres guardarlo o abrirlo, elige guardar, luego te preguntará donde quieres guardarlo y cuando elijas donde empezará la descarga.

    Saludos.

  10. Hola Sr. Carballude: He probado de hacer lo que me dice y no me funciona, pero si lo hago con los atajos del teclado si que va. Tampoco he podido descargar un vídeo de los de cocina de antena 3. Supongo que no funciona para todo tipo de enlaces. El que al final pude descargarme de la tve se descarga sin audio. Muchas gracias por tu respuesta y por hacer este tipo de utilidades. Hasta pronto.

    P.D. He encontrado en la red una utilidad parecida a la suya para descargar vídeos de la tv3 catalana y me ha funcionado muy bien. Pero solo vale para esta cadena.

  11. Un saludo y gracias amigo Carballude, he usado tu programa y me pasa lo siguiente: Todo va bien hasta que pongo la URL para bajar el video, pero como el video es .mp4 mi ordenador primero me arrancaba el RealPlayer en formato audio, y lo que hice fue deshabilitarlo en los complemenetos del explorador. Y asi tampoco me funciona, en lugar de ponerse a bajarlo intenta ejecutarlo y me sale la tipica crucecita roja, como cuando no encuentra un imagen… ¿Tienes alguna idea de como forzar la bajada y no la lectura del fichero?
    Gracias de todos modos

  12. Ahora no son 6 dígitos, sino 7. Parece que lo han vuelto a cambiar y Sherlock Downloader ya no funciona, al menos con el fichero que he intentado descargar (capítulo 113 de Amar en Tiempos Revueltos, del 16 de febrero).

  13. Hola!!Muy buena la página y las indicaciones que ofreces;

    Soy un poco torpe con esto, y me gustaría poner un video de tve en un blog; ¿es posible hacerlo? no encuentro la forma.

    te agradecería me echaras una mano.

  14. me quede en:

    20T14:32:00+01:00″defaultLocation=»/deliverty/demo/resources/mp4/8/8/1300632829888.mp4″>

    me puedes ayudar a acabarlo

  15. No puedo instalar el programa ‘SherlockDownloader’ porque no encuentro ningún ejecutable en la carpeta comprimida que descargo. ¿Alguién puede decirme, por favor, cómo instalarlo?. Muchas gracias, Fígaro.

  16. No tenemos una muy monopolio. Tenemos participación en el mercado . Hay una diferencia .
    Ninguna empresa es un poco más propensos a tener éxito de una oculta en el enemigo hasta que realmente está maduro para su ejecución.

  17. Alguien me podría dar la ruta para poder descargar el programa de la nube de tve2, ya que soy novata en todo este tema.

    Gracias,
    Belén

  18. You might have heard about the brand which is best known as Louis Vuitton. Well, we have to ask you that if you have ever experienced any of its products? bolsas louis vuitton It is seriously a good thing if you have but what if the price gets so high that you are unable to afford these items?

  19. Buenas. Compañero Carballude, muchas gracias por compartir. Llegué acá por cuestiones de shtml, no por las cadenas de televisión.
    Me gustaría saber si puedes ayudarme con las páginas del bbc, ya que necesito bajar unos videos y algunas aplicaciones flash para las clases con mis niños de primaria, y no he podido hasta ahora. Te dejo el enlace para que veas si me puedes ayudar:

    http://www.bbc.co.uk/learningzone/clips/food-chains/2312.html
    http://www.bbc.co.uk/schools/scienceclips/ages/10_11/interdependence.shtml

    Muchas gracias.

  20. Wow that was odd. I just wrote an incredibly long comment but after I clicked submit
    my comment didn’t appear. Grrrr… well I’m not writing all that over again. Anyhow, just wanted to say great blog!

  21. Chung toi chuyen:
    – lam bang hieu quang cao
    – chu noi inox
    – gia cong chu mica hut noi
    – xi ma crom
    Lien he sdt/zalo: 0947.85.0022
    Website: dinhphanadvertising.com

Dejar un comentario

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