Obtener url de streaming de Play Cuatro

11 11 2009
Cuatro

Hace unos días, la cadena de televisión Cuatro de España, publicó un nuevo servicio web de streaming llamado “Play Cuatro” que utiliza el streaming proporcionado por la empresa Flumotion.

Para la nueva salida de Tivion 0.0.3 (que espero que salga en unas semanas, ya os contare porque tanto retraso en sacar otra versión) me gustaría incorporar dicho canal, pero me esta siendo muy difícil conseguir la url de streaming ya que no se si apropósito o por desconocimiento no esta muy accesible.

Por tanto escribo este artículo, para reflejar mis progresos de la “decodificación” y por si alguien tiene alguna sugerencia para ayudarme en el punto donde me he quedado atascado.

Play Cuatro proporciona acceso a dos canales de streaming, Cuatro y CNN, para acceder a las url desde su página web estos son los enlaces:

Cuatro:

http://play.cuatro.com/play/#/portada/ver/cuatro-en-directo

CNN;

http://play.cuatro.com/play/#/portada/ver/cnn-en-directo

Por ejemplo, me centrare en la de Cuatro, ya que una vez obtenga su url de streaming, para CNN será similar.

En el código fuente podemos ver este fragmento de código:

?Descargar codigo.txt
1
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
//< ![CDATA[
/*var wmode="transparent";
if (navigator.appVersion.indexOf("Linux")!=-1) wmode ="opaque";
var params = { qualitiy:"high",menu: "false", allowFullScreen:'true', wMode:wmode, allowScriptAccess: "always", base: ""};
var attributes = { id:"mediaplayer" };
var flashvars = { };
swfobject.embedSWF("player.swf", "player-rpl", "640px", "480px", "10.0.0", false, flashvars, params, attributes);
SWFAddress.onChange = function () { navigateTo(SWFAddress.getValue());  }; */
//]]>
</script>

Parece ser que el archivo Flash del reproductor se embebe mediante Javascript con la biblioteca SWFObject.

Pero por ningún lado, podemos ver el parámetro de url que se le pasa al reproductor, luego deduzco que la url la carga el reproductor flash.
Como vemos es el archivo player.swf que esta en la dirección:

http://play.cuatro.com/play/player.swf

El problema es que si accedemos a la url del reproductor directamente, este no cargará nada, únicamente el archivo flash, pero sin flujo de información. Por lo que será necesario indicarle algunos parámetros. Y he aquí el misterio.

He conseguido descifrar que se pasan los siguientes argumentos:

http://play.cuatro.com/play/player.swf?xmlurl=../assets/playlist/content.xml&livestream=1&quality=high&menu=false&wMode=opaque&allowScriptAccess=always&base=&

Con esa dirección, el player hace una llamada a una url:

http://cms.webtv.flumotion.com/gateway/cuVNaAhY5EssGNawJZSlXnEuVHMfsgFR

Esta cadena “cuVNaAhY5EssGNawJZSlXnEuVHMfsgFR” es el gatewayToken que esta definido como variable en el archivo http://play.cuatro.com/js/config.js junto con otras variables.

Además con Firebug, he conseguido averiguar otros parámetros, con los que llega a hacer otra petición más a la misma url:

http://play.cuatro.com/play/player.swf?config-xml=http://play.cuatro.com/assets/playlist/config.xml&amf-config-xml=http://play.cuatro.com/assets/playlist/amf_config.xml&xmlurl=../assets/playlist/content.xml&livestream=1&quality=high&menu=false&wMode=opaque&allowScriptAccess=always&base=&

El problema es que Firebug muestra hasta 5 peticiones en el sitio normal, por lo que me deben faltar más parametros y con eso el player cargaría.

Pero este no es el problema. Con Firebug, se ve que se hacen peticiones a las siguientes url:

http://cuatro.cuatro.stream.flumotion.com/cuatro/cuatrohigh.flv.m3u?token=8042b39788e4404e55a8383840ab69a74afb15d64afb1a86

Que en realidad cargaría:

http://195.10.10.207:80/cuatro/cuatrohigh.flv?token=8042b39788e4404e55a8383840ab69a74afb15d64afb1a86

Si pones esas url en mplayer, funciona de perlas y carga el reproductor perfectamente. Pero…(siempre hay peros), resulta que el token expira y cambia cada vez. Luego no puedo meterlo en Tivion, ya que este cambiaría cada vez. Tampoco tengo forma de sacarlo automáticamente ya que no se como el player genera este token ya que no tengo la manera de cargar el player (aún).

El token no es algo nuevo, otros canales de Tivion lo tienen, pero siempre había alguna otra url desde donde sacarlo o generarlo. Pero aquí los amigos de Cuatro se han superado…y en realidad es algo que les perjudica. Porque si ponen su canal de libre acceso, mucha más gente podrá verlo o integrarlo en otros reproductores como intento yo (sin necesidad de acceder a la página) porque simplemente les interesa ver las noticias o una serie o un programa y no necesitan entrar en la web.

Ese token, es algo que hace Flumotion de Fluendo para especificar un usuario y contraseña. Es decir, pasando un token válido, se autentifica en el sistema y se reconoce el usuario y la contraseña, porque obviamente seria un fallo de seguridad, proporcionar un usuario y contraseña públicamente en una url.

He descompilado el player.swf con Flash Decompiler, pero no tengo mucho conocimiento de Action Script y realmente sólo veo código que hace cosas, pero no lo sigo muy en profundidad. De todas maneras, parece que con los argumentos que se pasan simplemente se genera la url. La cuestión es que hace generarlos o que linea los genera para poder invocar exactamente la petición a la url de streaming.

Y eso es todo, espero que alguien le de un ojo y pueda ayudarme a sacar algo más en claro (sobre todo alguien que entienda más que yo de Flash, que es bien fácil) o espero que los señores de Cuatro recapaciten un poco y pongan la url de forma más amistosa ya en que realidad los que ganaran audiciencia serán ellos. Con suerte podremos tener un Tivion con el canal Cuatro. También estoy intentando lo mismo para la Sexta, pero esa ya es otra historia.

VN:F [1.9.17_1161]
Rating: 6.9/10 (10 votes cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)


Tivion 0.0.2: ahora con 48 canales más, más del doble!

7 09 2009
Pantallazo-Tivion 0.0.2

Tivion 0.0.2

Tivion 0.0.1 tenía un listado de 30 canales (sólo españoles), pero en esta nueva versión, se incorporan otros 48 canales nuevos, es decir, un total de 78 canales en Tivion 0.0.2.

Los canales son de varios países, en concreto 36 canales británicos (contando los canales LoSp = Low Speed), 4 canales argentinos, 1 canal ruso, 2 canales españoles y 5 radios españolas.

El listado completo de los añadidos:

España:

La 1 – TVE + LoSp

Radios (R de Radio):

R – Cadena SER Motril
R – RNE Radio 1
R – COPE
R – OndaCero Madrid
R – Punto Radio

Reino Unido:

BBC 1 + LoSp
BBC 2 + LoSp
ITV 1 + LoSp
Channel 4 + LoSp
Channel 5 + LoSp
ITV 4
Film 4 + LoSp
Zone Horror + LoSp
BBC XTRAS + LoSp
Eurosport 2 + LoSp
Eurosport News
Scuzz + LoSp
Flaunt + LoSp
Fashion TV + LoSp
BBC Click
BBC Daily Politics
BBC Panorama
BBC Question Time
BBC News 24H
BBC Newsnight
Invincible
MTA 3 Al Arabiyah
MTA Muslim TV
QVC
Sky News

Argentina:

Arco Iris TV’,
Canal 11 – Paraná
Canal 13 – Buenos Aires
Canal Luz Satelite

Rusia:

РБК tv

Muchos de los nuevos canales están en formato TS, es decir, “video Transport Stream file”, que es un formato de vídeo que es usado para almacenar vídeo en un DVD, utilizando la compresión de vídeo del estándar MPEG.

Este asunto tiene sus ventajas y desventajas. La ventaja es que recibirás una calidad de señal en HD (High Definition) pero el backend de Mplayer necesita un par de segundos adicionales para convertir a MPEG y hacer una buena caché.

Por lo tanto, es normal que necesitéis de 5 a 15 segundos para canales que no son LoSp, e incluso para los LoSp que aunque es menor ancho de banda, siguen siendo TS, necesitaras unos segundos para descomprimir el vídeo inicial. No penséis que esta roto o no carga, sólo necesita unos segundos más (en próximas versiones daré más información de la reproducción del vídeo).

Por otro lado, he empezado ha hacer el boceto de archivo de configuración en Archivo > Configuración (de momento solo muestra tu “locale” del sistema y no el de la aplicación).

También ha sido corregido el bug LP#422875 en Launchpad (como algún usuario avezado comentó), por lo que es necesario para ejecutar el programa PyGTK 2.16. En Karmic viene ya esta versión, pero si deseas ejecutarlo en Jaunty o posteriores, necesitas descargar los paquetes de Karmic o bien compilar los fuentes de PyGTK, de lo contrario el .deb no te dejará instalarlo.

Sín más dilación, los enlaces de descarga (añadido .deb para amd64, como algún usuario solicitó):

Paquete deb

i386: tivion_0.0.2-0ubuntu3_i386.deb (184)
i386.changes: tivion_0.0.2-0ubuntu3_i386.changes (142)

AMD64: tivion_0.0.2-0ubuntu3_amd64.deb (83)
amd64.changes: tivion_0.0.2-0ubuntu3_amd64.changes (137)

Source: tivion_0.0.2-0ubuntu3.tar.gz (64)

DSC: tivion_0.0.2-0ubuntu3.dsc (93)

También se pueden descargar desde mi PPA personal para Tivion (también las próximas actualizaciones y por si me reventais el ancho de banda del servidor…pillines):

https://launchpad.net/~shakaran/+archive/ppa

Gracias a:

jjgomera: por la facilitación de muchos canales británicos y radios españolas y la idea del parser XML.

#pyar y #python-es: por contestarme las dudas pythonicas con mucha paciencia.

Lista ubuntu-ar: por inspirarme en incorporar nuevos canales Argentinos.

PD: Tengo pensada hacer una galería de capturas y me gustaría hacerla con la ayuda de mis usuarios. Así que si te gusta el programa, haz una captura de él mientras lo usas (viendo cualquier canal disponible) y postéala en este mismo post (con un enlace a la imagen) con tu nombre y url de blog/web (si tienes) y expondré las mejores imágenes que impacten o resulten anecdóticas.

VN:F [1.9.17_1161]
Rating: 9.0/10 (4 votes cast)
VN:F [1.9.17_1161]
Rating: +2 (from 2 votes)


Tivion: un reproductor streaming para TV online en Ubuntu

1 09 2009
Tivion: un reproductor streaming para TV online en Ubuntu

Tivion: un reproductor streaming para TV online en Ubuntu

Tivion es un simple reproductor de canales streaming de TV online. Es un programa que he desarrollado en Python, utilizando las bibliotecas GTK, PyGTK y el backend del reproductor MPlayer.

Interfaz Tivion 0.0.1

Interfaz Tivion 0.0.1

Dispone de una interfaz en inglés y en español (a falta de nuevas traducciones) y es capaz de reproducir los siguiente 30 canales españoles por el momento:

1 – 24 horas
2 – Nova
3 – Intereconomía
4 – Canal Sur
5 – Extremadura
6 – A3 Noticias 24h
7 – Neox
8 – Canal Parlamento
9 – A3 Internacional
10 – CNN+
11 – ATEI
12 – Almansa TV
13 – Aragon TV
14 – Ojos Solidarios TV
15 – Duson TV
16 – ETB Sat
17 – Fuego TV
18 – IB3 TV
19 – Localia-Huesca
20 – Madrid (DGT)
21 – RTV Insular
22 – Teleasturias
23 – Telebahia
24 – TV Ferrol
25 – Teletaxi
26 – TV Canaria
27 – TV Martí
28 – TV Segovia
29 – Velevisa
30 – Videncia TV

Entre otras características, soporta:

- Pantalla completa (F9)

- Pausado (Ctrl + Espacio)

- Reanudación (Ctrl + Espacio)

- Parada

- Subida/bajada de volumen

- Captura de pantalla (Ctrl + S)

- Ventana encima

Puedes encontrar el icono de acceso directo en Aplicaciones > Internet > Tivion o bien ejecutar el binario escribiendo en el terminal tivion

Un pequeño video de Youtube mostrando la interfaz de la aplicación:

Imagen de previsualización de YouTube

La primera versión liberada es la tivion 0.0.1 esta bajo licencia GPLv3 que a continuación puedes descargar como .deb y código fuente.

Paquete deb

tivion_0.0.1-0ubuntu1_i386.deb

Código fuente: tivion_0.0.1-0ubuntu1.tar (105)

DSC: tivion_0.0.1-0ubuntu1.dsc

Changes: tivion_0.0.1-0ubuntu1_i386.changes

Se agradecería a la gente interesada en incorporar nuevos canales (de España u otros países), reportar bugs, mejoras, sugerencias, etc que me escriban un correo o bien dejen aquí un comentario con la url del la web/canal de streaming/bug/mejora/sugerencia.

Actualizacion:

Como algunos usuarios me han sugerido (gracias #pyar) estoy en pleno proceso de activar el proyecto en Launchpad:

https://launchpad.net/tivion

De momento estoy investigando e informándome, pero es posible que podáis reportar fallos, sugerencias y demás allí.

VN:F [1.9.17_1161]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.17_1161]
Rating: +1 (from 1 vote)