phpやhtmlに関する資料
備忘録的なナニカ

内容

指定したチャンネルの登録者数などの統計情報をPHPで取得したい

方法

qiitaでAPIライブラリを使用した方法が掲載されているので、ライブラリをインストールできる人はそちらで。 [PHP] YouTube APIの利用(動画情報の取得)
composerを使用せず、googleapisへアクセスして情報を取得する方法を掲載する
https://www.googleapis.com/youtube/v3/channelsというアドレスに指定パラメータを送る。GoogleのデベロッパーコンソールよりAPI KEYを取得しておく必要がある。


対応


phpソース

define('YOUTUBE_API_KEY', '*************'); // APIキー (Google Developer Consoleから取得したものをセットしてください)

function json_get($url, $query = array(), $assoc = false) { // JSONデータ取得用
    if ($query) $url .= ('?' . http_build_query($query, '', '&', PHP_QUERY_RFC3986));

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url); // URL
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // リクエスト先が https の場合、証明書検証をしない (環境によって動作しない場合があるため)
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // curl_exec() 経由で応答データを直接取得できるようにする
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10); // 接続タイムアウトの秒数
    $responseString = curl_exec($curl); // 応答データ取得
    curl_close($curl);
    return ($responseString !== false) ? json_decode($responseString, $assoc) : false;
}

$response = json_get('https://www.googleapis.com/youtube/v3/channels', array(
    'key' => YOUTUBE_API_KEY,
    'id' => 'UC25Ah0_XF2lOUwWV9VSfl2g', // チャンネルID (チャンネルで絞り込む場合)
    'part' => 'statistics', // 取得するデータの種類 (統計の場合はstatistics、タイトルや画像を含める場合はsnippet)
), true);

var_dump($response);


以下のように中身が返される

array(4) {
 ["kind"]=> string(27) "youtube#channelListResponse"
 ["etag"]=> string(27) "BUyAVgro_uKyxvKuM9fIcGKnXxs"
 ["pageInfo"]=> array(2) { ["totalResults"]=> int(1) ["resultsPerPage"]=> int(5) }
 ["items"]=> array(1) { [0]=> array(4) { ["kind"]=> string(15) "youtube#channel" ["etag"]=> string(27) "jiU8EVunOR-mzt7cHvK9sHwXvdM" ["id"]=> string(24) "UC25Ah0_XF2lOUwWV9VSfl2g"
 ["statistics"]=> array(4) { ["viewCount"]=> string(8) "60642448" ["subscriberCount"]=> string(6) "428000" ["hiddenSubscriberCount"]=> bool(false) ["videoCount"]=> string(3) "106" } } } }


viewCount:チャンネルの再生回数。
commentCount:チャンネルのコメント数。
subscriberCount:チャンネルの登録者数。
hiddenSubscriberCount:チャンネル登録者数を公開表示するかどうかを指定します。
videoCount:チャンネルにアップロードされた動画の数。


FAQ一覧へ