首页 文章

使用Youtube Api 2.0限制相关视频

提问于
浏览
1

我正在使用YouTube Data API for .NET .

我在YouTubeRequest class上调用GetRelatedVideos function并返回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-results=50&start-index=1

但是我得到了这个错误

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

如果我只是使用:

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

然后我收到25个视频 . 但我希望获得50个视频和页面以获取更多信息 . 我能够得到以下网址的结果:

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

在这里我得到了回复,但是我只获得了25个视频,即使我通过了50个 max-results 参数 .

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

1 回答

  • 1

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

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

    // 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 method时,您希望使用附加到 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个相关视频 .

相关问题