はじめに
今回は、動画サイトで有名な「YouTube」を操作するためのAPIを利用します。入力キーワードから、ExcelのVBAで検索結果リストを作成する方法を紹介します。ワークシート上の一覧表にまとめることで、目的の動画が探しやすくなります。もちろん、タイトルをクリックすると、実際の動画をブラウザで見られます。 動作確認は、Windows 7、Excel 2010、VBA 7.0およびWindows XP、Excel 2007、VBA 6.5で行っています。
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。 |
図解すると以下のようになります。
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:は省略)。
動画検索の開発
Excel 2010を起動した後、以下の手順で行います。
- 検索するための部品を作成する
- 検索条件から検索結果を表示するVBAを記述する
- コマンドボタンに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です。