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