Referensi untuk Pengembangan Seluler dengan YouTube

Jarek Wilkiewicz, Tim YouTube API
September 2010

Pengantar

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

Merekam

Proses perekaman video dilakukan menggunakan platform seluler yang mendasarinya. Misalnya, aplikasi Anda dapat memicu 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 AV Foundation Framework.  

Mengupload

Aplikasi Anda dapat mengupload video dan metadatanya ke YouTube dengan mengirimkan email ke alamat email khusus yang terkait dengan akun YouTube pengguna atau dengan menggunakan salah satu dari tiga metode API: upload berbasis browser, upload langsung, atau upload langsung yang dapat dilanjutkan. Untuk aplikasi seluler, upload yang dapat dilanjutkan langsung adalah pilihan yang paling dapat diandalkan karena memungkinkan aplikasi pulih dari kegagalan konektivitas dengan lancar dan melanjutkan upload dari titik kegagalan. Protokol upload YouTube yang dapat dilanjutkan 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 sebuah upload, metadata video merupakan bagian integral dari proses tersebut karena metadata tersebut memungkinkan pengguna menemukan video dalam penelusuran dan juga mengaktifkan fitur lainnya yang dijelaskan selanjutnya 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 berupaya meminimalkan interaksi pengguna, upload tanpa metadata adalah opsi lain dan informasi selengkapnya tentang hal tersebut tersedia dari talk Google I/O ini.

Berbagi

YouTube Data API juga menyediakan fungsi yang lengkap 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 yang ringkas JSON-C sangat cocok untuk lingkungan seluler, yang sering kali memiliki resource terbatas. API mengekspos fungsi penelusuran video yang fleksibel; kemampuan untuk mengomentari dan memberi rating video; akses ke langganan, video favorit, playlist, dan mesin pemberi saran; 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 memisahkan sebagian besar kompleksitas protokol dengan mengorbankan jejak aplikasi yang lebih besar. Pendekatan yang terakhir memungkinkan Anda membuat interaksi secara manual dengan layanan API tertentu yang digunakan aplikasi Anda. Pada akhirnya, pilihan bersifat spesifik per aplikasi. Untuk memulai, lihat library Java GData 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 referensi klien 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 lain memerlukan otorisasi, yang dilakukan melalui token autentikasi yang dikirimkan dalam permintaan API. Operasi tersebut mencakup upload video serta operasi lainnya yang mengubah atau menulis data atau yang mengakses informasi pengguna pribadi.

API ini mendukung tiga metode autentikasi: AuthSub, OAuth, dan ClientLogin. ClientLogin adalah metode paling sederhana yang dapat digunakan untuk aplikasi seluler dan di AccountManager 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 penerapan autentikasi OAuth di Android, dan GDataOAuthViewControllerTouch untuk contoh penerapan di iPhone iOS.  

Pemutaran

Dan terakhir, ada video sehingga orang dapat menontonnya. Sekali lagi, platform YouTube menawarkan beberapa opsi.

  • Sebagian besar platform seluler modern dipaketkan dengan aplikasi pemutar YouTube, sehingga memungkinkan integrasi cepat. Jika platform Anda tidak menyertakan aplikasi pemutar YouTube, Anda dapat mendownloadnya. 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, memungkinkan Anda mengintegrasikan pemutaran video dengan mudah di aplikasi web.
  • Untuk kontrol pengalaman pemutaran yang lebih baik, aplikasi pada platform berkemampuan Adobe Flash dapat memperluas pemutar YouTube AS3, yang menawarkan pemutaran dengan kualitas yang lebih tinggi.