YouTube ile Mobil Geliştirme Kaynakları

Jarek Wilkiewicz, YouTube API Ekibi
Eylül 2010

Giriş

Video kaydetme, yükleme, paylaşma ve oynatma işlevlerini mobil uygulamalarına dahil etmek isteyen geliştiriciler, işlerini basitleştirmek ve nihai ürünlerini iyileştirmek için YouTube platformunu kullanabilirler. Bu makalede, uygulamalarınızda kullanabileceğiniz bazı teknolojiler vurgulanmaktadır.

Kayıt

Video kaydetme işlemi, kullanılan mobil platform kullanılarak gerçekleştirilir. Örneğin, uygulamanız Android'de bir VIDEO_CAPTURE niyetini tetikleyebilir:

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

veya iPhone iOS'te UIImagePickerController'ı başlatın:

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

iOS 4 ve sonraki sürümlerde daha gelişmiş kayıt seçenekleri için AV Foundation Framework'teki AVCaptureSession sınıfını da kullanabilirsiniz.  

Yükleniyor

Uygulamanız, kullanıcının YouTube hesabıyla ilişkili özel bir e-posta adresine e-posta göndererek veya üç API yönteminden birini kullanarak (tarayıcı tabanlı yükleme, doğrudan yükleme veya doğrudan devam ettirilebilir yükleme) bir videoyu ve meta verilerini YouTube'a yükleyebilir. Mobil uygulamalarda, doğrudan devam ettirilebilir yükleme, uygulamanın bağlantı hatalarından sorunsuz bir şekilde kurtulmasını ve yüklemeyi hata noktasından devam ettirmesini sağladığı için en güvenilir seçenektir. YouTube'un devam ettirilebilir yükleme protokolü, videoları parçalara ayırmak ve kesinti olması durumunda başarıyla aktarılan bayt sayısını belirlemek için HTTP 1.1 Content-Range/Range mekanizmasından yararlanır.

Gerçek video içeriği bir yüklemedeki en önemli bileşen olsa da video meta verileri, kullanıcıların aramada videoları bulmasına olanak tanıdığından ve bu makalenin ilerleyen kısımlarında açıklanan diğer özellikleri de etkinleştirdiğinden video meta verileri sürecin ayrılmaz bir parçasıdır. Mobil uygulamalar; kategori, açıklama ve başlık gibi yaygın öğelere ek olarak telefonun GPS cihazından alınan coğrafi konum verilerini kolayca dahil edebilir. Bu veriler, konuma dayalı arama yapmanıza veya video konumlarını harita üzerinde göstermenize olanak tanır. Kullanıcı etkileşimini en aza indirmek isteyen video yükleme uygulamaları için sıfır meta verili yüklemeler başka bir seçenektir ve daha fazla bilgiye bu Google I/O konuşmasından ulaşabilirsiniz.

Paylaşım

YouTube Data API, video paylaşım etkinlikleri için zengin işlevler de sunar. Diğer Google veri API'leri gibi YouTube API de Atom, JSON ve JSON-C veri temsillerini destekleyen REST'ten ilham alan bir protokol kullanır. JSON-C'nin kompakt API yanıtları, özellikle kaynak kısıtlamaları olan mobil ortamlar için idealdir. API, esnek video arama işlevi sunar. Videolara yorum yapma ve videoları derecelendirme olanağı; aboneliklere, favori videolara, oynatma listelerine ve öneri motoruna erişim; ve videoyu sosyal uygulamalara entegre etmenize yardımcı olan bir dizi topluluk özelliği içerir.

Bu işlevlerin tümü, programlama diline özgü istemci kitaplıkları kullanılarak veya HTTP üzerinden YouTube'un API sunucularıyla doğrudan etkileşime geçerek mobil uygulamalara dahil edilebilir. İlk yaklaşım, daha büyük bir uygulama ayak izine bağlı olarak protokol karmaşıklığının çoğunu soyutlar. İkinci yaklaşım, uygulamanızın kullandığı belirli API hizmetleriyle etkileşimleri manuel olarak oluşturmanıza olanak tanır. Sonuçta seçim uygulamaya özeldir. Başlamak için Android için Java GData kitaplığına veya iPhone için Objective-C GData kitaplığına bakın. Daha karmaşık mobil video uygulamaları, sunucu arka ucu entegrasyonundan yararlanabilir. Bu tür uygulamalardan biri de YouTube Direct'tir (Şekil 1). Bu uygulama, Google App Engine'de çalışacak şekilde önceden yapılandırılmış açık kaynak sunucu kodunun yanı sıra Android (Şekil 1'de gösterilen ytd-android) ve iPhone (ytd-iphone) için video yüklemenin istemci uygulamalarına referans verir.

YouTube Direct Android Uygulaması
Şekil 1: YouTube Direct Android Uygulaması

Güvenlik

Güvenlik ve kimlik doğrulama, mobil YouTube uygulaması geliştirmenin önemli unsurlarıdır. Bazı API işlemleri kimliği doğrulanmamış istemciler tarafından kullanılabilirken diğer istekler için yetkilendirme gerekir. Bu yetkilendirme, API isteğinde gönderilen bir kimlik doğrulama jetonu aracılığıyla yapılır. Bu tür işlemlere, video yükleme işlemlerinin yanı sıra verileri değiştiren veya yazan ya da gizli kullanıcı bilgilerine erişen diğer tüm işlemler dahildir.

API üç kimlik doğrulama yöntemini destekler: AuthSub, OAuth ve ClientLogin. ClientLogin, mobil uygulamalarda kullanılabilecek en basit yöntemdir. Android'de kimlik doğrulama jetonlarını kolayca almak için AccountManager kullanılabilir. Ancak mobil istemci ve birden fazla web arka ucu entegre eden uygulamalarda açık standart olarak tercih edilen OAuth veya Google'a özgü AuthSub'un kullanılması önerilir. Android'de örnek bir OAuth kimlik doğrulama uygulaması için bu uygulamaya, iPhone iOS'te örnek bir uygulama için GDataOAuthViewControllerTouch'a bakın.  

Oynatma

Son olarak, videolar kullanıcıların izlemesi için vardır. YouTube platformunun birçok seçenek sunduğunu tekrar belirtelim.

  • Modern mobil platformların çoğu, hızlı entegrasyona olanak tanıyan bir YouTube oynatıcı uygulamasıyla birlikte gelir. Platformunuzda YouTube oynatıcı uygulaması yoksa indirebilirsiniz. Bir mobil uygulama, platform hizmetini kullanarak bir oynatıcı başlatır. Örneğin, Android'de bir uygulama ACTION_VIEW niyetini kullanırken iPhone'da bir uygulama oynatıcıyı bu blog yayınında açıklandığı şekilde UIApplication sınıfının openURL yöntemini kullanarak başlatabilir.
  • YouTube mobil web sitesi (http://m.youtube.com), video oynatmayı bir web uygulamasına kolayca entegre etmenizi sağlar.
  • Adobe Flash özellikli platformlardaki uygulamalar, oynatma deneyiminde daha hassas bir kontrole sahip olmak için AS3 YouTube oynatıcısını genişletebilir. Bu da daha yüksek kaliteli oynatma olanağı sunar.