新たにYouTubeのチャンネルを分析してチャンネルの登録者数、総再生回数を取得して表示する他、動画の再生数の多い順に表示するWebサービスを作ったので、その中で利用したYouTube Data APIの関数について解説します。
作ったサービスはこちらになります。
Bestub -ベスチューブ-
https://www.bestub.net/
YouTubeのAPIは複数用意されていて、訪問者が視聴した時間、視聴者の離脱率など主に自分の管理している動画に関する情報を取得するAPIであるYouTube Analytics API、YouTube Reporting APIと、認証なしでYouTube上の動画やチャンネルの情報を取得できるYouTube Data APIがあります。
BestubではYouTube Data APIを利用してチャンネル情報や動画情報を取得しています。
具体的には、まず、Google Developer Consoleでアカウント登録をしてプロジェクトを作成します。
その上でプロジェクトのYouTube Data APIを有効化し、認証キーを作成します。
認証キーを取得したら、Google API LibrariesをGitHubから取得してインストールします。
言語はそれぞれ適切なものを利用するものとしますが、BestubはPHPで書かれていますので、こちら(https://github.com/googleapis/google-api-php-client?hl=ja) からダウンロードしました。
Bestubではチャンネル情報を取得する時に以下の処理をしています。
1.チャンネルのIDからチャンネルの情報(紹介文、サムネイル、総再生回数など)を取得する。→Channelsのlistメソッドを呼ぶ(https://developers.google.com/youtube/v3/getting-started) 。
2.チャンネルに登録されている動画を検索し、チャンネルに投稿されている動画のIDを全て取得する。→Searchのlistメソッドを呼ぶ(https://developers.google.com/youtube/v3/guides/implementation/search) 。
3.取得した動画のID(複数を同時に取得可)から動画の情報(統計情報やサムネイルなど)を取得する。 →Videosのlistメソッドで取得(https://developers.google.com/youtube/v3/guides/implementation/videos) 。
この三つの過程によってYouTubeチャンネルの動画人気ランキングを作成します。一度にこれらの情報を取得できれば楽なのですが、チャンネルの情報に加えてチャンネルに投稿された動画の詳細情報についても掲載する必要があるので自分の知る限りですとこれらの処理が必要になってくると思われます。
YouTube APIは定められたクォータ(利用可能なAPIのコール制限)内でしか使用できないきまりになっています。このチャンネル情報の取得では必要となるクォータの量がかなり多いので、それをどうにか圧縮することが今後の課題です。
改善点が見つかったらまた追加いたします。