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を有効化したプロジェクトを作成することで利用可能です。
プロジェクトを作成しただけではYoutube Data APIが有効化されていません。
左上にメニューアイコンをクリックし、メニューを表示します。
APIとサービスにカーソルを合わせたら表示される
をクリックします。このままYoutube Data APIを有効化しに行ってもいいのですが、一度今現在操作しているプロジェクトが間違っていないかチェックしましょう。
赤枠で囲った箇所がプロジェクト名なので、違っていた場合はクリックして切り替えましょう。
プロジェクトに問題なければ「API とサービスを検索」に”Youtube Data API”を入力して、ヒットしたYoutube Data APIをクリックします。
有効にするをクリックします。
これでYoutube Data APIがプロジェクト内で有効化されました。
続いては、PHPで使うための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からデータを取得する方法さえ分かれば他のプログラミング言語でも簡単に取得できるでしょう。