YouTube Data APIでYouTubeのチャンネルのJSONデータを取得。
YouTube Data APIを利用して、任意のYouTubeのチャンネルのJSONデータをPHPで取得する方法。忘れるのでメモ。
※ 「APIキー」の取得方法は前の記事を参照。
APIからYouTubeチャンネルのJSONデータを取得するURLを作成
YouTube Data APIの「APIキー」と、データを取得したいYouTubeチャンネルの「チャンネルID」が事前に必要。
「APIキー」と「チャンネルID」を使用して、YouTubeチャンネルのJSONデータ取得のHTTPリクエストをするURLを作成する作業。
※ APIで取得できるYouTubeのリソースに関する公式リファレンス。
[ 指定できる主なパラメーター ]
- snippet : チャンネルに関する基本的な詳細情報を取得。(タイトル、説明、サムネイル画像など。)
- contentDetails : チャンネルのコンテンツに関する情報を取得。(チャンネルに関連付けられている再生リストなど。)
- statistics : チャンネルの統計情報を取得。(チャンネルの再生回数や登録者数など。)
//取得したいYouTubeチャンネルのID
$youtube_id = 'チャンネルID';
//APIキー
$api_key = '取得したAPIキー';
//YouTube Data APIのURL
$youtube_api_url = 'https://www.googleapis.com/youtube/v3/';
$youtube_api_resource = 'channels';
$youtube_api_para = 'snippet,statistics';
$youtube_api_q = '?part='.$youtube_api_para.'&id='.$youtube_id.'&key='.$api_key;
$youtube_api_url .= $youtube_api_resource.$youtube_api_q;
YouTubeチャンネルのJSONデータを取得
上述で作成したURLでYouTube Data APIにアクセスしてJSONデータを取得し、データを整形してHTMLに出力する作業。
- PHPの「cURL()」関数を使ってYouTube Data APIにアクセスしてJSONデータを取得。
- 取得したデータを整形し、連想配列にしてオブジェクトを変数に格納。
- HTMLコードにしてデータを出力。
※ チャンネルのリソースから取得できるプロパティーに関する公式リファレンス。
function ag2curl_youtube($url){
$option = [
CURLOPT_RETURNTRANSFER => true,//データを文字列に変換して返す
CURLOPT_TIMEOUT => 30//タイムアウト秒数
];
$ch = curl_init($url);//cURLセッションを初期化
curl_setopt_array($ch, $option);//転送用の複数のオプションを設定
$json = curl_exec($ch);//cURLセッションを実行
if(curl_errno($ch)){ //エラー番号を返す(エラーが発生しない場合、0)
global $youtube_error;
$youtube_error = '<p>cURL error '.curl_errno($ch).' : '.curl_error($ch).'</p>';
$json = false;
}
curl_close($ch);//cURLセッションを閉じて処理を終了
return $json;
}
//APIからJSONデータを取得
$json = ag2curl_youtube($youtube_api_url);
if($json){
//JSON文字列をデコードして連想配列形式のオブジェクトを格納
$obj = json_decode($json, true);
//情報を取得
@$yt_items = $obj['items'][0];
@$yt_ch_title = $yt_items['snippet']['title'];
@$yt_ch_description = $yt_items['snippet']['description'];
@$yt_ch_viewCount = $yt_items['statistics']['viewCount'];
@$yt_ch_subscriberCount = $yt_items['statistics']['subscriberCount'];
@$yt_ch_videoCount = $yt_items['statistics']['videoCount'];
echo '<p>タイトル : '.$yt_ch_title.'</p>';
echo '<p>チャンネル説明 : '.$yt_ch_description.'</p>';
echo '<p>総再生数 : '.$yt_ch_viewCount.' 回</p>';
echo '<p>登録者数 : '.$yt_ch_subscriberCount.' 人</p>';
echo '<p>投稿動画数 : '.$yt_ch_videoCount.' 本</p>';
}else{
echo '<p>API エラー : チャンネルの情報を読み込めませんでした。</p>';
echo $youtube_error;
}
https://memo.ag2works.tokyo/post-4835/
YouTube Data APIでYouTubeのチャンネルのJSONデータを取得。 | memo メモ [AG2WORKS]
<a href="https://memo.ag2works.tokyo/post-4835/" target="_blank" rel="noopener">YouTube Data APIでYouTubeのチャンネルのJSONデータを取得。 | memo メモ [AG2WORKS]</a>
この記事へのコメント
コメントの書き込みはまだありません。