[C#]使用 YouTube SDK for .NET

  • 16765
  • 0
  • 2010-08-03

[C#]使用 YouTube SDK for .NET

 

一、簡介

近日 Google 發佈了 YouTube SDK for .NET 提供 Visual Studio 2008 使用,此 SDK 包含 chm 格式的 Help 檔、使用協定、AuthSub 身分驗證的 ASP.NET 範例、使用 ResumableUploader 元件的 uploader 工具可非同步可靠地將視訊檔上傳等。

本文示範使用 YouTube SDK for .NET 來查詢自己帳戶 [已上傳影片] 資料。

 

 

二、前置作業

1. 連結至 http://code.google.com/p/google-gdata/downloads/list 下載 YouTube SDK

image

 

2. 下載完成後,安裝 YouTube SDK,過程幾乎都是按 [Next] 所以省略。

image

 

3. 申請 developer key and client ID,連結到 Google accunts

image

填寫資料,勾選 [I agree to the Trems of Service above],按 [Register]

image

 

輸入 Name,按 [New Product],取得 Developer key

image

 

4. 執行 Visual Studio 2008 並開啟新的專案,並將 YouTube API 加入參考

image

 

 

三、撰寫程式

撰寫程式,主要功能為

(1) 查詢 [已上傳的影片],依據 [觀看次數] 進行排序與顯示

(2) 查詢 [已上傳的影片],透過 Linq 取得 [觀看次數] 大於 150 的影片

 

1. Using YouTube 參考


using Google.YouTube;
using Google.GData.YouTube;
using Google.GData.Client;

 

2. 在表單中加入兩個 ListBox,Name : lbDefaultUploads、lbDefaultUploadsFilter,一個 Button,Name : btnGet

image

 

3. 主要程式碼


        private void btnGet_Click(object sender, EventArgs e)
        {
            // string pDeveloperKey = Developer Key
            // string pUserName = User Name
            // string pPassword = PassWord

            YouTubeRequestSettings settings = new YouTubeRequestSettings("MyAppName", pDeveloperKey, pUserName, pPassword);
            YouTubeRequest f = new YouTubeRequest(settings);
            settings.AutoPaging = true;

            // 回傳 youtube default feeds,在這邊我們取得 YouTubeQuery.DefaultUploads 為已上傳的影片 Youtube API 網址
            Feed<Video> sfeed = f.GetStandardFeed(YouTubeQuery.DefaultUploads);

            // 取得已上傳的影片完整清單
            var entries = sfeed.Entries.ToList();  // 取得完整清單

            // 以[觀看次數]排序,將查詢結果加入 ListBox 中
            foreach (var item in entries.OrderByDescending(i => i.ViewCount))
            {
                this.lbDefaultUploads.Items.Add(item.Title);
            }
            this.lbDefaultUploads.Items.Add("筆數 : " + entries.Count().ToString());

            // 透過 Linq 取得 [觀看次數] 大於 150 的資料
            var entriesFilter = from ye in entries
                                  where ye.ViewCount > 150 
                                  select ye;

            // 將查詢後資料加入 ListBox 中
            foreach (var item in entriesFilter.OrderByDescending(i => i.ViewCount))
            {
                this.lbDefaultUploadsFilter.Items.Add(item.Title);
            }
            this.lbDefaultUploadsFilter.Items.Add("筆數 : " + entriesFilter.Count().ToString());
        }

 

四、執行結果

image

image

 

 

五、參考

Google : YouTubeRequest Class

Google : YouTube SDK for .NET