2012-06-10 42 views
0

我使用YouTube的.NET API來獲取視頻供稿,這裏是代碼:Youtube .NET數據API:只檢索videoID?

 String[] ids; 
     YouTubeRequestSettings settings = new YouTubeRequestSettings("My App Name", "My App Key"); 
     YouTubeRequest request = new YouTubeRequest(settings); 
     Uri uri = 
     new Uri("http://gdata.youtube.com/feeds/api/users/nptelhrd/uploads?max-results=50");//Change "GoogleDevelopers" to "default" 
     Google.GData.Client.Feed<Video> videoFeed = request.Get<Video>(uri); 
     ids = new String[videoFeed.TotalResults]; 

     int count = 0; 
     for (int i = 0; i < 50; i++) 
      ids[i] = videoFeed.Entries.ElementAt(i).VideoId; 
     for (int i = 50; i < ids.Length-50; i+=50) 
     { 

      Uri uri2 = 
    new Uri("http://gdata.youtube.com/feeds/api/users/nptelhrd/uploads?max-results=50&start-index=" + i.ToString());//Change "GoogleDevelopers" to "default" 
      Google.GData.Client.Feed<Video> videoFeed2 = request.Get<Video>(uri); 
      for (int j = 0; j < 50; j++) 
      { 
       ids[i+j] = videoFeed2.Entries.ElementAt(j).VideoId; 
       count++; 
      } 
     } 

上面的代碼返回每個信息(標題,描述,觀看次數的增加,評級....等)爲每個視頻由用戶「nptelhrd」上傳。該特定用戶上傳了6950個視頻。

上面的代碼在512Kbps連接上執行15分鐘執行,因爲它檢索每個視頻的所有信息,它的速度非常慢,浪費了大量服務器資源。不能修改上面的代碼,以便它只檢索videoId的?我怎樣才能檢索所有視頻的videoId?

+1

如果API不支持你所需要的,那麼根本沒有辦法用API來實現你的目標。解決方案(儘管可能不合需要)可能是使用Web服務器來下載這些提要,並將視頻ID回顯到頁面。這將使您大大減少客戶端下載的不必要數據的數量,將大部分負載轉移到Web服務器(據推測,該服務器配備了足夠強大的連接,無需擔心數據減少) 。 – Spooky

+0

是的,我認爲這將是唯一的選擇,謝謝! –

回答

0

由於.NET YOUTUBE API的侷限性,無法僅檢索VIDEOID。