私は「VARS」というロックバンドをやっています。
その「VARS」のWebサイトのトップページに「VARS」のYouTubeの最新動画を自動表示させることにしました。
「VARS」のWebサイトのトップページはPHPを使っています。
PHPからYouTube APIで最新動画の情報を取得して埋め込む方法のご紹介です。
投稿者「みか」自己紹介
- パソコンとデータベースが大好き
- 自社でネットワーク・システム・機器管理、Webサイト構築
- 自社向けのシステムをMicrosoft AccessやPHPで多数構築
- Excelでの作業はVBAを使って効率化
- ロックバンド「VARS」でベース担当
- 「VARS」のWebサイト、ブログも構築
- 「VARS」のライブを観に来てね!https://vasofatum.jp/live/
YouTube Data APIキーの取得
YouTube Data APIキーを取得します。
https://console.cloud.google.com/?hl=ja
Googleにサインインし、上記Google CloudのURLにアクセスし、利用規約を読んで「同意」にチェックし、[同意して続行]をクリックします。
[プロジェクトの選択]をクリックします。
[新しいプロジェクト]をクリックします。
「プロジェクト名」を入力し、[作成]をクリックします。
プロジェクトが作成されたので、[プロジェクトを選択]をクリックします。
Google Cloutの左上のハンバーガーメニュー>[APIサービス]>[ライブラリ]をクリックします。
[YouTube Data API v3]が表示されるまで下へスクロールします。
[YouTube Data API v3]をクリックします。
「YouTube Data API v3」を「有効にする」をクリックします。
[認証情報を作成]をクリックします。
「APIを選択」欄で「YouTube Data API v3」を選択し、「一般公開データ」にチェックを入れ、[次へ]をクリックします。
APIキーが表示されていますので、メモ帳などにコピペしておきます。[完了]をクリックします。
左側メニューの[認証情報]をクリックします。
作成したAPIキーをクリックします。
作成したAPIキーの「名前」欄にわかりやすいような名前を入力します。
「アプリケーションの制限の設定」はPHPから取得するので「なし」を選択します。
「APIの制限」は「キーを取得」を選択します。
「キーを制限」の下のセレクトボックスは「YouTube Data API v3」を選択します。
[保存]をクリックします。
YouTube APIの準備は終了です。
PHPからYouTubeのデータを取得しWebサイトへ表示する
自分のYouTubeのチャンネルのチャンネルIDをメモ帳などにコピペしておきます。
Webサイトの同じドメイン内でWordPressを使っているので、「wp-config.php」の中にYouTubeチャンネルIDとYouTube APIキーを定数として定義しておきます。
// YouTube用API用
define( 'VARS_YOUTUBE_CHANNEL', 'UC_GbU2ErkYplgbVwuGsNQUQ' );
define( 'VARS_YOUTUBE_APIKEY', 'xxxxxxxxxxxxxxxxxxxxxxxxx' );
サイト内のどのページからも取得できるように、YouTubeの情報を取得するスクリプトを別ファイルで作成します。ファイル名は「func_youtube.php」にしました。
func_youtube.php
<?php
function get_new_youtube(){
// VARS YouTube
$get_vars_youtube = "https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=" . VARS_YOUTUBE_CHANNEL . "&maxResults=1&order=date&type=video&key=" . VARS_YOUTUBE_APIKEY;
$youtube_dt = file_get_contents($get_vars_youtube);
$youtube_dt_decode = json_decode($youtube_dt, true);
return $youtube_video_id;
}
YouTubeを表示したいphpファイルの中のスクリプトです。
<?php
require_once "blog/wp-config.php";
require_once "func_youtube.php";
$youtube_video_id = get_new_youtube();
$youtube_disp = "<div class='youtube_iframe'>";
$youtube_disp .= "<iframe width='560' height='315' src='https://www.youtube.com/embed/".$youtube_video_id."' frameborder='0' allow='accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture' allowfullscreen></iframe>";
$youtube_disp .= "</div>";
echo $youtube_disp;
?>
これで、最新動画がWebサイト上に表示されるようになりました!