Ressources pour le développement mobile avec YouTube

Jarek Wilkiewicz, équipe de l'API YouTube
Septembre 2010

Introduction

Les développeurs qui souhaitent intégrer l'enregistrement vidéo, la mise en ligne, le partage et la lecture dans leurs applications mobiles peuvent utiliser la plate-forme YouTube pour simplifier leur travail et améliorer leurs produits finaux. Cet article présente certaines des technologies que vous pouvez utiliser dans vos applications.

Enregistrement

Le processus d'enregistrement vidéo est effectué à l'aide de la plate-forme mobile sous-jacente. Par exemple, votre application peut déclencher un intent VIDEO_CAPTURE sur Android:

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

ou lancez UIImagePickerController sur l'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];

Pour des options d'enregistrement plus avancées sur iOS 4 et versions ultérieures, vous pouvez également utiliser la classe AVCaptureSession du framework AV Foundation.  

Importation…

Votre application peut mettre en ligne une vidéo et ses métadonnées sur YouTube en envoyant un e-mail à une adresse e-mail spéciale associée au compte YouTube de l'utilisateur ou en utilisant l'une des trois méthodes d'API : mise en ligne dans le navigateur, mise en ligne directe ou mise en ligne directe avec reprise. Pour les applications mobiles, l'importation directe avec reprise constitue le choix le plus fiable, car elle permet à une application de récupérer en douceur après un échec de connectivité et de reprendre l'importation à partir du point d'échec. Le protocole de mise en ligne avec reprise de YouTube utilise le mécanisme HTTP 1.1 Content-Range/Range pour transférer des vidéos par fragments et, en cas d'interruption, pour identifier le nombre d'octets transférés.

Bien que le contenu vidéo soit l'élément le plus important lors d'une mise en ligne, les métadonnées de la vidéo font partie intégrante du processus. En effet, elles permettent aux utilisateurs de localiser des vidéos dans les résultats de recherche et activent d'autres fonctionnalités décrites plus loin dans cet article. En plus des éléments courants tels qu'une catégorie, une description et un titre, les applications mobiles peuvent facilement inclure des données de géolocalisation provenant de l'appareil GPS du téléphone. Ces données vous permettent de fournir une recherche basée sur le lieu ou de tracer le lieu de tournage d'une vidéo sur une carte. Pour les applications d'importation de vidéos qui cherchent à réduire les interactions des utilisateurs, l'importation sans métadonnées est une autre option. Vous trouverez davantage d'informations à ce sujet dans cette conférence Google I/O.

Partage

L'API YouTube Data offre également des fonctionnalités enrichies pour les activités de partage de vidéos. Comme les autres API Google Data, l'API YouTube utilise un protocole inspiré de REST qui prend en charge les représentations de données Atom, JSON et JSON-C. Les réponses d'API compactes de JSON-C sont particulièrement adaptées aux environnements mobiles, qui sont souvent limités en ressources. L'API offre une fonctionnalité de recherche vidéo flexible, la possibilité de commenter et d'évaluer des vidéos, l'accès aux abonnements, aux vidéos préférées, aux playlists et à un moteur de recommandation, ainsi qu'une multitude de fonctionnalités de communauté qui vous aident à intégrer des vidéos dans des applications de réseau social.

Toutes ces fonctions peuvent être intégrées à une application mobile à l'aide de bibliothèques clientes spécifiques à un langage de programmation ou en interagissant directement avec les serveurs d'API de YouTube via HTTP. La première approche permet d'extraire la plupart de la complexité du protocole, mais au détriment de l'empreinte de l'application. Cette dernière approche vous permet de créer manuellement des interactions avec les services d'API spécifiques utilisés par votre application. En fin de compte, le choix est spécifique à l'application. Pour commencer, consultez la bibliothèque Java GData pour Android ou la bibliothèque Objective-C GData pour l'iPhone. Les applications vidéo mobiles plus complexes peuvent bénéficier de l'intégration à un backend serveur. Parmi ces applications, YouTube Direct (figure 1) intègre un code de serveur Open Source préconfiguré pour s'exécuter sur Google App Engine, ainsi que des implémentations clientes de référence pour l'importation de vidéos pour Android (ytd-android, illustré dans la figure 1) et iPhone (ytd-iphone).

Application YouTube Direct pour Android
Figure 1 : Application Android YouTube Direct

Sécurité

La sécurité et l'authentification sont également des aspects importants du développement d'applications YouTube pour mobile. Alors que certaines opérations API sont disponibles pour les clients non authentifiés, d'autres nécessitent une autorisation, qui est effectuée par le biais d'un jeton d'authentification soumis dans la requête API. Ces opérations incluent les mises en ligne de vidéos, ainsi que toute autre opération qui modifie ou écrit des données, ou qui accède à des informations utilisateur privées.

L'API accepte trois méthodes d'authentification: AuthSub, OAuth et ClientLogin. ClientLogin est la méthode la plus simple à utiliser pour les applications mobiles. Sur Android, AccountManager peut être utilisé pour obtenir facilement des jetons d'authentification. Toutefois, les applications qui intègrent un client mobile et plusieurs backends Web doivent envisager d'utiliser OAuth, qui est de préférence utilisé comme norme ouverte, ou AuthSub, propre à Google. Consultez cette application pour obtenir un exemple d'implémentation de l'authentification OAuth sur Android, et GDataOAuthViewControllerTouch pour un exemple d'implémentation sur iPhone iOS.  

Lecture

Enfin, les vidéos existent pour que les spectateurs puissent les regarder. Pour rappel, la plate-forme YouTube propose plusieurs options.

  • La plupart des plates-formes mobiles modernes sont fournies avec une application de lecteur YouTube, ce qui permet une intégration rapide. Si votre plate-forme n'inclut pas d'application YouTube Player, vous pouvez en télécharger une. Une application mobile lance un lecteur à l'aide d'un service de plate-forme. Par exemple, sur Android, une application utilise l'intent ACTION_VIEW. Sur iPhone, une application peut lancer le lecteur à l'aide de la méthode openURL de la classe UIApplication, comme expliqué dans cet article de blog.
  • Le site Web YouTube pour mobile, http://m.youtube.com, vous permet d'intégrer facilement la lecture vidéo dans une application Web.
  • Pour un contrôle plus précis de l'expérience de lecture, les applications sur les plates-formes compatibles avec Adobe Flash peuvent étendre le lecteur YouTube AS3, ce qui permet une lecture de meilleure qualité.