Experimento fallido: Embed a Nico Nico Video in Windows Live Spaces

Escuchando: "Split" by Suneohair
Jugando: Grand Theft Auto IV (XBOX 360)
Estado de Ánimo: Sin comentarios: N/A… System Error… Please press Reset Button and then count to ten…
 
Esto es un seguimiento al post anterior, donde intenté hacer un embed de un video de Nico Nico Douga a ver si Windows Live Spaces dejaba pasar el HTML tal cual o no. El resultado fue un fallo completo…
 
A continuación doy algunos detalles técnicos sobre el fallo, así que si no les llama la atención el tema mejor ni se molesten:
 
Situación: Se puede hacer el embed, pero el video nunca va a cargar. De por sí, la forma en que hice la inserción fue bastante burda y sólo logró mostrar el thumbnail del video junto con su título y descripción, ya que venían quemados en el tag.
 
Normalmente el proceso de embedding se hace con un tag de javascript que apunta al sitio web de Nico Nico y permite que el servidor genere el código en tiempo real según el Referer que viene incluido en la petición o Request HTTP. Resulta que si el Referer no corresponde a un dominio incluido en la lista de blogs soportados, el sistema se limita a devolver un script que hace un document.write que genera un hermoso mensaje de error que dice lo siguiente:
 
 

申し訳ございませんが、お使いの環境ではご利用になれません。

リファラの送信を許可するか、ニコニコ動画上でご覧ください。

(Lo sentimos mucho, el ambiente utilizado no es soportado. Para la transmisión de Referers permitidos, refierase a Nico Nico Douga.) O algo así, mis traducciones son más bien de poco fiar…

 

Traducción: Si no tienes tu blog en un dominio permitido, no puedes hacer embedding de videos de Nico Nico. Obviamente dichos dominios son los de blogs reconocidos japoneses… Y yo quejándome de la xenofobia de los de Mixi…

Primera solución que se le ocurre a uno: Sacar el javascript de un dominio válido. algo que es factible en un ambiente de pruebas, pero que no se puede hacer de ninguna forma en Spaces, porque bloquean cualquier tipo de script (y de IFrames, lo cual es de lo más desesperante).

Para sacar el script utilicé Fiddler y revisé las respuestas HTTP ante el Request de una página válida (en Ameba.jp). Al copiar este Javascript en una página HTML de prueba, el Javascript se encarga de generar un “objeto” javascript llamado Nicovideo, el cual almacena todos los datos de las películas y los reproductores de la página. Sin embargo, el video NO REPRODUCE.

Problema: La situación es la misma que cuando se copia el OBJECT tal cual desde una página válida. RESULTA Y ACONTECE que Nico Nico genera una clave llamada thumbPlayKey, la cual es dinámica y amarra la reproducción del video a una instancia en particular. Físicamente no sé cómo funciona en detalle este sistema de seguridad, puede que la llave quede amarrada a un dominio (el del referer), o que tenga algún tipo de relación con una Cookie llamada nicohistory que sólo detecté al mirar las transmisiones en Firefox con FireBug. La cosa es que sin un referer válido, es muy poco lo que se puede hacer (y ya probé con el referer de darsel.spaces.live.com y obviamente me bota el mensaje de que es inválido).

Alternativas: Ninguna, al menos que yo pueda ver. Si se tratara de una aplicación personalizada, se podría reemplazar el Referer al momento de hacer el GET, pero eso no garantiza nada y deja por fuera el ambiente de Spaces. Una opción sería intentar ver si hay forma de interceptar la fuente final del video (saltándose el thumb), pero hasta donde yo vi, esa fuente iba obviamente amarrada al thumbPlayKey.

Conclusión: Hasta que no agreguen Spaces a la lista de blogs permitidos en Nico Nico, es bastante improbable que se pueda hacer un embed de un video de dicho servicio. Son las 3 de la mañana, y llevo horas mirando el tema; tal vez con algo más de calma y con la cabeza más fría se pueda hacer un mejor analisis del problema. También sería interesante hacer un reproductor independiente para probar la teoría de que el key está asociado al referer y a nada más, pero francamente no vale la pena cuando es más sencillo simplemente abrir una cuenta en Nico NIco (aunque no sé si abrir una cuenta siga siendo tan sencillo como antes, ya que puede que hayan implementado el sistema de Mixi que hace uso del celular… pero ni idea).

お休み。。。


~ by Darsel on August 26, 2009.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: