我使用的是用于.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个相关视频。