Ressourcen für die mobile Entwicklung mit YouTube

Jarek Wilkiewicz, YouTube API-Team
September 2010

Einführung

Entwickler, die Videoaufzeichnung, -upload, -freigabe und -wiedergabe in ihre mobilen Apps einbinden möchten, können die YouTube-Plattform nutzen, um ihre Arbeit zu vereinfachen und ihre Endprodukte zu verbessern. In diesem Artikel werden einige der Technologien hervorgehoben, die Sie in Ihren Anwendungen verwenden können.

Aufzeichnung

Die Videoaufzeichnung erfolgt über die zugrunde liegende mobile Plattform. Ihre App könnte beispielsweise ein VIDEO_CAPTURE-Intent unter Android auslösen:

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

oder starten Sie den UIImagePickerController auf dem 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];

Für erweiterte Aufzeichnungsoptionen unter iOS 4 und höher können Sie auch die Klasse AVCaptureSession aus dem AV Foundation Framework verwenden.  

Wird hochgeladen

Deine Anwendung kann ein Video und seine Metadaten auf YouTube hochladen, indem eine E-Mail an eine spezielle E-Mail-Adresse gesendet wird, die mit dem YouTube-Konto des Nutzers verknüpft ist. Alternativ kannst du eine der drei API-Methoden verwenden: browserbasierter Upload, direkter Upload oder direkter fortsetzbarer Upload. Für mobile Anwendungen ist der direkte, fortsetzbare Upload die zuverlässigste Option, da eine Anwendung so bei Verbindungsfehlern reibungslos wiederhergestellt und ein Upload ab dem Zeitpunkt des Fehlers fortgesetzt werden kann. Das YouTube-Protokoll für fortsetzbare Uploads nutzt den HTTP 1.1-Mechanismus Content-Range/Range, um Videos in Blöcken zu übertragen und im Falle einer Unterbrechung die Anzahl der erfolgreich übertragenen Byte zu ermitteln.

Während der eigentliche Video-Content die wichtigste Komponente eines Uploads ist, sind Video-Metadaten ein wesentlicher Bestandteil des Prozesses. Metadaten ermöglichen es den Nutzern, Videos in der Suche zu finden, und ermöglichen zudem weitere Funktionen, die weiter unten in diesem Artikel beschrieben werden. Neben gängigen Elementen wie Kategorie, Beschreibung und Titel können mobile Apps ganz einfach Standortbestimmungsdaten vom GPS-Gerät des Telefons angeben. Mit diesen Daten kannst du eine standortbasierte Suche anbieten oder Videostandorte auf einer Karte eintragen. Bei Video-Upload-Anwendungen, bei denen die Nutzerinteraktion minimiert werden soll, sind Uploads ohne Metadaten eine weitere Option. Weitere Informationen dazu finden Sie in diesem Google I/O-Vortrag.

Freigabe

Die YouTube Data API bietet außerdem umfassende Funktionen zum Teilen von Videos. Wie andere Google Data APIs verwendet die YouTube API ein REST-inspiriertes Protokoll, das die Datendarstellungen Atom, JSON und JSON-C unterstützt. Die kompakten API-Antworten von JSON-C eignen sich besonders für mobile Umgebungen, die häufig ressourcenbeschränkt sind. Die API bietet flexible Funktionen für die Videosuche. die Möglichkeit, Videos zu kommentieren und zu bewerten, Zugriff auf Abos, Favoriten, Playlists und ein Empfehlungssystem und eine Vielzahl von Community-Funktionen, mit denen Sie Videos in soziale Anwendungen integrieren können.

Alle diese Funktionen können in eine mobile Anwendung eingebunden werden, indem du sprachspezifische Clientbibliotheken verwendest oder direkt über HTTP mit den API-Servern von YouTube interagierst. Beim ersten Ansatz wird der Großteil der Protokollkomplexität abstrahiert, was zu einem größeren Anwendungs-Footprint führt. Mit dem zweiten Ansatz können Sie Interaktionen mit den spezifischen API-Diensten, die Ihre Anwendung verwendet, selbst gestalten. Letztendlich ist die Auswahl anwendungsspezifisch. Sehen Sie sich zum Einstieg die Java-GData-Bibliothek für Android oder die Objective-C-GData-Bibliothek für das iPhone an. Bei komplexeren mobilen Videoanwendungen kann eine Integration in ein Server-Back-End von Vorteil sein. Eine solche Anwendung ist YouTube Direct (Abbildung 1). Sie enthält einen für die Ausführung in Google App Engine vorkonfigurierten Open-Source-Servercode sowie Referenzclient-Implementierungen von Video-Uploads für Android (ytd-android, in Abbildung 1) und iPhone (ytd-iphone).

YouTube Direct-App für Android
Abbildung 1: YouTube Direct App für Android

Sicherheit

Sicherheit und Authentifizierung sind ebenfalls wichtige Aspekte bei der Entwicklung mobiler YouTube-Apps. Während einige API-Vorgänge nicht authentifizierten Clients zur Verfügung stehen, erfordern andere Anfragen eine Autorisierung, die über ein Authentifizierungstoken durchgeführt wird, das in der API-Anfrage gesendet wird. Zu diesen Vorgängen gehören Video-Uploads sowie alle anderen Vorgänge, bei denen Daten geändert oder geschrieben werden oder die auf private Nutzerinformationen zugreifen.

Die API unterstützt drei Authentifizierungsmethoden: AuthSub, OAuth und ClientLogin. ClientLogin ist die einfachste Methode für mobile Anwendungen. Unter Android kann der AccountManager verwendet werden, um Authentifizierungstokens ganz einfach abzurufen. Bei Anwendungen, die einen mobilen Client und mehrere Web-Back-Ends integrieren, sollten Sie jedoch OAuth verwenden, da es sich um einen offenen Standard handelt, oder AuthSub, das Google-spezifisch ist. In dieser Anwendung finden Sie ein Beispiel für die Implementierung der OAuth-Authentifizierung unter Android und in GDataOAuthViewControllerTouch eine Beispielimplementierung für ein iPhone iOS.  

Wiedergabe

Und schließlich gibt es Videos, damit sich Menschen sie ansehen können. Auch hier bietet die YouTube-Plattform wieder mehrere Optionen.

  • Die meisten modernen mobilen Plattformen sind mit einer YouTube-Player-Anwendung ausgestattet, was eine schnelle Integration ermöglicht. Wenn es auf deiner Plattform keine Anwendung für den YouTube-Player gibt, kannst du eine herunterladen. Eine mobile App startet einen Player über einen Plattformdienst. Auf Android-Geräten verwendet eine App beispielsweise den Intent ACTION_VIEW. Auf einem iPhone kann eine App den Player mit der openURL-Methode der UIApplication-Klasse starten, wie in diesem Blogpost beschrieben.
  • Auf der mobilen YouTube-Website http://m.youtube.com kannst du die Videowiedergabe ganz einfach in eine Webanwendung integrieren.
  • Zur genaueren Steuerung der Wiedergabe können Anwendungen auf Adobe Flash-fähigen Plattformen den AS3 YouTube-Player erweitern, der eine bessere Wiedergabequalität ermöglicht.