0

Youtube API を使い始めたばかりで、説明できない問題に直面しています。基本的に、YouTube から動画を取得する必要があるだけで、そのために認証を受ける必要はないと確信しています (そうでない場合は教えてください)。API ドキュメントを確認した後、次の非常に基本的なリクエストがあります: http://gdata.youtube.com/feeds/api/videos?q=ted+talks&max-results=10&v=2 (「ted talks」を検索して最初の 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 Forbidden エラー (無効な開発者キー) を返します。私は何か間違ったことをしていますか?この種の呼び出しには開発者キーが本当に必要ですか? もしそうなら、 https://code.google.com/apis/youtube/dashboard/gwt/index.html#settingsに行こうとしましたが、次のページに新しい製品を追加できません。

4

1 に答える 1

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:&alt=jsonc結果をjsonとして取得するために追加しました。それを削除して、結果をxmlとして取得できます。

于 2012-04-25T10:33:05.183 に答える