【PHP】Youtube Data APIを使ってチャンネル登録者数と再生数を取得する

Youtubeチャンネルの登録者数や累計再生数をプログラムを使って自動取得したい場合、Youtube Data APIを使うことで無料で簡単に取得できます。

今回はYoutube Data APIを使ってチャンネル登録者数や動画再生数を取得するプログラムを紹介します。

ちなみに今回のサンプルではPHPを使っていますが、Yutube Data APIはGETリクエストで取得できるので、他の言語でも簡単にできるはずです。

目次から探す

Google Cloud PlatformでYoutube Data APIを準備する

Youtube Data APIはGoogle Cloud PlatformでAPIを有効化したプロジェクトを作成することで利用可能です。

STEP
プロジェクトの作成

リソースの管理ページにアクセスし、プロジェクトの作成を選択します。

適当にプロジェクト名を決め、作成をクリックします。

STEP
Youtube Data APIの追加

プロジェクトを作成しただけではYoutube Data APIが有効化されていません。

左上にメニューアイコンをクリックし、メニューを表示します。

APIとサービスにカーソルを合わせたら表示されるライブラリをクリックします。

このままYoutube Data APIを有効化しに行ってもいいのですが、一度今現在操作しているプロジェクトが間違っていないかチェックしましょう。

赤枠で囲った箇所がプロジェクト名なので、違っていた場合はクリックして切り替えましょう。

プロジェクトに問題なければ「API とサービスを検索」に”Youtube Data API”を入力して、ヒットしたYoutube Data APIをクリックします。

有効にするをクリックします。

これでYoutube Data APIがプロジェクト内で有効化されました。

続いては、PHPで使うためのAPIキーを発行します。

STEP
APIキーの発行

左メニュー開きAPIとサービス →認証情報へと進みます。

認証情報を作成をクリックし、APIキーを選択します。

しばらく待つと API キーが表示されます。このAPIキーはPHPでAPIを呼び出す時に使うのでどこかにメモしておいてください。

ここまでできたらGoogle Cloud Platformでの準備完了です。

サンプルコード

それではチャンネル登録者数などを取得してみましょうか。

Youtube Data APIはGETリクエストで取得できるため、ブラウザのURL欄直打ちでも取得できます。

PHPコードを見る前に試しにブラウザでYoutube Data APIを使ってみましょう。

以下のURLのAPIキーを自分のAPIキーに置き換えてブラウザの URL欄に貼り付けてみてください。

https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&id=UCJhjE7wbdYAae1G25m0tHAA&key=APIキー

使用しているブラウザやアドオンによって表示形式は変わりますが、チャンネル情報のJSONデータが取得できたはずです。

プログラムではこのURLに対して直接リクエストを送ることで、簡単に取得できるようになっています。

実際にPHPでチャンネル登録者数とチャンネル累計再生数を取得する場合は以下のコードで取得可能です。

$json=file_get_contents('https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&key='.$apikey.'&id='.$channel_id);

$json= mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$json = json_decode($json);

$json->items[0]->statistics->viewCount; //チャンネル内動画合計再生数
$json->items[0]->statistics->subscriberCount; //チャンネル登録者数

statistics->viewCountがチャンネル内動画累計再生数・statistics->subscriberCountがチャンネル登録者数となっています。

取得データは汎用性の高いJSONフォーマット、GETリクエストで受信できるためURLからデータを取得する方法さえ分かれば他のプログラミング言語でも簡単に取得できるでしょう。

目次から探す