C# Youtube API-403禁止:简单Get请求的开发人员密钥无效

C# Youtube API-403禁止:简单Get请求的开发人员密钥无效,c#,youtube-api,youtube.net-api,C#,Youtube Api,Youtube.net Api,我只是从Youtube API开始,我面临一些无法解释的问题。 基本上,我只需要从Youtube上检索视频,我很确定你不需要进行身份验证。如果不需要,请告诉我。 看完API文档后,我有一个非常基本的请求:搜索ted对话,并获取前10个 直接在浏览器中或通过http请求执行此请求,这证实了我的信念,即无需对此进行身份验证 但问题是,我想使用Google提供的.NET客户端库来避免所有XML处理/反序列化,下面是我的代码: public string Test() { You

我只是从Youtube API开始,我面临一些无法解释的问题。 基本上,我只需要从Youtube上检索视频,我很确定你不需要进行身份验证。如果不需要,请告诉我。 看完API文档后,我有一个非常基本的请求:搜索ted对话,并获取前10个

直接在浏览器中或通过http请求执行此请求,这证实了我的信念,即无需对此进行身份验证

但问题是,我想使用Google提供的.NET客户端库来避免所有XML处理/反序列化,下面是我的代码:

public string Test()
    {
        YouTubeRequestSettings settings = new YouTubeRequestSettings("Otello", String.Empty);
        YouTubeRequest request = new YouTubeRequest(settings);
        Feed<Video> feed = request.Get<Video>(new Uri("http://gdata.youtube.com/feeds/api/videos?q=ted+talks&max-results=10&v=2"));
        return feed.Entries.Count() + "";
    }
此代码始终返回403禁止错误无效开发人员密钥。 我做错什么了吗? 对于这种调用,我真的需要开发人员密钥吗?
如果我这样做了,我尝试去那里,但我无法在下一页添加新产品。

我认为您不需要开发人员密钥。我测试了你的网址使用如下,它的工作

WebClient wc = new WebClient();
string resultStr = wc.DownloadString("http://gdata.youtube.com/feeds/api/videos?q=ted+talks&max-results=10&v=2&alt=jsonc");
dynamic result = JsonConvert.DeserializeObject(resultStr);
foreach (var item in result.data.items)
{
    Console.WriteLine("{0}: {1}",item.title,item.player["default"]);
}

PS:我附加了&alt=jsonc以获得json格式的结果。您可以删除它并以xml的形式获取结果。

感谢您提供此解决方案。它确实有效,我刚刚测试过。然而,我想使用客户端库的原因是为了能够访问intellisense等。。。我不能用你的方法。