Recursos de desarrollo para móviles con YouTube

Jarek Wilkiewicz, equipo del API de YouTube
Septiembre de 2010

Introducción

Los desarrolladores que quieran incluir las opciones de grabar, subir, compartir o reproducir vídeos en sus aplicaciones para móviles pueden utilizar la plataforma de YouTube para simplificar su trabajo y mejorar sus productos finales. En este artículo se revisan algunas de las tecnologías que puedes utilizar en el desarrollo de tus aplicaciones.

Grabación

El proceso de grabación de vídeo se realiza a través de la plataforma para móviles subyacente. Por ejemplo, una aplicación podría iniciar una acción VIDEO_CAPTURE en Android:

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

O también podría iniciar la clase UIImagePickerController en 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 obtener opciones de grabación más avanzadas en iOS 4 y versiones superiores, también se puede utilizar la clase AVCaptureSession del framework AV Foundation.  

Subida

La subida de los vídeos y de sus metadatos a YouTube por parte de las aplicaciones se puede llevar a cabo mediante el envío de un mensaje de correo electrónico a una dirección de correo electrónico especial asociada a la cuenta de YouTube del usuario o a través de uno de los tres métodos del API: subida basada en el navegador, subida directa o subida reanudable directa. En el caso de las aplicaciones para móviles, la subida reanudable directa es la opción más fiable, ya que permite que una aplicación se recupere correctamente de los errores de conectividad y que reanude una subida desde el momento del error. El protocolo de subida reanudable de YouTube utiliza el mecanismo Content-Range/Range del protocolo HTTP 1.1 para transferir vídeos por partes y, en caso de producirse una interrupción, para identificar el número de bytes que se han transferido correctamente.

Aunque el contenido de vídeo en sí es el componente más importante de una subida, los metadatos de vídeo son una parte esencial del proceso, ya que permiten a los usuarios encontrar los vídeos al realizar búsquedas, además de habilitar otras funciones,las cuales se describen a más adelante en este artículo. Además de elementos comunes como la categoría, la descripción y el título, las aplicaciones para móviles pueden incluir datos de ubicación geográfica del dispositivo GPS del teléfono. Estos datos permiten ofrecer búsquedas basadas en la ubicación o incluir ubicaciones de vídeo en un mapa. En el caso de las aplicaciones de subida de vídeos que pretenden minimizar la interacción del usuario, las subidas sin metadatos son otra opción. Para obtener más información sobre este tipo de subidas, consulta esta conferencia de Google I/O.


Para compartir

Aplicación para Android YouTube Direct
Figura 1: aplicación para Android YouTube Direct

El API de datos de YouTube también ofrece funciones completas para actividades sociales en vídeos. Al igual que ocurre con otras API de datos de Google, el API de YouTube utiliza un protocolo basado en REST que admite representaciones de datos Atom, JSON y JSON-C. Las respuestas compactas de JSON-C son especialmente aptas para los entornos móviles, que suelen tener limitaciones de recursos. El API ofrece funciones flexibles de búsqueda de vídeos, y permite calificar vídeos y realizar comentarios sobre ellos, así como acceder a suscripciones, vídeos favoritos, listas de reproducción y un motor de recomendaciones, además de proporcionar una serie de funciones de comunidad que permiten integrar vídeos en aplicaciones sociales.

Todas estas funciones se pueden incluir en una aplicación para móviles utilizando bibliotecas cliente de un lenguaje de programación específico o interactuando directamente con los servidores del API de YouTube a través de HTTP. El primer sistema elimina la mayor parte de la complejidad del protocolo pero hace que la aplicación consuma más memoria, mientras que el nuevo sistema permite interactuar de forma manual con los servicios de API específicos que utiliza cada aplicación. En definitiva, la opción adecuada depende de cada aplicación. Para empezar, consulta la biblioteca GData de Java para Android o la biblioteca GData de Objective-C para iPhone. Las aplicaciones de vídeo para móviles más complejas pueden obtener beneficios de la posibilidad de integración con un motor de lado del servidor. Una de esas aplicaciones es YouTube Direct (Figura 1), un proyecto software libre que incluye código de servidor pre-configurado para ejecutarse en Google App Engine, e implementaciones cliente de referencia para subir de vídeos para Android (ytd-android, como se muestra en la Figura 1) y para iPhone (ytd-iphone).

Seguridad

La seguridad y la autenticación también son aspectos importantes del desarrollo de las aplicaciones de YouTube para móviles. Aunque algunas operaciones del API están disponibles para clientes no autenticados, otras solicitudes requieren una autorización, que se realiza a través de un token de autorización enviado en la solicitud del API. Dichas operaciones incluyen subidas de vídeos, así como otras operaciones que modifican o escriben datos, o que acceden a información privada del usuario.

El API admite tres métodos de autenticación: AuthSub, OAuth y ClientLogin. ClientLogin es el método más sencillo que se puede utilizar en las aplicaciones para móviles. Este método permite obtener fácilmente tokens de autenticación si se utiliza en el , android.os.Handler)">administrador de cuentas de Android. No obstante, en las aplicaciones que integran un cliente móvil y varios servidores web, se recomienda utilizar OAuth, que es el método de autenticación preferido como estándar abierto, o AuthSub, un método específico de Google. Consulta esta aplicación para ver un ejemplo de implementación de autenticación OAuth en Android o accede a GDataOAuthViewControllerTouch para ver un ejemplo de implementación en iPhone iOS.  

Reproducción

Finalmente, los vídeos existen para que los usuarios puedan verlos. La plataforma de YouTube también ofrece varias opciones para la reproducción de los vídeos.

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

Si quieres enviar preguntas o comentarios relacionados con este artículo o sugerencias para los desarrolladores que crean aplicaciones de móviles para YouTube, accede al foro de desarrolladores del API de YouTube.