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
是的,我认为这将是唯一的选择,谢谢! –