Youtube Api 2.0的相关视频限制



我使用的是用于.NET.的YouTube数据API

我在YouTubeRequest类上调用GetRelatedVideos函数,它返回25个与视频相关的视频,如下所示:

Video video = Request.Retrieve<Video>(
    new Uri(String.Format("https://gdata.youtube.com/feeds/api/videos/{0}{1}",
        vID ,"?max-results=50&start-index=1")));  
Feed<Video> relatedVideos = Request.GetRelatedVideos(video);
return FillVideoInfo(relatedVideos.Entries);

这是请求链接:

https://gdata.youtube.com/feeds/api/videos/1FJHYqE0RDg?max-结果=50&起始索引=1

但是我得到这个错误

此资源不支持"最大结果"参数

如果我只是使用:

https://gdata.youtube.com/feeds/api/videos/1FJHYqE0RDg

然后我得到了25个视频。但我想得到50个视频和更多的页面。我可以获得以下URL的结果:

https://gdata.youtube.com/feeds/api/videos/1FJHYqE0RDg/related?max-结果=50&起始索引=1

在这里我得到了回应,但我只得到了25个视频,尽管我通过了max-results参数的50。

如何一次获得特定视频的50个相关视频,而不是默认的25个(50是max-results的最大值)。

您不应该自己创建URL字符串,而应该使用YouTubeRequest类上的属性来为您设置它们。

例如,在获取Video实例时,不希望在YouTubeRequestSettings实例上指定PageSize属性,如下所示:

// Create the request.
var request = new YouTubeRequest(
    new YouTubeRequestSettings("my app", null) { AutoPaging = false });
// Get the video.
var video = request.Retrieve<Video>(
    new Uri("https://gdata.youtube.com/feeds/api/videos/1FJHYqE0RDg"));

但是,在调用GetRelatedVideos方法时,您希望使用连接到YouTubeRequest实例的不同YouTubeRequestSettings

// Create the request again.  Set the page size.
request = new YouTubeRequest(
    new YouTubeRequestSettings("my app", null) { 
        AutoPaging = false, PageSize = 50
 });
 // Get the related videos.
 var related = request.GetRelatedVideos(video);

现在它将返回50个视频。如果在获取视频时尝试设置PageSize属性,则会出现错误,因为max-results参数在获取单个视频时无效。

然后,您可以写出条目的计数,以验证是否返回了50个:

// Write out how many videos there are.
Console.WriteLine(string.Format(CultureInfo.CurrentCulture, 
    "{0} related videos in first page.", related.Entries.Count()));

结果将是:

首页有50个相关视频。

相关内容

  • 没有找到相关文章

最新更新