はじめに

今回は、動画サイトで有名な「YouTube」を操作するためのAPIを利用します。入力キーワードから、ExcelのVBAで検索結果リストを作成する方法を紹介します。ワークシート上の一覧表にまとめることで、目的の動画が探しやすくなります。もちろん、タイトルをクリックすると、実際の動画をブラウザで見られます。 動作確認は、Windows 7、Excel 2010、VBA 7.0およびWindows XP、Excel 2007、VBA 6.5で行っています。

図1.完成サンプル

Excel VBAでWebサービス - 天気予報を取得してみよう
Excel VBAでWebサービス - MSNマネーから株価の推移を取得しよう
Excel VBAでWebサービス - Excelで書籍情報を検索・取得してみよう

YouTube APIによる動画の検索リクエスト

検索リクエストは、次のURLに、GETリクエストを送信することにより可能です。

http://gdata.youtube.com/feeds/api/videos

また、以下のパラメータを含めることができます。

検索リクエストの主なパラメータ

パラメータ名 意味とパラメータ値
vq 検索キーワード。URLエンコードが必要
orderby 並び替え順。relevance(関連度)、published(アップロード日)、viewCount(再生回数)またはrating(評価)を指定する。既定値はrelevance。
start-index 検索結果の取得開始順位(第何位から取得するか)
max-results 検索結果を取得件数。既定値は25、最大値は50。

図解すると以下のようになります。

図2.検索リクエストのイメージ

YouTube APIによる動画のレスポンス

レスポンスは既定では、Atom形式で返されます。Atom形式は、ブログやニュースヘッドラインを配信する形式の一種です。

表2.レスポンスの主な項目

要素 属性 意味とパラメータ値
openSearch:totalResults 検索結果の総件数
openSearch:startIndex 検索結果の取得開始順位
openSearch:itemsPerPage 検索結果の取得件数
author 動画コンテンツの所有者
content 動画に関するコメント、説明
link rel 下記href属性の関連。値が"alternate"の場合、HTMLへのリンクを表す
link type メディアの種類。値が"text/html"の場合、HTMLページを表す
link href HTMLページなどへのURL
published 動画がアップロードされた日時
title 動画のタイトル
updated 動画の最終更新日時

openSearch:~部分を図解すると、以下のようになります(openSearch:は省略)。

図3.openSearch:~部分の図解

動画検索の開発

Excel 2010を起動した後、以下の手順で行います。

  1. 検索するための部品を作成する
  2. 検索条件から検索結果を表示するVBAを記述する
  3. コマンドボタンにVBAを対応付ける

検索するための部品を作成する

検索キーワード入力と、検索結果表示のために、以下の名前を定義しておきます。

表3.検索結果を表示するための名前定義

名前 範囲 目的
keyword A2セル 検索キーワード入力用
start C1セル 検索結果の取得最高順位
items C2セル 検索結果の取得件数
total C3セル 検索結果の総件数
list A7:D31セル 結果表示エリア(4列25行)

また、[開発]タブの[挿入]ボタンをクリックし、以下の[ActiveXコントロール]を配置します。

表4.検索に使うActiveXコントロール

種類 名前 表示名 目的
コンボボックス cbOrder なし 表示順を選択
コマンドボタン cbSearch 検索する 検索を実行
コマンドボタン cbNext 次の25件 検索後、次の25件を表示
コマンドボタン cbPrev 前の25件 検索後、前の25件を表示

図4のような準備ができればOKです。

図4.検索するための部品の準備