風は北向き ブログ

時の狭間で 今 お前を待つ

YouTube API 動画検索4

普通に YouTube APIのライブラリを使用して作ってみましたこんな感じです。

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Google.GData.YouTube;
using Google.GData.Client;
using Google.YouTube;
using Google.GData.Extensions.MediaRss;
public class YtSearchYtLib
{
    Feed<Video> videoFeed = null;
    YouTubeRequest request = null;
    string applicationName = null;
    string developerKey = null;
    public YtSearchYtLib()
    {
    }
    public YtSearchYtLib(string applicationName, string developerKey)
    {
        this.applicationName = applicationName;
        this.developerKey = developerKey;
    }
    public Feed<Video> searchFirst(string queryKeyword)
    {
        Feed<Video> retp = null;
        YouTubeRequestSettings settings = new YouTubeRequestSettings(applicationName, developerKey);
        request = new YouTubeRequest(settings);
        YouTubeQuery query = new YouTubeQuery(YouTubeQuery.DefaultVideoUri);
        query.OrderBy = "published";
        query.Query = queryKeyword;
        query.SafeSearch = YouTubeQuery.SafeSearchValues.None;
        videoFeed = request.Get<Video>(query);
        if (videoFeed != null && videoFeed.Entries.Count() > 0)
        {
            retp = videoFeed;
        }
        return retp;
    }
    public Feed<Video> searchNext()
    {
        Feed<Video> retp = null;
        videoFeed = request.Get<Video>(videoFeed, FeedRequestType.Next);
        if (videoFeed != null && videoFeed.Entries.Count() > 0)
        {
            retp = videoFeed;
        }
        return retp;
    }
}

使い方はこんな感じです。

public void YtSearchYtLib_search()
{
    Feed<Video> ytEntries = null;
    YtSearchYtLib ytSearch = new YtSearchYtLib();
    for (ytEntries = ytSearch.searchFirst("生田衣梨奈"); ytEntries != null; ytEntries = ytSearch.searchNext())
    {
        foreach (Video ytEntry in ytEntries.Entries)
        {
            Debug.WriteLine(ytEntry.Title + ":" + ytEntry.Id);
            Console.WriteLine("Media:");
            foreach (Google.GData.YouTube.MediaContent mediaContent in ytEntry.Contents)
            {
                Console.WriteLine("\tMedia Location: " + mediaContent.Url);
                Console.WriteLine("\tMedia Type: " + mediaContent.Format);
                Console.WriteLine("\tDuration: " + mediaContent.Duration);
            }
        }
    }
}

こっちのほうがいろいろ情報が見れますね。 これから詳しく YouTube API のライブラリを調査してみようと思います。