1

我正在使用适用于 .NET 的 YouTube 数据 API

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

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-results=50&start-index=1

但我得到这个错误

此资源不支持“max-results”参数

如果我只是使用:

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

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

https://gdata.youtube.com/feeds/api/videos/1FJHYqE0RDg/related?max-results=50&start-index=1

在这里我得到了回应,但我只得到了 25 个视频,即使我为max-results参数传递了 50 个视频。

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

4

1 回答 1

1

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

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

// 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"));

但是,您希望在调用method时使用附加到实例的不同YouTubeRequestSettingsYouTubeRequestGetRelatedVideos

// 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 个相关视频。

于 2012-07-26T20:34:06.067 回答