Recursos para el desarrollo de dispositivos móviles con YouTube

Jarek Wilkiewicz, equipo de API de YouTube
Septiembre de 2010

Introducción

Los desarrolladores que quieran incorporar grabación, carga, uso compartido y reproducción de videos en sus aplicaciones para dispositivos móviles pueden usar la plataforma de YouTube para simplificar su trabajo y mejorar sus productos finales. En este artículo, se destacan algunas de las tecnologías que puedes usar en tus aplicaciones.

Grabación

El proceso de grabación de video se lleva a cabo con la plataforma móvil subyacente. Por ejemplo, tu aplicación podría activar un intent VIDEO_CAPTURE en Android:

Intent i = new Intent();
i.setAction(MediaStore.VIDEO_CAPTURE);
startActivityForResult(i, CAPTURE_RETURN);

o inicia el UIImagePickerController en un iPhone iOS:

IImagePickerController *imagePicker = [[[UIImagePickerController alloc] init] autorelease];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
[self presentModalViewController:imagePicker animated:YES];

Para opciones de grabación más avanzadas en iOS 4 y posterior, también puedes usar la clase AVCaptureSession de AV Foundation Framework.  

Carga en curso

Tu aplicación puede subir un video y sus metadatos a YouTube enviando un correo electrónico a una dirección de correo electrónico especial asociada con la cuenta de YouTube del usuario, o mediante uno de los tres métodos de API: carga basada en el navegador, carga directa o carga reanudable reanudable. En el caso de las aplicaciones para dispositivos móviles, la carga reanudable directa es la opción más confiable, ya que permite que una aplicación se recupere correctamente de las fallas de conectividad y reanude una carga desde el punto de falla. El protocolo de carga reanudable de YouTube aprovecha el mecanismo Content-Range/Range de HTTP 1.1 para transferir videos en partes y, en caso de que se produzca una interrupción, identificar la cantidad de bytes que se transfirieron correctamente.

Si bien el contenido de video real es el componente más importante de una carga, los metadatos de video son una parte integral del proceso, ya que permiten a los usuarios ubicar videos en la búsqueda y también habilita otras funciones que se describen más adelante en este artículo. Además de los elementos comunes, como una categoría, una descripción y un título, las aplicaciones para dispositivos móviles pueden incluir fácilmente datos de ubicación geográfica desde el dispositivo GPS del teléfono. Estos datos te permiten realizar búsquedas basadas en la ubicación o trazar ubicaciones de video en un mapa. Para las aplicaciones de carga de video que buscan minimizar la interacción del usuario, las cargas sin metadatos son otra opción y pueden obtener más información sobre este tema en esta charla de Google I/O.

Se comparte

La API de datos de YouTube también ofrece una completa funcionalidad para las actividades de uso compartido de videos. Al igual que otras API de datos de Google, la API de YouTube utiliza un protocolo inspirado en REST que admite representaciones de datos Atom, JSON y JSON-C. Las respuestas compactas de la API de JSON-C son ideales para los entornos móviles, que suelen tener recursos limitados. La API ofrece una funcionalidad flexible de búsqueda de videos, la posibilidad de comentar y calificar videos, acceder a suscripciones, videos favoritos, listas de reproducción y un motor de recomendaciones, y a una serie de funciones de la comunidad que te ayudan a integrar videos en aplicaciones sociales.

Todas estas funciones se pueden incorporar en una aplicación para dispositivos móviles mediante el uso de bibliotecas cliente específicas del lenguaje de programación o mediante la interacción directa con los servidores de la API de YouTube a través de HTTP. El enfoque anterior abstrae la mayor parte de la complejidad del protocolo a costa de una superficie de aplicación más grande. El último enfoque le permite realizar interacciones manuales con los servicios de API específicos que utiliza su aplicación. Al final, la elección es específica de la aplicación. Para comenzar, consulta la biblioteca de GData de Java en Android o la biblioteca de GData de Objective-C en iPhone. Las aplicaciones de video para dispositivos móviles más complejas pueden beneficiarse de la integración con un backend de servidor. Una de esas aplicaciones es YouTube Direct (Figura 1), que cuenta con un código de servidor de código abierto preconfigurado para ejecutarse en Google App Engine, así como implementaciones de cliente de referencia de subida de videos para Android (ytd-android, mostrado en la Figura 1) e iPhone (ytd-iphone).

Aplicación YouTube directa para Android
Figura 1: Aplicación directa de YouTube para Android

Seguridad

La seguridad y la autenticación también son aspectos importantes del desarrollo de aplicaciones de YouTube para dispositivos móviles. Si bien algunas operaciones de API están disponibles para clientes no autenticados, otras solicitudes requieren autorización, lo que se hace a través de un token de autenticación enviado en la solicitud de API. Estas operaciones incluyen las subidas de videos, así como cualquier otra operación en la que se modifiquen o escriban datos, o que accedan a información privada del usuario.

La API admite tres métodos de autenticación: AuthSub, OAuth y ClientLogin. ClientLogin es el método más simple de usar en aplicaciones para dispositivos móviles. En Android, se puede usar AccountManager para obtener fácilmente tokens de autenticación. Sin embargo, las aplicaciones que integran un cliente móvil y varios backends web deben considerar el uso de OAuth, que se prefiere como estándar abierto, o AuthSub, que es específico de Google. Consulte esta aplicación para ver una implementación de autenticación de OAuth de muestra en Android y GDataOAuthViewControllerTouch para ver una implementación de muestra en iPhone de iOS.  

Reproducción

Por último, existen videos para que las personas puedan verlos. Nuevamente, la plataforma de YouTube ofrece varias opciones.

  • La mayoría de las plataformas móviles modernas incluyen un reproductor de YouTube, lo que permite una integración rápida. Si tu plataforma no incluye una aplicación de reproductor de YouTube, puedes descargar una. Una aplicación para dispositivos móviles inicia un reproductor con un servicio de plataforma. Por ejemplo, en Android, una aplicación usa el intent ACTION_VIEW y, en un iPhone, puede iniciar el reproductor con el método openURL de la clase UIApplication, como se indica en esta entrada de blog.
  • El sitio web de YouTube para celulares, http://m.youtube.com, le permite integrar fácilmente la reproducción de video en una aplicación web.
  • Para un control más preciso de la experiencia de reproducción, las aplicaciones en plataformas compatibles con Adobe Flash pueden extender el reproductor de YouTube AS3, que ofrece una reproducción de mayor calidad.