2012-06-10 109 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。