
検索ワードを決めてから、たった3行でYouTubeの動画検索結果をPHP用連想配列化!!
ちょー簡単バージョン。
前回「YouTube Data API v3 で動画の検索 準備編」では、

GoogleのYouTube Data API v3のAPIキーを取得しました。
今回は、このAPIキーを使用して動画の検索をしてみようと思います。
APIで動画検索する動作検証
今利用しているレンタルサーバーには、Composerがインストールされてないので
PHP用のGoogle APIのクライアントライブラリをインストールは難しい。
なので、Googleが提供しているAPIのコードサンプルは使用できません。
(ライブラリをGithubから直接ダウンロードしても良いのですが、autoload.phpがすんなり動作しない場合もあり、リスクが高そう)
直接APIにリクエスト送ることにします。
動画検索のリクエストは、
https://www.googleapis.com/youtube/v3/search?part=snippet&q=検索キーワード&maxResults=結果要求数&key=APIキー
実験的に、
検索キーワード=「DA PUMP U.S.A.」
結果要求数 = 25(件)
このリクエストは、
https://www.googleapis.com/youtube/v3/search?part=snippet&q=DA+PUMP+U.S.A.&maxResults=25&key=APIキー
で、ブラウザで送ってみます。

素晴らしい!
すんなり結果が返ってきてます。
これは、JSONフォーマットのデータがベタで返って来たような感じです。
ソースを調べてもJSONらしきもの

json_decode関数でPHPの連想配列に変換出来そうです。
もっとも簡単なYouTube動画検索
方針は、決まりました。
基本3行のコマンド!!
1.APIへのリクエストURLをsprint関数で作成
2.file_get_content関数で検索結果(JSONデータ)を受け取る
3.json_decode関数でPHP 連想配列に変換する
以上
PHP YouTube動画検索ソースコード
では動画検索をするサンプルコード
基本は変わらず3行のコマンドです。
サンプルでは、
エラー処理用の分岐。
汎用の為の変数化等で行数は多くなってます。
<?php
header('Content-Type: text/html; charset=UTF-8');
mb_language("Japanese");
mb_internal_encoding("UTF-8");
mb_http_input("UTF-8");
mb_http_output('UTF-8');
$htmlBody = <<<END
<form method="GET">
<div>
検索文字列: <input type="search" id="q" name="q" placeholder="Enter Search Term">
</div>
<div>
結果要求数: <input type="number" id="maxResults" name="maxResults" min="1" max="50" step="1" value="25">
</div>
<input type="submit" value="Search">
</form>
END;
// APIキー
$api_key = "APIキーに置き換えます";
$q = $_GET['q'];
$maxres = $_GET['maxResults'];
// 文字列間の空白は、AND検索として+
$q = trim($q);
$q = str_replace(" ", "+", $q);
if ($q && $maxres) {
$req_url = sprintf("https://www.googleapis.com/youtube/v3/search?part=snippet&q=%s&maxResults=%s&key=%s"
, $q, $maxres, $api_key);
if($json = @file_get_contents($req_url)){
// リクエスト成功
// PHP連想配列に変換
$res_array = json_decode( $json , true);
// 検索結果の加工処理
var_dump($res_array);
}else{
//エラー処理
echo "APIリクエスト失敗\n";
echo "($req_url)\n";
}
}
$htmlBody .= <<<END
END;
?>
<!doctype html>
<html>
<head>
<title>YouTube Search</title>
</head>
<body>
<?=$htmlBody?>
</body>
</html>
動作チェック
サーバー上のPHPサンプルコードにブラウザでアクセス

検索文字列に「DA BUMP U.S.A.」
「Search」をクリックします。
動作結果
DA BUMPの U.S.A.に関する動画の情報が連想配列で取得出来てます。


