Ressourcen für die mobile Entwicklung mit YouTube

Jarek Wilkiewicz, YouTube API-Team
September 2010

Einführung

Entwickler, die Videos aufnehmen, hochladen, teilen und abspielen möchten, können mit der YouTube-Plattform ihre Arbeit vereinfachen und ihre Endprodukte verbessern. In diesem Artikel werden einige Technologien beschrieben, die Sie in Ihren Anwendungen verwenden können.

Aufnahme läuft

Die Videoaufzeichnung erfolgt über die zugrunde liegende mobile Plattform. Zum Beispiel könnte Ihre App auf Android-Geräten den Intent VIDEO_CAPTURE auslösen:

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

oder starten Sie 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 die zugehörigen Metadaten auf YouTube hochladen. Dazu wird eine E-Mail an eine spezielle E-Mail-Adresse gesendet, die mit dem YouTube-Konto des Nutzers verknüpft ist. Alternativ kann eine drei API-Methoden verwendet werden: browserbasierter Upload, direkter Upload oder fortsetzbarer Upload. Bei mobilen Anwendungen ist der direkte Upload die zuverlässigste Wahl, da eine Anwendung so reibungslos wiederhergestellt werden kann und bei einem Fehler ein Upload fortgesetzt werden kann. Das Protokoll für fortsetzbare Uploads auf YouTube nutzt den Mechanismus Content-Range/Range von HTTP 1.1, um Videos in Teilen zu übertragen und bei einer Unterbrechung die Anzahl der erfolgreich übertragenen Byte zu ermitteln.

Die eigentlichen Videoinhalte sind die wichtigste Komponente in Uploads. Videometadaten sind jedoch ein wesentlicher Bestandteil des Prozesses. Nutzer können damit in der Suche nach Videos suchen und auch andere Funktionen aktivieren, die später in diesem Artikel beschrieben werden. Neben gängigen Elementen wie einer Kategorie, einer Beschreibung oder einem Titel können mobile Apps ganz einfach Daten zur Standortbestimmung vom GPS-Gerät des Telefons hinzufügen. Mit diesen Daten können Sie eine standortbasierte Suche durchführen oder Videostandorte auf einer Karte darstellen. Für Video-Upload-Anwendungen, die die Nutzerinteraktion minimieren möchten, sind keine Metadaten-Uploads eine weitere Option. Weitere Informationen hierzu findest du im Google I/O-Talk.

Umsatzbeteiligung

Die YouTube Data API bietet außerdem umfangreiche Funktionen für die Freigabe von Videos. Wie andere Google Data APIs verwendet auch die YouTube API ein REST-inspiriertes Protokoll, das Atom-, JSON- und JSON-C-Datendarstellungen unterstützt. Die kompakten API-Antworten von JSON-C sind besonders gut für mobile Umgebungen geeignet, die häufig ressourcenbeschränkt sind. Die API bietet flexible Videosuchfunktionen, die Möglichkeit, Videos zu kommentieren und zu bewerten, den Zugriff auf Abos, Favoriten, Playlists und ein Empfehlungssystem sowie zahlreiche Community-Funktionen, die dir helfen, Videos in soziale Anwendungen zu integrieren.

Alle diese Funktionen können mithilfe von Programmiersprachen-spezifischen Clientbibliotheken oder durch Interaktion mit den API-Servern von YouTube in eine mobile App integriert werden. Bei der erstgenannten Vorgehensweise wird die meiste Protokollkomplexität durch einen größeren Anwendungsbedarf abstrahiert. Bei letzterem Ansatz können Sie Interaktionen mit den spezifischen API-Diensten, die Ihre Anwendung nutzt, selbst erstellen. Letztendlich ist die Auswahl anwendungsspezifisch. Weitere Informationen finden Sie in der Java GData-Bibliothek für Android und der Objective-C GData-Bibliothek für das iPhone. Komplexere mobile Videoanwendungen können von der Integration in ein Server-Back-End profitieren. Eine solche App ist YouTube Direct (Abbildung 1). Sie enthält Open-Source-Servercode, der für die Ausführung in Google App Engine vorkonfiguriert ist. Außerdem enthält er Clientimplementierungen zum Hochladen von Videos für Android (ytd-android, 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 auch wichtige Aspekte der Entwicklung mobiler YouTube-Anwendungen. Einige API-Vorgänge sind zwar für nicht authentifizierte Clients verfügbar, für andere ist jedoch eine Autorisierung erforderlich. Diese erfolgt über ein Authentifizierungstoken, das in der API-Anfrage gesendet wurde. Dazu gehören Videouploads sowie alle anderen Vorgänge, durch die Daten geändert oder geschrieben oder auf private Nutzerinformationen zugegriffen wird.

Die API unterstützt drei Authentifizierungsmethoden: AuthSub, OAuth und ClientLogin. ClientLogin ist die einfachste Methode für mobile Apps. Unter Android kann der AccountManager verwendet werden, um ganz einfach Authentifizierungstoken abzurufen. Anwendungen, die einen mobilen Client und mehrere Web-Back-Ends einbinden, sollten jedoch die Verwendung von OAuth (bevorzugter offener Standard) oder AuthSub (Google-spezifisch) in Betracht ziehen. Sehen Sie sich diese App für eine OAuth-Beispielauthentifizierung für Android und GDataOAuthViewControllerTouch für eine Beispielimplementierung für iPhone für iOS an.  

Wiedergabe

Zu guter Letzt gibt es Videos, damit sich Nutzer sie ansehen können. Auch hier bietet die YouTube-Plattform verschiedene Optionen.

  • Die meisten modernen mobilen Plattformen sind mit einer YouTube-Player-Anwendung ausgestattet, was eine schnelle Integration ermöglicht. Wenn deine Plattform keine YouTube-Player-Anwendung umfasst, kannst du sie herunterladen. Eine mobile App startet einen Spieler mithilfe eines Plattformdienstes. Beispiel: Unter Android verwendet eine App den Intent ACTION_VIEW. Auf iPhones kann eine App den Player mithilfe der Methode openURL der Klasse UIApplication starten, wie in diesem Blogpost beschrieben.
  • Auf der mobilen YouTube-Website http://m.youtube.com können Sie die Videowiedergabe ganz einfach in eine Webanwendung integrieren.
  • Anwendungen für Adobe Flash-fähige Plattformen können den YouTube-Player AS3 erweitern, der eine bessere Wiedergabequalität bietet.