Cómo simular que Safari para Mac OS X es Mobile Safari para que los sitios web muestren vídeo en HTML5

El truco de la cadena de agente de usuario del iPad

Para empezar, unos consejos prácticos. En mi artículo de la semana pasada acerca de cómo desinstalar Flash Player en Mac OS X, sugerí emplear Chrome como solución para ver contenidos Flash cuando uno lo necesite. Esta solución funciona porque Chrome emplea su propia versión incrustada de Flash, no la versión disponible para todo el sistema operativo. Esto funciona, pero he descubierto una solución aún mejor para Safari.

En primer lugar, aseguraos de que tenéis activo el menú Desarrollo en Safari (se activa con una casilla de verificación en el panel “Advanzado” de la ventana de preferencias de Safari). Entonces, cada vez que os topéis con un reproductor de vídeo que insista en necesitar Flash para funcionar, id a Desarrollo ? Agente de usuario ? Mobile Safari 3.2.2 — iPad. Esta opción vuelve a cargar la página actual, pero ahora Safari le indicará al sitio web que se trata de Mobile Safari en el iPad. Esto no cambia el modo en que Safari muestra la página — esto es, no hace que la versión de escritorio de Safari muestre las páginas con diferencias de tamaño o distribución de los contenidos para simular la forma en que Mobile Safari muestra las páginas en el iPad. Lo único que hace es decirle a Safari que se identifique ante el servidor web como Mobile Safari. El resultado es que, si el servidor realiza alguna verificación del agente de usuario para decidir si muestra vídeo mediante Flash o HTML5, se te mostrará la versión en HTML5 (Wikipedia tiene un buen resumen para no iniciados sobre las cadenas de agente de usuario).

Este truco hace que funcionen en Safari bajo Mac OS X — sin Flash instalado — los vídeos de Flickr, los vídeos incrustados de Vimeo, los vídeos de TED, MSNBC, y probablemente cualquier otro sitio web que ofrezca vídeos que funcionen en el iPad. Esta técnica no sirve con cualquier contenido de vídeo, pero debería funcionar con cualquier vídeo que se reproduzca en el iPad.

He creado un atajo de teclado a medida para este comando de menú en Preferencias del Sistema. Aquí podéis ver una captura de pantalla que muestra cómo configurarlo. Observad que el título es exactamente “Mobile Safari 3.2.2 — iPad”. Aunque esté en un submenú, no es necesario incluir la jerarquíe de los menús, sólo hace falta el nombre del propio elemento de menú, aunque esté anidado. Lo que hay que hacer es escribir perfectamente el nombre del elemento de menú. Copiarlo de este mismo párrafo debería ser suficiente.

Cuando se cambia la cadena de agente de usuario de este modo en Safari, el cambio sólo permanece activo en esa ventana en concreto. Las demás ventanas siguen identificándose como Safari para Mac OS X. Se puede definir una cadena de agente de usuario personalizada para Safari de forma permanente, pero requiere utilizar la herramienta de línea de comandos defaults. No recomiendo hacer esto — hace que dejen de funcionar otras cosas no relacionadas con Flash1 — pero aquí tenéis el comando (se puede deshacer esto escribiendo “defaults delete com.apple.safari CustomUserAgent” en el interfaz de comandos).

El hecho de que esto funcione en tantos sitios web demuestra que Safari para Mac OS X es perfectamente capaz de reproducir muchos vídeos disponibles en la web que aparentemente necesitan Flash. Los programadores web deberían empezar a mostrar vídeos mediante el tag HTML5 <video> como opción por defecto, y recurrir a Flash si el navegador no es compatible con el tag <video>. Si funciona en el iPad sin Flash, debería funcionar en un Mac sin Flash.

Consideraciones políticas

No se trata de ningún tipo de motivación política, ni de cierto idealismo sobre cómo deberían funcionar las cosas. He eliminado Flash de mi ordenador, y os sugiero que hagáis lo mismo, por dos cosas:

  1. Sin Flash, mi Mac usa menos potencia del procesador. El ordenador funciona a menos temperatura, con más rapidez y la batería dura más.

  2. Los vídeos que se reproducen con el tag de vídeo de HTML5 en lugar de Flash Player funcionan mejor y consumen menos potencia de cálculo. El ventilador de mi MacBook Pro casi siempre se activa cuando reproduzco vídeos a 720p mediante Flash. Casi nunca lo hace cuando reproduzco vídeos a 720p sin Flash.

Estos dos hechos son incontestables.

No estoy culpando a nadie con esto. Quizás penséis que es culpa de Adobe — que Flash Player es un software mal hecho. Quizás penséis que es culpa de Apple — que Mac OS X no publica el tipo de APIs que un plugin de navegador como Flash necesita para funcionar de forma más eficiente y aprovechar la decodificación H.264 por hardware. También se pueden plantear muchos argumentos políticos de todo tipo — que Apple ejerce su influencia para marginalizar la plataforma de una empresa de la competencia, o que Flash es una plataforma privada de código cerrado con una única implementación. Varias personas — por ejemplo aquí y aquí — aseguran que, aunque Flash desaparezca, su uso en la publicidad en la web será sustituido por animación realizada con HTML5, y que ese tipo de animaciones podrían consumir tanta potencia de procesador y carga de la batería como ocurre actualmente con Flash — y lo que es peor, podría ser más difícil bloquearlas que Flash en la actualidad.

Tengo mis opiniones sobre quién tiene la culpa del aspecto técnico de esto. Tango opiniones sobre las motivaciones políticas. No coincido con que la animación con HTML5 vaya a sufrir los mismo problemas de rendimiento que sufre hoy en día Flash (el argumento de que no tiene sentido librarse de Flash hoy porque la animación con HTML5 podría ser un problema igual de grande en el futuro me recuerda al tipo de gente que argumenta que no sirve de nada pasar de Windows a Mac OS X para evitar el software pernicioso porque, si otodo el mundo lo hiciera, los creadores de este malware empezarían a centrarse en Mac OS X). Pero nada de esto es relevante. Lo que yo digo es que ahora mismo hay ventajas prácticas al eliminar Flash. Dos hechos: (1) mayor duración de la batería y menor consumo del procesador, y (2) mejor reproducción de vídeo.

Tanto Safari como mi ordenador en conjunto funcionan mejor hoy que antes de que desinstalara Flash. Desinstalad Flash de vuestros Macs y comprobadlo vosotros mismos.


Algunos de los problemas que noté tras hacer que Safari fingiera ser constantemente Mobile Safari para iPad: los enlaces al iTunes Store dejaban de funcionar, y lo mismo les ocurría las tipografías web de TypeKit. Además, muchos sitios web, como Gmail, te mostrarán una página optimizada para el iPad en lugar del diseño de página “normal”.