Descargar vídeos de Telecinco mitele.es de forma manual

Hace algunos días descompilé el reproductor flash de Telecinco para ver cómo lograban extraer el enlace a los vídeos. No tengo ninguna gana de implementarlo, así que pondré aquí el método y esperaré pacientemente a ver si alguien se anima :)

Imaginad que queremos descargar un vídeo de www.mitele.com, por ejemplo: http://www.mitele.es/series-online/tierra-de-lobos/temporada-2/capitulo-21/

En el código fuente de la página, nos encontraremos con un javascript que incluye la url al xml con la información del vídeo con la siguiente pinta:

(function($) {
	var flashvars = {"host":"http:\/\/media3.mitele.es\/playerxml\/74\/0a02d0786a4239a6.xml","ov_mast":"http:\/\/www.mitele.es\/media\/playerxml\/MASTTemplate.php","ov_mast_videolength":"01:12:59","ov_mast_videocontext":"\/videos\/series\/tierra_de_lobos"};
	var params = {"quality":"high","bgcolor":"#05BBED","play":"true","loop":"true","wmode":"transparent","scale":"noscale","menu":"true","devicefont":"false","salign":"","allowfullscreen":"true","allowscriptaccess":"sameDomain"};
	var dates = {"start":1321484100,"end":null};
	$(document).bind('videoEmbed',function() {
		if (dates.start || dates.end) {
			$.ajax({
				url:'/media/clock.php',
				notoken:true,
				success: function(mydate) {
					if ((!dates.start || dates.start <= mydate) && (!dates.end || dates.end >= mydate)) {
						//Okey dokey
						launchPlayer();
					}
				}
			});
		}
		else launchPlayer();
	});
	function launchPlayer() {
		new videoEmbed({id:"t5player_1",width:660,height:371},"http://www.mitele.es/media/swf/TL5VODPlayer.swf",flashvars,params,3673);	}
		$(function() { $(document).trigger('videoEmbed'); });
	})(jQuery);

Flashvars contiene el atributo “host” que en este caso es: http://media3.mitele.es/playerxml/74/0a02d0786a4239a6.xml

El XML contiene una línea que nos resulta interesante:

/nogeo/seriesonline/tierradelobos/t2/c21.mp4

Debemos quedarnos con los valores de start y end y el contenido de la etiqueta (/nogeo/seriesonline/tierradelobos/t2/c21.mp4), de ahora en adelante “id”.

Aun debemos obtener un dato más, el que hace que los enlaces sean válidos durante un período de tiempo limitado. Debemos acceder a http://servicios.telecinco.es/tokenizer/clock.php y apuntar el resultado, clock de ahora en adelante. Clock nos responderá con un valor, por ejemplo: 1321538494.

Ahora viene lo interesante. Telecinco realiza una petición a http://servicios.telecinco.es/tokenizer/tk2.php para obtener el enlace de descarga. La petición es POST y tiene la siguiente pinta:

force_http1&sec=&id=/nogeo/seriesonline/tierradelobos/t2/c21.mp4

El reproductor de Telecinco realiza la siguiente operación para obtener el argumento “sec”:

sec = AES.encrypt(serverTime + ";" + id + ";" + startTime + ";" + endTime, "xo85kT+QHz3fRMcHNXp9cA", 256);

En otras palabras, realiza un cifrado AES de 256 bits sobre el texto “clock;id;start;end” usando como clave “xo85kT+QHz3fRMcHNXp9cA”. En nuestro ejemplo la cadena sería: “1321538494;/nogeo/seriesonline/tierradelobos/t2/c21.mp4;0;0”.

Una vez obtenido “sec” ya podemos hacer la petición a tk2.php y obtener el enlace de descarga.

Si vais a implementarlo, tened en cuenta que es AES de 256 en modo counter. Además, el algoritmo de Telecinco usa Base64. El código que usa, en ActionScript lo podéis encontrar en http://code.google.com/p/lostinactionscript/source/browse/trunk/library/com/lia/crypto/AES.as?r=40 y también en JavaScript en http://www.movable-type.co.uk/scripts/aes.html

Si os animáis a implementarlo, avisad ;)

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

67 comentarios

  1. Pingback: Bitacoras.com
  2. ¿Y si quisiera descargar el video? Ya hallé esto hace un tiempo, pero siempre me daba error al poner el link del .mp4, creo recordar que decía que no estaba autorizado o el navegador no entendía la forma en que tenía que recoger las credenciales. Viendo esto, lo que necesitaba era obtener «sec». Bien, ahora por ejemplo, escojo un capítulo de aida y le paso el FireBug y puedo obtener sec ya cifrado todo el operando:


    force_http:1
    sec:703v/1ZWVlbguJetPpHHf4ZqnJqtcb9Kq5Wpz6rDYfIwtDbK6O1IiaTrv7nrr40hu4e04h2RNPy9CcnHyLW1EzJLU7M=
    id:/nogeo/series/aida/t9/series_aida_t9_c156.mp4

    Teniendo estos datos, ¿como podía descargar el capítulo? Con unas pocas líneas en php y un servidor local como apache pienso que se podría, así me lo descargo y lo veo en la tele jeje.

    Aclarar que he buscado en la caché del pc en busca del vídeo (he buscado archivos «.flv» y «.mp4») y también he probado a descargarlo con JDownloader y arroja lo siguiente: Username (BasicAuth) for http://storage.telecinco.es/nogeo/series/aida/t9/series_aida_t9_c156.mp4

    Gracias por tu atención.

  3. Yo para descargar los videos de mitele uso la aplicacion de Firefox «Download Helper» solo hay que dejar corriendo el video y darle descargar con la app.

  4. Yo ando intentando obtener la URL de los videos. Sin tener que bajarme los videos. Simplemente saber la URL de los videos. Para luego en un reproductor HTML5 verlo sin publicidad. Pero con mitele no lo consigo….

  5. Buenas, implemente lo del AES en python, y ya tengo funcionando todos los apartados de mitele.es en un plugin para xbmc (pelisalacarta).

    Lo que me falta es saber el proceso para obtener los rtmp de los «directos», telecinco,granhermano, … se ve que usan otro reproductor swf con lo que el proceso de obtención de token y url debe de ser diferente.

    Alguien sabe como descomponer el swf para extraer la información de lo que hace internamente?

  6. Aqui teneis una version php que automatiza la tarea, pones la url del video y te saca la url del mismo. Tuve un problemilla ya que canviaron la contra, y http://servicios.telecinco.es/tokenizer/tk2.php ahora es http://servicios.telecinco.es/tokenizer/tk3.php, la contra tambien cambio.
    El caso, es que este php funciona. Si deja de funcionar, enviarme un correo a forestrf@gmail.com

    aqui teneis los php, solo hay que subirlos a un server y abrir mitele.php desde el.

    http://dl.dropbox.com/u/1630604/telecinco%20mitele%20php/aes.class.php
    http://dl.dropbox.com/u/1630604/telecinco%20mitele%20php/aesctr.class.php
    http://dl.dropbox.com/u/1630604/telecinco%20mitele%20php/mitele.php

    AVISO: Ahora mismo el php no tiene ninguna seguridad, aun no se la e puesto (quizas dentro de varias horas ya lo e hecho, pero ahora me da pereza). Esa es la razon por la que no la e subido y e puesto un enlace. Cuando le ponga la seguridad, pondre un enlace aqui para que podais descargar ^^

  7. Hecho, aqui teneis el php de arriba en una web. Poneis el enlace en el cuadro de texto, tal cual como sale en mitele.es, y le dais a descargar:
    -si no sale ningun enlace darle a f5 y aceptar el cartel que salga.

    Lo dicho, si falla, enviarme un correo a forestrf@gmail.com ^^

  8. Wenas¡¡¡¡ una pregunta por que piden en algunos videos autorizacion??; bueno mejor dixo; los videos q piden autorizacion, no pueden ser descargados?

  9. Prueba con otro navegador (con chrome, al parecer no va). En firefox me va, y parece que tmbn en opera

  10. Hola :)

    He estado buscando por Google, el modo de capturar desde un reproductor externo (como VLC, Media player….) el streaming directo de Mitele.es, donde hay directos de Futbol Sala, Fashion Weekend, Cuatro, Telecinco, Gh24…. Y he dado con páginas inglesas como esta:

    http://stream-recorder.com/forum/get-live-stream-mitele-es-t10908.html (pero no hay respuesta)

    Y este blog, en la que se intenta capturar el streaming de Mitele actual, ya que antes era posible hacerlo desde un reproductor externo con rtmpdump, pero a mediados de Enero cambió el modo de emisión, y ya no es posible capturarlo diréctamente desde reproductor externo, sí que se puede grabar los streaming con rtmpsuck redireccionando puerto 1935 a localhost, creando tabla de enrutamiento.

    Viendo el modo que se expone aquí en la que se genera las cadenas de validación, pues quizá también se pueda generar «token» de los directos, en la que habitualmente trabaja de este modo:

    En cualquier directo streaming de Mitele, a la hora de hacerle play al reproductor flash embebido de Mitele hace las siguientes operaciones:

    Hace un GET a la página http://servicios.telecinco.es/tokenizer/clock.php, obtiene de ahí un valor tal así: 1328631540 luego hace un envío «POST» aquí: http://servicios.telecinco.es/tokenizer/tk3.php y me devuelve una cadena así: startTime=0&id=inlet1&directo=Ma8WAB4eHh7baJb9avaJdm46sw2BB7lXtcBoaCg%3D&endTime=0

    Y lo devuelve, al mismo http://servicios.telecinco.es/tokenizer/tk3.php generando así el valor definitivo: telecincochannel1_800k?token=c3RhcnRfdGltZT0yMDEyMDIwNzE2MTY1NiZlbmRfdGltZT0yMDEyMDIwNzE2MTkyNiZkaWdlc3Q9NzQ1MjMyNTE5ZjhlNWZhYjUyMmZjNGEzMDBlMDZiYzg= …stream rtmp://telecincolivefs.fplive.net/telecincolive-live

    Ya con eso sería suficiente y ponerlo en el rtpmdump y quedaría así, previamente capturado con wireshark:

    rtmpdump -v -r «rtmp://telecincolivefs.fplive.net:1935/telecincolive-live/telecincochannel1_800k?token=c3RhcnRfdGltZT0yMDEyMDIwNzE2MTY1NiZlbmRfdGltZT0yMDEyMDIwNzE2MTkyNiZkaWdlc3Q9NzQ1MjMyNTE5ZjhlNWZhYjUyMmZjNGEzMDBlMDZiYzg=» -W «http://static1.tele-cinco.net/comun/swf/playerMitele.swf» | vlc –

    Y de ese modo quizá podría reproducirlo, pero aunque captures toda esa información con wireshark, no se puede, ya que ha «agotado» la petición al reproducirlo en el flash embebido de Mitele y al intentar reproducirlo externamente con los mismos «data» pues cierra esa «puerta» y para reproducirlo, genera otra «telecincochannel1_800k?token=…» válido, por eso, quizá si se hace similar a lo de descargar vídeos, pues que genere esa cadena que lo da tk3.php (telecincochannel1_800k?token=c3R….) y sólo añadiendo esa nueva cadena «taken=…» lo reproduciría, ya que no ha arrancado el servidor streaming flash embebido de mitele, y de ese modo sería válido la petición y que se haga desde el comando rtpmdump con su reproductor externo.

    Espero que con estos datos se pueda generar ese token, y copiarlo al rtmpdump para reproducirlo. Gracias ;)

  11. a quien no le vaya, en firefox, probar a darle en el enlace: click derecho, guardar enlace como.

    Tambien tengo que decir que no funciona con todas las series. Usan otro «sistema». En cuanto pueda, lo hare para que vaya en esas otras. Sabras que no es una serie compatible si intentas descargar y da un fallo de php (php error missage)

    Voy a ponerle un botoncito de me gusta de facebook xDDDD

  12. Por lo que veo, hay varias versiones de players que cada una trabaja con un token. creo que la version se indica al principio del xml. por ejemplo, el php funciona con . Si podeis, postear algun video que funcione con otro token, y lo incorporo en el php. Al igual, que lo debo mejorar para que de el resultado a la primera, y tambien informo que e usado varias librerias, por lo que si lo quereis instalar, deben estar en el server instaladas (lo mejor es que ahora no recuerdo cuales eran)
    aun asi, cuando acabe de reprogramarlo (pornerme las urls, plis) mejorare el php y pondre anotaciones.
    PD: la contraseña que estaba la ultima vez: «xo85kT+QHz3fRMcHMXp9cA»

  13. Por si a alguien le interesa, implementé el tema de los «Directos» de mitele.es (Gran Hermano/Cuatro/…. )

    De nuevo está hecho en Python para el plugin pelisalacarta de XBMC.

    Les puse el enlace al repositorio por si quisieran ver el código.

    Aprovecho para dar las gracias Pablo por compartir e facilitar la base para hacer las cosas.

  14. Estoy mejorando la pag (por ejemplo, ahora no hay problemas para conseguir el enlace, lo hace a la primera. El fallo estaba en que el resultado que da clock, si falla en el token, lo mas seguro es que no funcione, por lo que hay que pedir otro clock).
    La he cambiado de servidor, ahora está en:
    http://www.descargavideos.tk/
    ya que estoy intentaré pasar las tv que estan en pydowntv al php, pero no se si podre llegar a tanto xD
    Si podeis probar que tal va.
    Saludos y gracias!

  15. me da ese error en firefox y chrome…
    Fatal error: Call to a member function getAttribute() on a non-object in /home/a3514953/public_html/index.php on line 154

    os pasa a vosotros o solo a mi?

  16. Estoy intentando incorporar series como http://www.mitele.es/series-online/terra-nova/temporada-1/capitulo-1/, que era la que daba error (esa linea era ese error, sorry). Esta parece, por mas que miro, que solo va por rtmpe.
    ejemplo de como van estos videos:
    video: http://www.mitele.es/series-online/terra-nova/temporada-1/capitulo-1/

    peticion: igual que la dea arriba, con la contraseña «xo85kT+QHz3fRMcHMXp9cA» y los tiempos start y end a 0

    la respuesta:

    mp4:c1.mp4?nvb=20120216221130&nva=20120216221200&token=0ef2b87217e9f7c81194ertmpe://streaminggeo.telecinco.es/e-telecincogeo/rtmpe/geo/serie/terranova/t1

    por mas que miro el codigo del flash decompilado, no lo consigo. Si alguien tiene idea (Carballude, help!!!!) porque lo que es yo no lo consigo. Aun asi, seguire intentandolo… De todas formas, los otros videos si van mientras se arregla esto

  17. @Forest: esos vídeos que te dan con rtmp es al utilizar el token 2. Si te fijas, con esos vídeos, los navegadores haces la petición a token 3, con la contraseña de la «M». La petición a token 3 se hace de manera diferente, no son los mismo parámetros peros sí parecidos, tambien hay que pasarle endTime, startTime, y «hash» en vez de «sec» aunque es la misma info. También, por supuesto, «id» ;)

  18. Al parecer esos videos en especial van con el protocolo rtmp. Lo sieno, pero no puedo conseguir un enlace http :S
    Asi que, para compensar, ahora se pueden descargar desde la web videos y audio de rtve.es, incluyendo alacarta, las noticias e infantil.
    Si falla algo, enviarme un correo pls.
    Saludos!

  19. Cierto. Por ejemplo ahora no hacia mas que darme fallo, y claro, la web que hice tampoco va xD
    es un asco. Debe de ser por la parida de pedir un clock… a saber.

  20. Hace varias horas, 000webhost a suspendido la pagina por superar el uso del cpu en 20% mas de 1000 veces… bueno, estoy mudando la web a otro server, y mientras tanto estará inaccesible. Siento las molestias, y espero que dure menos de un dia. Con la ley sinde entrando hoy, no creo que este problema sea el mas grave xDDDD

  21. Estoy tratando de usar los scripts que han puesto pero no me funciona con Aida, me sale mensaje de bad password. Por cierto, estoy en Puerto Rico, habia leido en otro sitio que los videos de Aida solo se pueden ver en espa~a a traves de mi tele.es. No se si ese sera el problema, conocen de algun otro sitio donde pueda ver los episodios de Aida online o descargarlos a una velocidad decente? Gracias.

  22. Eres un fenomeno compañero,gracias a gente como tu, que se toma el tiempo y la dedicacion de hacer cosas por la comunidad,podemos favorecernios los menos desfavorecidos,o lo que es lo mismo : los que no tenemos los conocimientos para hacer estas cosas,gracias y que dios te lo pague con muchos hijos jajajajajaja, no, es broma,pero muchas gracias de nuevo

  23. batalle bastante para descargar un video con el internet download manager,es muy facil. espero les sirva

  24. Muchas gracias por este enlace que me ha permitido descargar de forma muy fácil y rápida unos programas de «Saber y ganar» en los que participé y que por extrañas razones mi vídeograbador había grabado, cuando se emitieron, en blanco y negro. Ahora lo tengo perfecto, descargado desde TVE a la carta. Oye, que para una vez que sale una en la tele hay que conservarlo.
    Otra vez gracias.
    Paz

  25. Hay posibilidad de usarlos de forma de streaming pero en un reproductor como VLC por ejemplo, para asi no tener que tener abierta la misma pestaña?

  26. Para los que scripteen un php que haga esta funcion:
    el paso de recoger clock.php se puede evitar. equivale al resultado de la funcion time(). En caso de no coincidir en tu servidor con el de telecinco, sobra con aplicar la direferencia.
    En ocasiones, como justo ahora, clock.php no funcione y, aunque tk3 si lo haga, no funciona ni la web de ellos. por ello el script podra seguir encontrando el video, y la posibilidad de error es menor.
    Saludos, y espero que os sirva!

  27. Bueno, estuve batallando bastante por bajar videos de mitele.es… traté de utilizar el GetFLV, de usar Stream Transport, JDownloader con la URL directa al video, traté de usar el Firefox para usar el DownloadHelper, pero en Firefox no se pueden ver los videos de mitele.es…
    Pero bueno, aquí les tengo la solución, no es muy siemple al principio pero ya con práctica será más simple…
    La manera de hacerlo es mediante el archivo temporal del internet explorer, porque el video se guarda en la compu cuando están viendo el video desde la web, así que prácticamente ya lo tienen descargado. Solo hay que encontrarlo y dejarlo donde nosotros lo queramos.
    Bueno, lo primero es encontrar en donde se está guardando el archivo temporal, comúnmente es en:

    C:\Documents and Settings\ (user) \Local Settings\Temporary Internet Files

    pero en mi caso a mí siempre se me guardan en:

    C:\Documents and Settings\ (user) \Local Settings\Temp

    Los archivos tienen el prefijo fla y la terminación .tmp… Pongan en ver detalles así ven la fecha y hora de creación para localizar el archivo fácilmente, una vez que ya lo tienen localizado, tenemos qué dejar a que termine de cargar el video y bueno copiar el archivo a otra carpeta pero sin cerrar el video del internet explorer que si no se borra el archivo temporal, pero vamos a tener un problema, que no podemos copiar el archivo a otra carpeta porque está siendo usado por el internet explorer. Para poder copiar el archivo a otra carpeta vamos a utilizar un programita que se llama Unlocker, con este programa podremos borrar, renombrar, copiar, mover o desbloquear algún archivo que esté siendo utlizado por algún otro programa. Instalan el programa y para utilizarlo solo tiene qué dar botón derecho del mouse sobre el archivo temporal, seleccionar Unlocker y les abrirá una ventana, seleccionan el archivo y seleccionarán Copiar en el menú desplegable que se encuentra abajo a la izquierda, les abrirá una ventana para elegir en donde copiar el archivo, una vez que seleccionan el lugar empieza a copiar, pueden mover si así lo desean.

    Lo único que nos queda por hacer es renombrar el archivo de .tmp a .avi o .mp4, eso depende de si sus codecs y su reproductor, yo tengo instalado los codecs de KLite con el Windows Media Player Classic… así que puedo poner cualquier terminación y reproducir el video incluso en .tmp… si no tendrán qué bajarse algún convertidor de video de FLV a otro formato.

    Bueno, espero que me hayan entendido y hayan podido descargar los videos que hayan querido de mitele.es.

    Saludos a todos…

  28. hola,estoy leyendo todos los comentarios y no entiendo ni papa del tema,tengo un problemilla y queria saber si me podias ayudar..tengo un nokia n8 con el opera web y en telecinco.es puedo reproducir los capitulos integros de la que se avecina,sin embargo desde mi tele.com no puedo abrir ninguno,alguien tiene idea de xq?..no quiero descargarlos,solo verlos…gracias!!

  29. Como se come la cabeza el personal, mucho cerebro y poca eficacia.

    Les echaré una manita. ¿Conocen el Camtasia?…

    No es la solución pero si funciona.

  30. Para los que utilizan firefox, solo tienen que instalar el Download Helper: https://addons.mozilla.org/es/firefox/addon/video-downloadhelper/?src=hp-dl-mostpopular, entrar en el video y te saldra arriba para descargarlo.

  31. Hola

    Y si lo que quiero es sacar el codigo del video concretamente para hacer un embeded en mi blog?

    Como lo hago?

    Gracias

Dejar un comentario

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