YouTube 行動應用程式開發資源

文章推薦指數: 80 %
投票人數:10人

圖1:YouTube Direct Android 應用程式. YouTube 資料API 也為影片分享作業提供豐富功能。

YouTube API 跟其他Google 資料API 一樣,採用以REST 為範本的通訊協定,可 ... YouTube Language English BahasaIndonesia Deutsch Español Français Português–Brasil Русский 中文–简体 中文–繁體 日本語 한국어 Signin Home Guides Samples Terms YouTube Home Guides Samples Terms YouTubeDeveloperDocumentation YouTubePlayers IFramePlayerAPI AndroidPlayerAPI iOSHelperLibrary PlayerParameters YouTubeDataandResources YouTubeDataAPI YouTubeAnalyticsAPI YouTubeLiveStreamingAPI ClientLibraries YouTubeToolsandWidgets YouTubeSubscribeButtons Home Products YouTube Guides YouTube行動應用程式開發資源 YouTubeAPI小組JarekWilkiewicz 2010年9月 簡介 錄製 上傳 分享 安全性 播放 簡介 開發人員如果想要在他們的行動應用程式中添加影片的錄製、上傳、分享與播放等等功能,可以使用YouTube平台來簡化工作,並提升成品的效能。

本文將特別介紹一些常用技術,您在撰寫應用程式時可斟酌運用。

錄製 影片錄製作業是透過基礎行動平台執行。

舉例來說,您的應用程式可以在Android上發出VIDEO_CAPTUREintent(意圖): Intenti=newIntent(); i.setAction(MediaStore.VIDEO_CAPTURE); startActivityForResult(i,CAPTURE_RETURN); 也可以在iPhoneiOS上啟用UIImagePickerController: IImagePickerController*imagePicker=[[[UIImagePickerControlleralloc]init]autorelease]; imagePicker.delegate=self; imagePicker.sourceType=UIImagePickerControllerSourceTypeCamera; imagePicker.mediaTypes=[NSArrayarrayWithObject:(NSString*)kUTTypeMovie]; [selfpresentModalViewController:imagePickeranimated:YES]; 如要在iOS4或更高版本上提供更多的進階錄製選項,您還可以使用AVFoundationFramework提供的AVCaptureSession類別。

  上傳 如要讓應用程式將影片及影片中繼資料上傳到YouTube,只需傳送電子郵件至與使用者YouTube帳戶相關聯的特定電子郵件地址,或是使用以下三種API方法之一即可,三種API上傳方法分別是以瀏覽器為基礎的上傳、直接上傳,以及支援續傳的直接上傳方法。

對於行動應用程式而言,支援續傳的直接上傳方法是最可靠的選擇;這個方式可在連線失敗時,讓應用程式順利恢復連線,並從中斷處繼續上傳作業。

YouTube支援續傳的上傳通訊協定採用HTTP1.1的Content-Range/Range機制,可將影片分成數個區塊傳輸;如果出現中斷情形,這項機制還可辨別已成功傳輸的位元組數。

儘管實際影片內容是最重要的上傳內容,但影片中繼資料也是上傳過程不可或缺的組成部分,因為中繼資料不僅能讓使用者透過搜尋找到影片,也能讓本文後續說明的其他功能發揮作用。

除了類別、說明、標題等一般元素以外,行動應用程式還可輕鬆採納手機GPS裝置的地理位置資料。

這些資料可讓您提供依據位置搜尋的功能,或是在地圖上標示影片位置。

如要盡可能減少影片上傳應用程式與使用者的互動,可以選擇不上傳任何中繼資料,詳情請見這段GoogleI/O教學。

分享 圖1:YouTubeDirectAndroid應用程式 YouTube資料API也為影片分享作業提供豐富功能。

YouTubeAPI跟其他Google資料API一樣,採用以REST為範本的通訊協定,可支援Atom、JSON和JSON-C資料表示法,其中JSON-C的精簡API回應特別適合資源經常受限的行動服務環境。

這個API支援極具彈性的影片搜尋方式,以及影片評論和評分功能,同時提供訂閱內容、最愛影片、播放清單和推薦引擎的存取選項,還收錄了各種社群功能,可協助您將影片整合至社交應用程式。

上述所有功能,只要採用程式設計語言專用的用戶端程式庫,或是透過HTTP直接與YouTube的API 伺服器互動,皆可整合至行動應用程式。

第一個方式會部分運用到大多數通訊協定的複雜處理程序,因此會佔用大量應用程式資源;第二個方式則是讓您自行調整與應用程式所用的特定API服務如何互動,最後要採取哪種方式,將依應用程式而定。

如要開始進行,請參閱適用於Android的JavaGData程式庫,或是適用於iPhone的Objective-CGData程式庫。

對於功能比較複雜的行動版影片應用程式而言,與伺服器後端進行整合會比較方便運作。

YouTubeDirect(圖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則是在iPhoneiO上實作的範例。

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

大部分先進的行動平台都隨附YouTube播放程式,整合作業簡單快速。

如果您的平台沒有YouTube播放程式,您可以下載這個程式。

行動版應用程式會透過平台服務來啟用播放器。

例如,應用程式在Android上會使用ACTION_VIEWintent(意圖)來啟用播放器,在iPhone上則是使用UIApplication類別的openURL方法(這篇網誌文章說明這個方式)。

YouTube行動版網站http://m.youtube.com,可讓您輕鬆將影片播放整合至網路應用程式。

如要更精準地控制播放效果,位於啟用AdobeFlash功能的平台上的應用程式可以擴充AS3YouTube播放器,藉此提供更高品質的播放效果。

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

Exceptasotherwisenoted,thecontentofthispageislicensedundertheCreativeCommonsAttribution4.0License,andcodesamplesarelicensedundertheApache2.0License.Fordetails,seetheGoogleDevelopersSitePolicies.JavaisaregisteredtrademarkofOracleand/oritsaffiliates. Lastupdated2019-06-11UTC. [{ "type":"thumb-down", "id":"missingTheInformationINeed", "label":"MissingtheinformationIneed" },{ "type":"thumb-down", "id":"tooComplicatedTooManySteps", "label":"Toocomplicated/toomanysteps" },{ "type":"thumb-down", "id":"outOfDate", "label":"Outofdate" },{ "type":"thumb-down", "id":"translationIssue", "label":"Translationissue" },{ "type":"thumb-down", "id":"samplesCodeIssue", "label":"Samples/codeissue" },{ "type":"thumb-down", "id":"otherDown", "label":"Other" }] [{ "type":"thumb-up", "id":"easyToUnderstand", "label":"Easytounderstand" },{ "type":"thumb-up", "id":"solvedMyProblem", "label":"Solvedmyproblem" },{ "type":"thumb-up", "id":"otherUp", "label":"Other" }] Blog ThelatestnewsontheYouTubeblog GitHub FindAPIcodesamplesandotherYouTubeopen-sourceprojects. IssueTracker Somethingwrong?Sendusabugreport! StackOverflow Askaquestionundertheyoutube-apitag Videos CheckouttheYouTubeDeveloperRelationsteam'sYouTubechannel Tools GoogleAPIsExplorer YouTubePlayerDemo ConfigureaSubscribeButton IssueTracker Fileabug Requestafeature Seeopenissues ProductInfo TermsofService DeveloperPolicies RequiredMinimumFunctionality BrandingGuidelines Android Chrome Firebase GoogleCloudPlatform Allproducts Terms Privacy SignupfortheGoogleDevelopersnewsletter Subscribe Language English BahasaIndonesia Deutsch Español Français Português–Brasil Русский 中文–简体 中文–繁體 日本語 한국어



請為這篇文章評分?