指定した YouTuber の動画情報を PHP で取得する方法をご紹介します。
この記事のポイントは、動画IDを指定せずに、YouTuberのチャンネルIDを指定することで、動画情報をひとつひとつ取得するのではなく、指定したYouTuberの動画情報を一括で取得できる点です。
ではいってみましょう。
YouTubeAPIを使用するための準備
PHPからYouTubeAPIを使用するためのパッケージをインストールする必要があります。インストールにはPHPのパッケージマネージャであるcomposerを導入します。composerの導入方法は以下の記事を参考にしてください。

YouTubeAPIパッケージのインストール
composerをインストールしたら、次は以下のコマンドを実行し、YouTubeAPIのパッケージをインストールします。
パッケージを使用するプログラムと同じ階層に移動し、 youtube-project というフォルダ内にパッケージをインストールします。
[ユーザ名@サーバ名 ~]$ cd ./jitantech.com/public_html/youtube-project/
移動したら、以下のコマンドを実行し、YouTubeAPIのパッケージをインストールします。
実際には以下のようになります。
[ユーザ名@サーバ名 youtube-project]$ composer require google/apiclient
実行すると以下の画像のようにvendorというフォルダの中にYouTubeAPIのパッケージがインストールされます。

プログラムコード
ではここからは実際に、指定したYouTuberの動画情報を取得するプログラムを見ていきましょう。以下のプログラムを .php ファイルとして保存します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
<?php // GoogleAPIライブラリを読み込む require_once (dirname(__FILE__) . '/vendor/autoload.php'); // ご自身のAPIキーを定数にセットする const API_KEY = "ここにご自身のYouTubeAPIキーを入れてください"; // 認証を行う function getClient() { $client = new Google_Client(); $client->setApplicationName("youtube-api-test"); $client->setDeveloperKey(API_KEY); return $client; } // チャンネルの情報を取得する. function searchVideos($id) { $youtube = new Google_Service_YouTube(getClient()); // ここで取得数や日付を指定 $params['channelId'] = $id; $params['type'] = 'video'; $params['maxResults'] = 2; $params['publishedAfter'] = '2024-01-01T00:00:00Z'; #'2013-01-01T00:00:00Z' $params['publishedBefore'] = '2025-04-30T00:00:00Z'; #'2014-01-01T00:00:00Z' $params['order'] = 'date'; // チャンネルIDからチャンネル情報を取得 $searchResponse = $youtube->search->listSearch('snippet', $params); // 取得したチャンネルの情報から動画IDを取得 foreach ($searchResponse['items'] as $search_result) { if ($search_result["id"]["kind"] = "youtube#video") { $videos[] = $search_result["id"]["videoId"]; } } // 動画IDから動画情報を取得 $listResponse = $youtube->videos->listVideos( 'id,snippet,statistics,contentDetails', array('id' => implode(",", $videos)) ); foreach ($listResponse as $val) { print $val["snippet"]["publishedAt"]."<br>"; print $val["id"]."<br>"; print $val["snippet"]["title"]."<br>"; print $val["snippet"]["categoryId"]."<br>"; print covtime($val["contentDetails"]["duration"])."<br>"; print $val["statistics"]["viewCount"]."<br>"; print $val["statistics"]["likeCount"]."<br>"; print $val["statistics"]["commentCount"]."<br>"; print "<br>"; } } function covtime($youtube_time){ if($youtube_time) { $start = new DateTime('@0'); // Unix epoch $start->add(new DateInterval($youtube_time)); $youtube_time = $start->format('H:i:s'); } return $youtube_time; } // プログラムの実行(これはドロピザのチャンネルID) searchVideos("UCgTDck8fPsLGQcJIYhdUCvw"); ?> |
使用方法
使用するにはご自身のYouTubeAPIキー(※無料で取得・使用ができます)を取得する必要があります。
YouTubeAPIキーの取得方法
以下の記事を参考にすることで、YouTubeAPIキーを取得できます。

APIキーをプログラムに記載
取得したAPIキーをプログラムの次の部分に記載しましょう。
1 2 |
// ご自身のAPIキーを定数にセットする const API_KEY = "ここにご自身のYouTubeAPIキーを入れてください"; |
YouTuberのチャンネルIDを調べる
こちらのサイトでYouTuberのチャンネルIDを調べましょう。

チャンネルIDをプログラムに記載
調査したチャンネルIDをプログラムの次の部分に記載しましょう。
1 2 |
// プログラムの実行(これはドロピザのチャンネルID) searchVideos("UCgTDck8fPsLGQcJIYhdUCvw"); |
動画情報の取得数、取得期間の設定
maxResuls に取得する動画情報の数を指定します。1日に発行できるYouTubeAPIの数に上限がありますので、最大でも 50 くらいにしておきましょう。
publishedAfter と publishedBefore に取得する動画の 公開日(自)、公開日(至)をそれぞれ入力します。形式はサンプルに記載している通りです。T00:00:00Zを記載しないとエラーになります。
1 2 3 4 5 6 7 |
// ここで取得数や日付を指定 $params['channelId'] = $id; $params['type'] = 'video'; $params['maxResults'] = 2; $params['publishedAfter'] = '2024-01-01T00:00:00Z'; #'2013-01-01T00:00:00Z' $params['publishedBefore'] = '2025-04-30T00:00:00Z'; #'2014-01-01T00:00:00Z' $params['order'] = 'date'; |
実行結果
プログラムを実行すると、以下の画像のように、公開日、動画ID、動画タイトル、カテゴリーID、動画の再生時間、再生数、いいね数、コメント数が取得できていることが分かります。

さいごに
いかがだったでしょうか。
今回はPHPからYouTube Data APIを使用して指定したYouTuberの動画情報を取得する方法をご紹介しました。今後はこのプログラムをサーバーで自動実行させて定期的に情報を自動収集させる予定です。
そちらのプログラムが完成したら方法を共有させていただきます。
最後までお読みいただき、ありがとうございました。
コメント