#078
posted on 2022.07.08 (Fri) 2023.04.10 (Mon)

YouTube Data APIでYouTubeのチャンネルのJSONデータを取得。

CATEGORY

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に出力する作業。

  1. PHPの「cURL()」関数を使ってYouTube Data APIにアクセスしてJSONデータを取得。
  2. 取得したデータを整形し、連想配列にしてオブジェクトを変数に格納。
  3. 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;
}

 

 

この記事のURL

https://memo.ag2works.tokyo/post-4835/

Copyコピー
この記事のタイトル

YouTube Data APIでYouTubeのチャンネルのJSONデータを取得。 | memo メモ [AG2WORKS]

Copyコピー
この記事のリンクタグ

<a href="https://memo.ag2works.tokyo/post-4835/" target="_blank" rel="noopener">YouTube Data APIでYouTubeのチャンネルのJSONデータを取得。 | memo メモ [AG2WORKS]</a>

Copyコピー
※ フィールドをクリックでコピーするテキストの編集ができます。

この記事へのコメント

コメントの書き込みはまだありません。

  • コメント内のタグはエスケープ処理され、文字列として出力されます。
  • セキュリティーのため、投稿者のIPアドレスは取得されます。
  • 管理者が内容を不適切と判断したコメントは削除されます。
  • このフォームにはスパム対策として、Googleの提供するreCAPTCHAシステムが導入されています。
    (Google Privacy Policy and Terms of Service.)