Materiały na temat tworzenia treści mobilnych z YouTube

Jarek Wilkiewicz, zespół YouTube API
Wrzesień 2010 r.

Wprowadzenie

Deweloperzy, którzy chcą włączyć nagrywanie, przesyłanie, udostępnianie i odtwarzanie filmów w swoich aplikacjach mobilnych, mogą korzystać z platformy YouTube, aby usprawnić swoją pracę i ulepszyć usługi. W tym artykule omawiamy wybrane technologie, których możesz używać w swoich aplikacjach.

Nagrywanie

Proces nagrywania filmu odbywa się przy użyciu podstawowej platformy mobilnej. Twoja aplikacja może na przykład wywołać intencję VIDEO_CAPTURE w Androidzie:

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

lub uruchom aplikację UIImagePickerController na iPhonie z iOS:

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

Bardziej zaawansowane opcje nagrywania na urządzeniach z systemem iOS 4 i nowszym możesz też używać klasy AVCaptureSession z platformy AV Foundation Framework.  

Przesyłam

Twoja aplikacja może przesłać film i jego metadane do YouTube, wysyłając e-maila na specjalny adres e-mail powiązany z kontem YouTube użytkownika. Możesz też skorzystać z jednej z 3 metod API: przesyłania w przeglądarce, bezpośredniego przesyłania lub bezpośredniego wznawiania. W przypadku aplikacji mobilnych najbardziej niezawodnym rozwiązaniem jest bezpośrednie wznowienie przesyłania, które pozwala aplikacjom płynnie odzyskiwać połączenia w przypadku awarii połączenia i wznawiać przesyłanie od tego momentu. Protokół przesyłania filmów w YouTube wznawiającym wykorzystuje mechanizm Content-Range/Range HTTP 1.1 do przesyłania filmów fragmentami, a w przypadku przerwy na identyfikację liczby bajtów, które zostały przeniesione.

Chociaż materiały wideo to najważniejszy element przesyłanych filmów, metadane stanowią integralną część procesu, ponieważ użytkownicy mogą znaleźć filmy w wyszukiwarce i włączyć inne funkcje opisane w dalszej części tego artykułu. Oprócz wspólnych elementów, takich jak kategoria, opis i tytuł, aplikacje mobilne mogą z łatwością uwzględniać dane geolokalizacji z urządzenia GPS w telefonie. Dane te umożliwiają wyszukiwanie na podstawie lokalizacji lub nakładanie na mapę lokalizacji filmów. W przypadku aplikacji do przesyłania wideo, które mają na celu zminimalizowanie interakcji użytkowników, inną metodą jest przesyłanie metadanych, natomiast więcej informacji na ten temat znajdziesz w tej prezentacji Google I/O.

Dzielenie przychodów

YouTube Data API oferuje również zaawansowane funkcje dotyczące udostępniania filmów. Tak jak w przypadku innych interfejsów API danych Google, interfejs YouTube API wykorzystuje protokół REST, który obsługuje reprezentację danych Atom, JSON i JSON-C. Kompaktowe odpowiedzi w interfejsie API JSON-C sprawdzają się zwłaszcza w środowiskach mobilnych, które są często ograniczane zasobami. Interfejs API zapewnia elastyczne funkcje wyszukiwania filmów, możliwość komentowania i oceniania filmów, dostęp do subskrypcji, ulubionych filmów, playlist i systemu rekomendacji, a także wiele funkcji społecznościowych umożliwiających integrację filmów w aplikacjach społecznościowych.

Wszystkie te funkcje można zintegrować z aplikacją mobilną za pomocą bibliotek klienckich specyficznych dla danego języka. Można też bezpośrednio wchodzić w interakcję z serwerami API YouTube przez HTTP. Pierwsze podejście eliminuje większość złożoności protokołu kosztem większych obszarów aplikacji. Ta druga metoda pozwala na ręczne interakcję z konkretnymi usługami interfejsu API, których używa Twoja aplikacja. Ostatecznie wybór zależy od aplikacji. Na początek zapoznaj się z biblioteką Java GData na urządzeniu z Androidem lub z biblioteką G-Data Cel i w iPhonie. W przypadku bardziej złożonych aplikacji mobilnych reklamy wideo mogą skorzystać z integracji z backendem serwera. Jedną z takich aplikacji jest YouTube Direct (ilustracja 1), która zawiera kod oprogramowania open source skonfigurowany wstępnie do obsługi Google App Engine, a także odwołania do implementacji przesyłania filmów na urządzeniach z Androidem (ytd-android) na iPhonie (ytd-iphone).

Aplikacja YouTube Direct na Androida
Ilustracja 1. Aplikacja YouTube Direct na Androida

Zabezpieczenia

Bezpieczeństwo i uwierzytelnianie to także istotne aspekty tworzenia aplikacji mobilnych w YouTube. Niektóre działania interfejsu API są dostępne dla nieuwierzytelnionych klientów, inne wymagają autoryzacji, które są realizowane za pomocą tokena uwierzytelniania przesłanego w żądaniu API. Takie operacje obejmują przesyłanie filmów oraz inne operacje, które modyfikują lub zapisują dane albo uzyskują dostęp do prywatnych informacji o użytkowniku.

Interfejs API obsługuje 3 metody uwierzytelniania: AuthSub, OAuth i ClientLogin. ClientLogin to najprostsza metoda stosowana w aplikacjach mobilnych. Na urządzeniach z Androidem funkcja AccountManager umożliwia łatwe uzyskanie tokenów uwierzytelniania. Aplikacje integrujące klienta mobilnego i wiele backendów internetowych powinny jednak korzystać z protokołu OAuth (preferowanego w ramach otwartego standardu) lub AuthSub (charakterystycznego dla Google). W tej aplikacji znajdziesz przykładową implementację uwierzytelniania OAuth na Androidzie, a w GDataOAuthViewControllerTouch – przykładową implementację uwierzytelniania na iPhonie z iOS.  

Odtwarzanie

I wreszcie, filmy są dostępne, aby umożliwić użytkownikom ich oglądanie. W YouTube jest też kilka opcji.

  • Większość nowoczesnych platform mobilnych jest dołączona do odtwarzacza YouTube, co umożliwia szybką integrację. Jeśli Twoja platforma nie zawiera aplikacji odtwarzacza YouTube, możesz ją pobrać. Aplikacja mobilna uruchamia odtwarzacz przy użyciu usługi platformy. Na przykład na Androidzie aplikacja wykorzystuje intencję ACTION_VIEW, a na iPhonie może uruchomić odtwarzacz przy użyciu metody openURL klasy UIApplication opisanej w tym poście na blogu.
  • Witryna mobilna YouTube http://m.youtube.com pozwala łatwo zintegrować odtwarzanie filmów w aplikacji internetowej.
  • Aby zapewnić lepszą kontrolę nad odtwarzaniem, aplikacje na platformach obsługujących Adobe Flash mogą rozbudować odtwarzacz YouTube AS3, który zapewnia wyższą jakość odtwarzania.