検索ワードを決めてから、たった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.に関する動画の情報が連想配列で取得出来てます。