Google is committed to advancing racial equity for Black communities. See how.

YouTube 行動應用程式開發資源

YouTube API 小組 Jarek Wilkiewicz
2010 年 9 月

簡介

開發人員如果想要在他們的行動應用程式中添加影片的錄製、上傳、分享與播放等等功能,可以使用 YouTube 平台來簡化工作,並提升成品的效能。本文將特別介紹一些常用技術,您在撰寫應用程式時可斟酌運用。

錄製

影片錄製作業是透過基礎行動平台執行。舉例來說,您的應用程式可以在 Android 上發出 VIDEO_CAPTURE intent (意圖):

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

也可以在 iPhone iOS 上啟用 UIImagePickerController
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 或更高版本上提供更多的進階錄製選項,您還可以使用 AV Foundation Framework 提供的 AVCaptureSession 類別。 

上傳

如要讓應用程式將影片及影片中繼資料上傳到 YouTube,只需傳送電子郵件至與使用者 YouTube 帳戶相關聯的特定電子郵件地址,或是使用以下三種 API 方法之一即可,三種 API 上傳方法分別是以瀏覽器為基礎的上傳、直接上傳,以及支援續傳的直接上傳方法。對於行動應用程式而言,支援續傳的直接上傳方法是最可靠的選擇;這個方式可在連線失敗時,讓應用程式順利恢復連線,並從中斷處繼續上傳作業。YouTube 支援續傳的上傳通訊協定採用 HTTP 1.1 的 Content-Range/Range 機制,可將影片分成數個區塊傳輸;如果出現中斷情形,這項機制還可辨別已成功傳輸的位元組數。

儘管實際影片內容是最重要的上傳內容,但影片中繼資料也是上傳過程不可或缺的組成部分,因為中繼資料不僅能讓使用者透過搜尋找到影片,也能讓本文後續說明的其他功能發揮作用。除了類別、說明、標題等一般元素以外,行動應用程式還可輕鬆採納手機 GPS 裝置的地理位置資料。這些資料可讓您提供依據位置搜尋的功能,或是在地圖上標示影片位置。如要盡可能減少影片上傳應用程式與使用者的互動,可以選擇不上傳任何中繼資料,詳情請見這段 Google I/O 教學


分享

YouTube Direct Android 應用程式
圖 1:YouTube Direct Android 應用程式

YouTube 資料 API 也為影片分享作業提供豐富功能。YouTube API 跟其他 Google 資料 API 一樣,採用以 REST 為範本的通訊協定,可支援 AtomJSONJSON-C 資料表示法,其中 JSON-C 的精簡 API 回應特別適合資源經常受限的行動服務環境。這個 API 支援極具彈性的影片搜尋方式,以及影片評論和評分功能,同時提供訂閱內容、最愛影片、播放清單和推薦引擎的存取選項,還收錄了各種社群功能,可協助您將影片整合至社交應用程式。

上述所有功能,只要採用程式設計語言專用的用戶端程式庫,或是透過 HTTP 直接與 YouTube 的 API 伺服器互動,皆可整合至行動應用程式。第一個方式會部分運用到大多數通訊協定的複雜處理程序,因此會佔用大量應用程式資源;第二個方式則是讓您自行調整與應用程式所用的特定 API 服務如何互動,最後要採取哪種方式,將依應用程式而定。如要開始進行,請參閱適用於 Android 的 Java GData 程式庫,或是適用於 iPhone 的 Objective-C GData 程式庫。對於功能比較複雜的行動版影片應用程式而言,與伺服器後端進行整合會比較方便運作。YouTube Direct (圖 1) 就是這類應用程式,不僅具備預先設定可在「Google 應用服務引擎」上執行的「開放原始碼」伺服器程式碼,還針對 Android (ytd-android,如圖 1 所示) 和 iPhone (ytd-iphone) 的影片上傳提供用戶端實作方式參考。

安全性

對於 YouTube 行動版應用程式開發來說,安全性和驗證也都是重要的一環。未經驗證的用戶端已經有一些可以運用的 API 操作,但其他需要驗證的要求,則需要在 API 要求中提交驗證憑證才行。這類操作包含上傳影片,以及任何其他涉及修改或寫入資料,或是存取私人使用者資訊的操作。

API 支援三種驗證方式:AuthSub、OAuth 和 ClientLogin。對於行動版應用程式來說,ClientLogin 是最簡便的方式,而且在 Android 上使用, android.os.Handler)">AccountManager 可以輕鬆取得驗證憑證。不過,整合了行動用戶端和多個網路後端的應用程式,則應考慮使用 OAuth,這是較受推薦的開放標準,或是使用 Google 專用的 AuthSub。 這個應用程式即為 Android 上的 OAuth 驗證實作範例,GDataOAuthViewControllerTouch則是在 iPhone iO 上實作的範例。 

播放

最後,影片存在的目的就是要讓大家觀看,而 YouTube 平台則提供了多種選項。

  • 大部分先進的行動平台都隨附 YouTube 播放程式,整合作業簡單快速。如果您的平台沒有 YouTube 播放程式,您可以下載這個程式。行動版應用程式會透過平台服務來啟用播放器。例如,應用程式在 Android 上會使用 ACTION_VIEW intent (意圖) 來啟用播放器,在 iPhone 上則是使用 UIApplication 類別的 openURL 方法 (這篇網誌文章說明這個方式)。
  • YouTube 行動版網站 http://m.youtube.com,可讓您輕鬆將影片播放整合至網路應用程式。
  • 如要更精準地控制播放效果,位於啟用 Adobe Flash 功能的平台上的應用程式可以擴充 AS3 YouTube 播放器,藉此提供更高品質的播放效果。

如果您對本篇文章有任何疑問或寶貴意見,或是對開發人員建立 YouTube 行動版應用程式有任何建議,歡迎利用「YouTube API 開發人員論壇」提交給我們。