YouTubeで動画検索
それでは、サンプルを作成しながらZend_GdataがどのようにGoogle Data APIと連携しているのかを見ていきましょう。今回はYouTube Data APIを利用して、GoogleサービスであるYouTubeの動画を検索するアプリケーションを作ります。

サンプルコード
以下が上記のようなアプリケーションを作るサンプルコードになります。
<html>
<head>
<title>Youtube検索</title>
<head>
<body>
<h1>Youtube検索</h1>
<!-- ユーザーの入力データを受け取る -->
<!-- 検索フォーム -->
<form method="POST">
<input name="keyword" type="text">
<input name="submit" type="submit" value="検索">
</form>
<hr>
<?php
require_once 'Zend/Loader.php';
// Zend Frameworkのクラス自動読込
Zend_Loader::registerAutoload();
// 検索用関数
function searchVideo($keyword)
{
// [1]サービスオブジェクトの生成
$youtube = new Zend_Gdata_YouTube();
// [2]クエリオブジェクトの取得
$query = $youtube->newVideoQuery();
// [3]クエリオブジェクトにパラメータを与える
$query->videoQuery = $keyword;
$query->orderBy = 'viewCount';
$query->MaxResults = 10;
// [4]フィードの取得
$feed = $youtube->getVideoFeed($query);
// [5]取得数表示
echo '【 '.$keyword.' 】の検索結果【 '.$feed->getTotalResults().' 】件<br />';
echo '<br />';
echo '<table class="videoList" border>';
echo '<tbody width="100%">';
// エントリーごとに処理
foreach ($feed as $entry) {
// [6]取得結果表示のための情報取得
$contentUrl = $entry->mediaGroup->content[0]->url;
$thumbnailUrl = $entry->mediaGroup->thumbnail[0]->url;
$videoTitle = $entry->mediaGroup->title;
// [7]取得結果表示
print <<<END
<tr>
<td width="130"><img src="${thumbnailUrl}" /></td>
<td width="100%">
<a href="#"
onclick="window.open('${contentUrl}','${videoTitle}','width=500,height=300');">
${videoTitle}
</a>
</td>
</tr>
END;
}
echo '</table>';
}
// 検索ボタン押下時処理
if(isset($_POST['submit']))
{
searchVideo($_POST['keyword']);
}
?>
</body>
</html>
100行足らずと意外に少ないと思いませんか。Zend_GdataがGoogleサービスから取得した情報を簡単に利用できるクラス、メソッドを提供しているからです。
それでは詳細を解説していきましょう。
ユーザーの入力データを受け取る
ここはhtmlの範囲になります。検索ボタンが押された際に、検索ワードをフォームから「keyword」という変数名として送信します。
<form method="POST">
<input name="keyword" type="text">
<input name="submit" type="submit" value="検索">
</form>
ここはPHPの処理です。検索ボタンが押された場合、変数「keyword」を引数とした「searchVideo」という自作関数を呼び出します。
if(isset($_POST['submit']))
{
searchVideo($_POST['keyword']);
}

