開発ノート:YouTube Data APIの利用
目次
GoogleのIDを作成する
今回利用するのは、YouTube Data API のバージョン3です。Googleのアカウントを持っていない方は作成してGoogle Developers Console からログインします。
プロジェクトを追加する
YouTube Data API を使用するサービスを追加します。
プロジェクトを作成したら、YouTube Data APIを選択し、APIを有効にします。
サンプル、その他必要ファイルを用意する
APIを利用するためのページのサンプルを用意します。今回は検索データを利用するのでGutHubからserch.phpを用意します。同様に、google-api-php-client-masterを用意します。これらをAPIを利用するサイトのサーバー上の同じ階層に入れます。
クライアントIDとAPIキーを設定する
クライアントIDとAPIキーを設定します。今回はウェブサービスでAPIを利用するので、リダイレクトURIにはAPIを読み込むページのURL(ファイルを置いた階層までのパス/search.php)を、JavaScript生成元にはトップページのURLを指定します。また、リファラーは何も指定せずにAPIキーを作成します。
ここまでで、利用する下準備は完了です。それではコードに移ります。
コードを編集し、データを持ってくる
search.phpの19,20行目を
1920 require_once 'Google/Client.php';require_once 'Google/Service/YouTube.php';
次のように書き換えます。
19 20 21 |
require_once 'google-api-php-client-master/src/Google/autoload.php'; require_once 'google-api-php-client-master/src/Google/Client.php'; require_once 'google-api-php-client-master/src/Google/Service/YouTube.php'; |
さらに28行目に
28 $DEVELOPER_KEY = 'REPLACE_ME';
先ほど入手したAPIキーを入れます。
28 |
$DEVELOPER_KEY = '入手したAPIキー'; |
これで編集完了です。それでは検索ページを開いてみましょう。
検索してみます。
データを持ってくることができました。
欲しい情報を選択する
次にsearch.phpを編集して、欲しい情報を持ってきます。詳細はGoogleDevelopersのここにのってます。今回は検索条件をvideoに指定し、検索総数を表示させてみます。41行目でvideoを指定し、67行目で検索総数を取得し、69行目で表示させます。
363738394041424344454647484950515253545556575859606162636465666768697071727374757677 try {// Call the search.list method to retrieve results matching the specified// query term.$searchResponse = $youtube->search->listSearch('id,snippet', array('q' => $_GET['q'],'type' => video,'maxResults' => $_GET['maxResults'],));$videos = '';$channels = '';$playlists = '';// Add each result to the appropriate list, and then display the lists of// matching videos, channels, and playlists.foreach ($searchResponse['items'] as $searchResult) {switch ($searchResult['id']['kind']) {case 'youtube#video':$videos .= sprintf('<li>%s (%s)</li>',$searchResult['snippet']['title'], $searchResult['id']['videoId']);break;case 'youtube#channel':$channels .= sprintf('<li>%s (%s)</li>',$searchResult['snippet']['title'], $searchResult['id']['channelId']);break;case 'youtube#playlist':$playlists .= sprintf('<li>%s (%s)</li>',$searchResult['snippet']['title'], $searchResult['id']['playlistId']);break;}}$totalResults .= ($searchResponse['pageInfo']['totalResults']);$htmlBody .= <<<END<a>検索総数は$totalResults 件です。</a><h3>Videos</h3><ul>$videos</ul><h3>Channels</h3><ul>$channels</ul><h3>Playlists</h3><ul>$playlists</ul>END;}
検索結果は次のようになります。
以上、YouTube Data APIの導入方法の紹介でした。