Materiały dotyczące tworzenia treści mobilnych w YouTube

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

Wprowadzenie

Deweloperzy, którzy chcą w swoich aplikacjach mobilnych udostępnić funkcje nagrywania, przesyłania, udostępniania i odtwarzania filmów, mogą skorzystać z platformy YouTube, aby uprościć swoją pracę i ulepszać swoje produkty. W tym artykule opisujemy niektóre technologie, których możesz używać w swoich aplikacjach.

Nagrywanie

Proces nagrywania wideo jest przeprowadzany na podstawowej platformie mobilnej. 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 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];

Aby uzyskać bardziej zaawansowane opcje nagrywania w systemie iOS 4 lub nowszym, możesz też użyć klasy AVCaptureSession z ramy AV Foundation.  

Przesyłam

Twoja aplikacja może przesłać do YouTube film i jego metadane, wysyłając e-maila na specjalny adres e-mail powiązany z kontem YouTube użytkownika lub za pomocą jednej z 3 metod za pomocą interfejsu API: przesyłanie za pomocą przeglądarki, bezpośrednie przesyłanie lub bezpośrednie wznowienie przesyłania. W przypadku aplikacji mobilnych najbardziej niezawodną opcją jest bezpośrednie wznawianie przesyłania, ponieważ umożliwia aplikacji płynne przywracanie połączenia po awarii połączenia i wznowienie przesyłania od momentu awarii. Protokół wznawiania przesyłania w YouTube wykorzystuje mechanizm zakresu treści/zakresu HTTP 1.1 do przesyłania fragmentów filmów we fragmentach, a w przypadku przerwy w ich wyświetlaniu – do określania liczby przesłanych bajtów.

Choć treści wideo są najważniejszym elementem przesyłanego filmu, to metadane filmu są jego integralną częścią, ponieważ umożliwiają użytkownikom znajdowanie filmów w wyszukiwarce, a także umożliwiają korzystanie z innych funkcji opisanych w dalszej części tego artykułu. Oprócz typowych elementów, takich jak kategoria, opis i tytuł, aplikacje na komórki mogą łatwo uwzględniać dane o geolokalizacji z urządzenia GPS telefonu. Te dane umożliwiają wyszukiwanie na podstawie lokalizacji lub nanoszenie lokalizacji filmów na mapie. W przypadku aplikacji do przesyłania filmów, których celem jest zminimalizowanie interakcji z użytkownikiem, kolejną opcją jest przesyłanie bez metadanych, natomiast więcej informacji na ten temat można znaleźć w tym rozmowie z Google I/O.

Udostępnianie

Interfejs YouTube Data API zapewnia też zaawansowane funkcje udostępniania filmów. Podobnie jak inne interfejsy Google Data API, interfejs YouTube API korzysta z protokołu opartego na protokole REST, który obsługuje reprezentacje danych Atom, JSONJSON-C. Kompaktowe odpowiedzi interfejsu API w formacie JSON-C są szczególnie przydatne w środowiskach mobilnych, które często mają ograniczone zasoby. Interfejs API udostępnia elastyczną funkcję wyszukiwania filmów. możliwość komentowania i oceniania filmów wideo; dostęp do subskrypcji, ulubionych i playlist oraz systemu rekomendacji; oraz wiele funkcji społecznościowych, które pomogą Ci zintegrować filmy z aplikacjami społecznościowymi.

Wszystkie te funkcje można zintegrować w aplikacjach mobilnych za pomocą bibliotek klienta specyficznych dla języka programowania lub przez bezpośrednią interakcję z serwerami API YouTube przez HTTP. Pierwsze podejście pozwala uprościć większość złożoności protokołu kosztem większego wpływu na aplikację. To drugie podejście umożliwia ręczne tworzenie interakcji z konkretnymi usługami interfejsu API, z których korzysta Twoja aplikacja. Ostatecznie wybór zależy od aplikacji. Aby rozpocząć, zapoznaj się z biblioteką GData w języku Java na Androida lub biblioteką GData w języku Objective-C na iPhone'a. Bardziej złożone aplikacje wideo na urządzenia mobilne mogą skorzystać na integracji z backendem serwera. Jedną z takich aplikacji jest YouTube Direct (ryc. 1), która zawiera kod serwera Open Source wstępnie skonfigurowany do działania w Google App Engine, a także implementacje referencyjne klienta do przesyłania filmów na Androida (ytd-android, ryc. 1) i iPhone (ytd-iphone).

Aplikacja YouTube Direct na Androida
Rysunek 1. Aplikacja YouTube Direct na Androida

Bezpieczeństwo

Bezpieczeństwo i uwierzytelnianie to również ważne aspekty tworzenia aplikacji mobilnych w YouTube. Niektóre operacje interfejsu API są dostępne dla nieuwierzytelnionych klientów, natomiast inne wymagają autoryzacji, która jest realizowana przy użyciu tokena uwierzytelniania przesłanego w żądaniu do interfejsu API. Do takich operacji należą przesyłanie filmów oraz wszelkie inne operacje, które modyfikują lub zapisują dane lub uzyskują dostęp do prywatnych informacji o użytkownikach.

Interfejs API obsługuje 3 metody uwierzytelniania: AuthSub, OAuth i ClientLogin. ClientLogin to najprostsza metoda w przypadku aplikacji mobilnych, a na Androidzie można używać narzędzia AccountManager do łatwego uzyskiwania tokenów uwierzytelniających. Aplikacje, które integrują klienta mobilnego z wieloma backendami internetowymi, powinny jednak używać protokołu OAuth, który jest preferowanym otwartym standardem, lub AuthSub, który jest specyficzny dla Google. W tej aplikacji znajdziesz przykładową implementację uwierzytelniania OAuth na Androidzie, a przykład w GDataOAuthViewControllerTouch na iPhonie z iOS.  

Odtwarzanie

I w końcu filmy istnieją po to, aby ludzie mogli je oglądać. Jak już wspomniano, platforma YouTube oferuje kilka opcji.

  • Większość współczesnych platform mobilnych jest dostarczana z aplikacją odtwarzacza YouTube, co umożliwia szybką integrację. Jeśli na Twojej platformie nie ma aplikacji odtwarzacza YouTube, możesz ją pobrać. Aplikacja mobilna uruchamia odtwarzacz za pomocą usługi platformy. Na przykład na Androidzie aplikacja używa intencji ACTION_VIEW, a na iPhonie aplikacja może uruchomić odtwarzacz przy użyciu metody openURL klasy UIApplication, jak opisano w tym poście na blogu.
  • Strona mobilna YouTube http://m.youtube.com pozwala w łatwy sposób zintegrować funkcję odtwarzania filmów z aplikacją internetową.
  • Aby zapewnić większą kontrolę nad odtwarzaniem, aplikacje na platformach obsługujących Adobe Flash mogą rozszerzać odtwarzacz YouTube AS3, który zapewnia wyższą jakość odtwarzania.