Referensi untuk Pengembangan Seluler dengan YouTube

Jarek Wilkiewicz, Tim YouTube API
September 2010

Pengantar

Developer yang ingin menyertakan perekaman, upload, berbagi, dan pemutaran video di aplikasi seluler mereka dapat menggunakan platform YouTube untuk menyederhanakan pekerjaan mereka dan meningkatkan kualitas produk akhir mereka. Artikel ini menyoroti beberapa teknologi yang mungkin Anda gunakan dalam aplikasi.

Merekam

Proses perekaman video dilakukan menggunakan platform seluler dasar. Misalnya, aplikasi Anda dapat mengaktifkan intent VIDEO_CAPTURE di Android:

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

atau luncurkan UIImagePickerController di 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];

Untuk opsi perekaman lanjutan di iOS 4 dan yang lebih baru, Anda juga dapat menggunakan class AVCaptureSession dari Framework AV Foundation.  

Mengupload

Aplikasi Anda dapat mengupload video dan metadatanya ke YouTube dengan mengirim email ke alamat email khusus yang terkait dengan akun YouTube pengguna atau menggunakan salah satu dari tiga metode API: upload berbasis browser, upload langsung, atau upload langsung yang dapat dilanjutkan. Untuk aplikasi seluler, upload langsung yang dapat dilanjutkan adalah pilihan yang paling andal karena memungkinkan aplikasi pulih dengan baik dari kegagalan konektivitas dan melanjutkan upload dari titik kegagalan. Protokol upload yang dapat dilanjutkan YouTube memanfaatkan mekanisme Content-Range/Range HTTP 1.1 untuk mentransfer video dalam potongan dan, jika terjadi gangguan, untuk mengidentifikasi jumlah byte yang berhasil ditransfer.

Meskipun konten video sebenarnya adalah komponen terpenting dalam upload, metadata video adalah bagian integral dari proses tersebut karena metadata tersebut memungkinkan pengguna menemukan video dalam penelusuran dan juga mengaktifkan fitur lain yang dijelaskan nanti dalam artikel ini. Selain elemen umum seperti kategori, deskripsi, dan judul, aplikasi seluler dapat dengan mudah menyertakan data geolokasi dari perangkat GPS ponsel. Data ini memungkinkan Anda menyediakan penelusuran berbasis lokasi atau memetakan lokasi video di peta. Untuk aplikasi upload video yang ingin meminimalkan interaksi pengguna, upload tanpa metadata adalah opsi lain dan informasi selengkapnya tersedia dari presentasi Google I/O ini.

Berbagi

YouTube Data API juga menyediakan beragam fungsi untuk aktivitas berbagi video. Seperti Google Data API lainnya, YouTube API menggunakan protokol yang terinspirasi REST yang mendukung representasi data Atom, JSON, dan JSON-C. Respons API ringkas JSON-C sangat cocok untuk lingkungan seluler, yang sering kali memiliki keterbatasan resource. API ini mengekspos fungsi penelusuran video yang fleksibel; kemampuan untuk mengomentari dan memberi rating pada video; akses ke langganan, video favorit, playlist, dan mesin rekomendasi; serta berbagai fitur komunitas yang membantu Anda mengintegrasikan video ke dalam aplikasi sosial.

Semua fungsi ini dapat dimasukkan ke dalam aplikasi seluler menggunakan library klien khusus bahasa pemrograman, atau dengan berinteraksi langsung dengan server API YouTube melalui HTTP. Pendekatan sebelumnya menyederhanakan sebagian besar kompleksitas protokol dengan mengorbankan jejak aplikasi yang lebih besar. Pendekatan yang terakhir ini memungkinkan Anda membuat interaksi sendiri dengan layanan API tertentu yang digunakan aplikasi Anda. Pada akhirnya, pilihannya tergantung pada aplikasi tertentu. Untuk memulai, lihat library GData Java untuk Android atau library GData Objective-C untuk iPhone. Aplikasi video seluler yang lebih kompleks dapat memanfaatkan integrasi dengan backend server. Salah satu aplikasi tersebut adalah YouTube Direct (Gambar 1), yang menampilkan kode server Open Source yang telah dikonfigurasi sebelumnya untuk berjalan di Google App Engine, serta implementasi klien referensi upload video untuk Android (ytd-android, yang ditampilkan dalam Gambar 1) dan iPhone (ytd-iphone).

Aplikasi Android YouTube Direct
Gambar 1: Aplikasi Android YouTube Direct

Keamanan

Keamanan dan autentikasi juga merupakan aspek penting dari pengembangan aplikasi YouTube seluler. Meskipun beberapa operasi API tersedia untuk klien yang tidak diautentikasi, permintaan lainnya memerlukan otorisasi, yang dilakukan melalui token autentikasi yang dikirimkan dalam permintaan API. Operasi tersebut meliputi upload video serta operasi lain apa pun yang mengubah atau menulis data atau yang mengakses informasi pribadi pengguna.

API ini mendukung tiga metode autentikasi: AuthSub, OAuth, dan ClientLogin. ClientLogin adalah metode paling sederhana untuk digunakan pada aplikasi seluler dan AccountManager di Android dapat digunakan untuk memperoleh token autentikasi dengan mudah. Namun, aplikasi yang mengintegrasikan klien seluler dan beberapa backend web harus mempertimbangkan penggunaan OAuth, yang lebih disukai sebagai standar terbuka, atau AuthSub, yang khusus untuk Google. Lihat aplikasi ini untuk contoh implementasi autentikasi OAuth di Android, dan GDataOAuthViewControllerTouch untuk contoh implementasi di iPhone iOS.  

Pemutaran

Dan akhirnya, video dibuat sehingga orang-orang dapat menontonnya. Sekali lagi, platform YouTube menawarkan beberapa opsi.

  • Sebagian besar platform seluler modern dilengkapi dengan aplikasi pemutar YouTube, sehingga memungkinkan integrasi yang cepat. Jika platform Anda tidak menyertakan aplikasi pemutar YouTube, Anda dapat mendownload. Aplikasi seluler meluncurkan pemutar menggunakan layanan platform. Misalnya, di Android, aplikasi menggunakan intent ACTION_VIEW, dan di iPhone aplikasi dapat meluncurkan pemutar menggunakan metode openURL dari class UIApplication seperti yang dibahas dalam postingan blog ini.
  • Situs seluler YouTube, http://m.youtube.com, dapat Anda gunakan untuk mengintegrasikan pemutaran video dengan mudah di aplikasi web.
  • Untuk kontrol yang lebih baik atas pengalaman pemutaran, aplikasi pada platform yang didukung Adobe Flash dapat memperluas pemutar YouTube AS3, yang menawarkan pemutaran dengan kualitas lebih tinggi.