2012-04-25 20 views
0

私はYoutube APIを使い始めています。私は説明できないことに直面しています。 基本的に、私はYoutubeからビデオを取得する必要があります。私はあなたがそのために認証される必要はないと確信しています(もしそうでなければ教えてください)。 APIドキュメントを読んだ後、私はこの非常に基本的な要求を持っています:http://gdata.youtube.com/feeds/api/videos?q=ted+talks&max-results=10&v=2( "ted talks"を検索し、最初の10を取る)。Youtube API - 403禁止:単純なGetリクエストの開発者キーが無効

ブラウザでこのリクエストを直接行うか、httpリクエストを使って認証する必要はないという私の考えを確認することができます。ここ

しかし事ですが、私はGoogleがすべてのXML処理/デシリアライゼーションのを避けるために提供し、ここに私のコードです.NETクライアントライブラリを使用したいと思います:

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を返します。禁止されたエラー(開発者キーが無効です)。 何か間違っていますか? この種の呼び出しには本当に開発者キーが必要ですか? もし私が行ったら、私はそこに行きましたhttps://code.google.com/apis/youtube/dashboard/gwt/index.html#settingsしかし、私は次のページで新しい製品を追加することはできません。

答えて

0

デベロッパーキーは必要ありません。私は以下のように(Json.Netを使用して)あなたのURLをテストし、それが

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の作品:私はJSONとして結果を得るために&alt=jsoncを追加しました。これを削除してxmlとして結果を得ることができます。

+0

このソリューションをお寄せいただきありがとうございます。それは実際に働く(私はそれをテストした)。 しかし、私がクライアントライブラリを使いたい理由は、intellisenseなどにアクセスすることでした(あなたの方法ではできません)。 – alexpoint

関連する問題