GASでYoutube APIによる動画の検索方法を解説!スプレ出力サンプルコード付

YouTubeの調査やマーケティングで動画検索を自動化したいニーズが多くあります。

そこで、Google Apps Script(GAS)でYoutube APIを使ってYoutube動画を検索する方法を解説します。

検索にヒットする動画情報一覧をスプレッドシートに書き出すサンプルコードも説明します。

YouTube動画を自動で検索・取得したい

YouTube動画を分析しようとすると、まずデータを手動で収集することは大変です。

YouTubeのページでキーワードを検索し、検索結果の動画のタイトルや動画ID、再生回数・高評価数・コメント数を取得してコピペしてスプレッドシートやエクセルに書き出す。

上記のような収集作業を大量の動画で行うのは作業者の負荷が大きいため、YouTube動画の統計情報を自動で取得できると便利です。

YouTubeにはAPIが提供

YouTubeはGoogleが運営していることもあり、APIが提供されています。

YouTubeで利用できるAPIは以下の3つです。

  1. Youtube Data API
  2. Youtube Analytics
  3.  YouTubeContentId (YoutubePartner)

それぞれ取得できる情報や操作内容が異なりますが、主に使うのはYoutube Data APIです。

このAPIを使うことで、YouTube動画の検索を自動化できます。

Youtube動画の調査のための、特定のキーワードのヒットする動画をリストアップすることが可能です。

GASなら簡単にYoutube APIを利用可能

YouTubeのAPIを利用する際にオススメはGoogle Apps Script(GAS)です。

GASはGoogleが提供するサーバーレスのスクリプトサービスです。

無料で使えて色々な処理を自動化できるなど、業務効率化に役立ちます。

GASには上記のメリットのほかに、Googleが提供している主要なAPIを簡単に利用できる点があります。

通常GoogleのAPIを利用するにはGCP上でAPIの有効化から認証設定が必要です。

GCPのOAuth同意画面のスコープ設定は不要なので、何も設定せずに「保存して次へ」を選択

一方GASならスクリプトエディタにある「サービス」から追加したいAPIを選ぶだけで、利用できるようになります。

Youtube関連のAPIもGASのサービスで追加できるようになっており、Youtube Data APIも対象です。

API周りの設定は難易度が高くて挫折する人も多いですが、GASならかなり簡単に利用できます。

YouTube Data APIのGAS設定手順

Google Apps Script(GAS)でYoutube APIを利用するには、GASプロジェクト上で有効化する必要があります。

前述した通り、GASではGoogle関連のAPIが簡単に利用できるのがメリットです。

YouTube APIをGASで使えるようにする設定方法を解説します。

1.GASで新しいプロジェクトのスクリプトエディタを開いた状態で、「サービス」の+アイコンを選択します。

Google Apps Script(GAS)で簡単にAPIを利用できるサービスの追加方法

2.追加可能なサービスが一覧で表示されるので、下にスクロールして「Youtube Data API」を選択し、下部にある「追加」ボタンをクリックして追加します。

Google Apps Script(GAS)のスクリプトエディタでYoutube Data APIをサービスから追加

これでYoutube Data APIのサービスをGASプロジェクトに追加できました。

Google Apps Script(GAS)のプロジェクトにYoutube Data APIを追加すると、サービスの下に「Youtube」と表示

GASでYoutube APIで動画を検索するサンプルコード

YouTube  APIをGoogle Apps Script(GAS)で利用できるようになったので、API経由で動画を検索する方法をサンプルコードで解説します。

下記のサンプルコードをGASのエディタに貼り付けてください。

function searchYoutubebyKeyword() {
  // Youtubeで検索したいワードを入力
  const searchWord = '検索キーワード';
  //Youtube Data APIを使って、指定したワードで検索して結果を格納
  const results = YouTube.Search.list('snippet', {
    q: searchWord,
    maxResults: 10
  });
  // 取得した検索結果の動画タイトルを実行ログに出力
  for(let i = 0; i < results.items.length; i++){
    console.log(results.items[i].snippet.title);
  }
}
Google Apps Script(GAS)でYoutube Data APIを使って動画検索して実行ログに検索結果の動画タイトル一覧を出力するサンプルコード

GASサンプルコードは指定されたキーワードでYoutube動画を検索し、検索結果のタイトルを実行ログに出力します。

3行目の変数に代入した検索キーワードを設定しています。

5~8行目でYoutube Data APIで検索キーワードで最大数10で検索を実行しています。

サンプルコードを実行すると、実行ログに検索にヒットした動画タイトルが一覧で表示されます。

Google Apps Script(GAS)でYoutube Data APIを使って動画検索して実行ログに検索結果の動画タイトル一覧を出力するサンプルコードを実行した結果

このようにGASでYoutube Data APIを使って、簡単にYoutube動画の検索ができました。

YouTube APIの動画検索で取得できる情報

Youtube APIで動画検索を行った場合、検索に合致する動画の下記の情報が取得できます。

  1. 動画タイトル
  2. 動画ID
  3. 公開日時
  4. チャンネル名
  5. チャンネルID
  6. 動画概要
  7. サムネイル画像
Youtube Data APIで動画検索した際に得られる動画の情報には動画URLや再生数は含まれていない

動画URLについてはAPIで取得できませんが、「https://www.youtube.com/watch?v=”動画ID”」でURLを生成できます。

Youtube Data APIの検索では動画以外に再生リストもヒットする仕様です。

その場合は、動画タイトルの代わりに再生リスト名、動画IDの代わりに再生リストIDが出力されます。

なお、Youtube Data APIの検索では動画視聴回数や高評価数、コメント数は取得できません。

動画IDをキーに動画の統計情報を取得するAPIエンドポイントを実行し、視聴回数や高評価数、コメント数を取得する必要があります。

Youtube検索結果一覧をスプレッドシートに出力

実際にYoutube検索をGoogle Apps Script(GAS)で行いたい場合は、実行結果をスプレッドシートに出力することが多いです。

そこで、先ほどのGASサンプルコードをベースに検索結果をスプレッドシートに書き込むよう改良しました。

function writeYoutubeSearchResults() {
  //Youtube動画で検索したいワードを定義
  const searchWord = '検索キーワード'; 
  //スクリプトが紐づくスプレッドシートの単一なシートを取得
  const mySheet = SpreadsheetApp.getActiveSheet();
  //既存のシートデータをクリアする
  mySheet.getRange(2,1,100,5).clearContent();
  //Youtube Data APIをリクエストして検索結果の動画情報を取得
  const results = YouTube.Search.list('snippet', {
    q: searchWord,
    maxResults: 20
  });
  //スプレッドシートに書き込むための配列を定義
  let writeData =[];
  //検索結果の動画情報をループ処理で抽出して書き出し
  for(let i=0; i<results.items.length; i++){
    //検索に合致したのが再生リストの場合スキップし、動画のみ取得する
    if(results.items[i].id.videoId != null){
      writeData.push([
        results.items[i].snippet.title,
        results.items[i].snippet.publishedAt,
        results.items[i].id.videoId,
        'https://www.youtube.com/watch?v='+results.items[i].id.videoId,
        results.items[i].snippet.description
      ]);
    }
  }
  //スプレッドシートに動画データを書き出し
  mySheet.getRange(2,1,writeData.length,writeData[0].length).setValues(writeData);
}
Google Apps Script(GAS)でYoutube Data APIを使って動画検索した結果をスプレッドシートに出力するサンプルコード

上記のサンプルコードは、スプレッドシートのコンテナバインドスクリプトを想定しています。

スプレッドシートを開いて「拡張機能>Apps Script」を選択してGASスクリプトエディタを開いてサンプルコードを貼り付けてください。

GASのサンプルコードを実行すると、スクリプトに紐づくスプレッドシートに実行結果が出力されます。

Google Apps Script(GAS)でYoutube Data APIを使って動画検索した結果をスプレッドシートに出力するサンプルコードを実行したところ、動画タイトルや動画ID、URLがスプレッドシートに書き込み

Youtube動画の検索をGASでスプレッドシートに一発で出力できました。

YouTube APIは実行上限(クオータ)に注意

YouTube APIで注意すべき点は実行上限(クオータ数)が設けられていることです。

YouTube APIは1日あたり10,000クオータという実行上限です。

このクオータはAPIリクエスト回数ではなく、取得する情報量によって変わります。

例えば、Youtube動画をAPI経由で検索すると、100クオータを消費します。

その結果、1日あたりGoogleアカウントでYoutube APIで検索できるのは100回になります。

そのほかのYoutube APIを使った処理を行うと都度クオータが消費されます。

YouTube APIを使うGoogle Apps Script(GAS)のプログラムが多いと上限にひっかかり、APIリクエストがエラーになるので注意しましょう。

まとめ・終わりに

今回、Google Apps Script(GAS)でYouTube APIを使ってYouTube動画を検索する方法を紹介しました。

GASにはYoutube Data APIがサービス項目として用意されており、通常のAPI利用よりも簡単にリクエスト可能です。

わざわざYoutubeのページで動画検索しなくても、動画情報をAPI経由で取得できます。

GASはスプレッドシートなどとも連携しやすいので、検索にヒットした動画情報をスプレッドシートに書き込むのも簡単です。

Youtube動画の調査を行う場合は今回紹介したサンプルコードを活用して、データ収集を効率化してみてください。