風は北向き ブログ

時の狭間で 今 お前を待つ

YouTube API 動画検索

YouTube API 動画検索を少し調べてみました。 DATA APIでいろいろ情報を取得できるようです。 詳細はリファレンスガイドで書かれています。 検索では、

http://gdata.youtube.com/feeds/api/videos?q=検索文字列

でFeedをとってこれます。 C#で書いてみました。

public static string searchMovieFirst(List<SyndicationItem> items, string searchKey)
{
    string encodedString = HttpUtility.UrlEncode(searchKey, Encoding.GetEncoding("UTF-8"));
    string uri = "http://gdata.youtube.com/feeds/api/videos?q=" + encodedString + "&orderby=published&max-results=10&start-index=1&v=2";
    return searchMovieNext(items, uri);
}
public static string searchMovieNext(List<SyndicationItem> items, string nextUri)
{
    String retp = "";
    using (XmlReader rdr = XmlReader.Create(nextUri))
    {
        SyndicationFeed feed = SyndicationFeed.Load(rdr);
        items.AddRange(feed.Items);
        foreach (SyndicationLink link in feed.Links)
        {
            if (link.RelationshipType == "next")
            {
                retp = link.Uri.ToString();
                break;
            }
        }
    }
    return retp;
}

こんな感じで作ってみました。 実際に検索してみましたが、合計1000件までしか取得できませんでした。 YouTube API での 動画検索は1000件まで見たいです。(YouTube APIのFAQに乗ってました。実際の画面でも検索結果の数に関係なく1000件でした。) もっと絞り込むためのキーワードを入れる必要があるってことみたいです。