Google Apps ScriptとYoutubeのAPIを利用して動画のコメントを取得する

はじめに

昨今、動画コンテンツが流行しています。特にYouTuberと呼ばれる新たな職業とも言える人たちも出てきています。これまでは一般人の方が参戦していましたが、数年前から芸能人も参入してきているため、より多くの層がYouTubeなどの動画を見る機会が増えてきました。動画コンテンツの制作に力を入れている企業も増えてきていますが、なかなかうまくいかないというところもあるでしょう。ただ闇雲に動画を作成して発信しているだけではチャンネル登録者数も動画の再生回数も伸びないでしょう。そこで、人気のYouTuberや動画配信者の動画を研究すると思うのですが、同じように真似をするだけではブランディングが異なるため同じような結果が出るとも限りません。そこでオススメするのが、人気動画についたコメントから情報を得て、動画閲覧者がどんなことを求めているのかを研究することです。でも動画のコメントを一つ一つ見ていくのはとてもじゃないけど大変です。

そこでこの記事では『Google Apps ScriptとYouTubeのAPIを利用して動画のコメントを取得する』方法をご紹介します。方法はとても簡単なので、誰でもすぐにコメントを取得できるようになります。ぜひ参考にしてみてください。そして、人気が出るような動画制作ができるようにしていきましょう!

準備するもの

YouTubeの動画コメントを取得して閲覧しやすくするためには必要なものを列挙します。

  • Googleアカウント
  • YouTube Date API
  • Google Apps Script
  • Googleスプレッドシート

この3つを使っていきます。すでにGoogleアカウントを持っており、作成する必要のない方は『YouTube Date APIを有効にする』へお進みください。YouTube Date APIやGoogle Apps Script、Googleスプレッドシートに関してはGoogleアカウントを取得していないと利用できないため、まずはGoogleアカウントを取得していきましょう。また、普段利用しているアカウントとは別のアカウントを使いたいという場合も別のアカウントを取得しておいてください。Googleアカウントはこちらから作成できます。作成できたらYouTube Date APIを有効にしていきます。

YouTube Date APIを有効にする

YouTube上のデータを取得するためにYouTube Date APIを利用します。まずはこちらへ飛んでください。YouTube Date APIをクリックしてください。

「有効にする」をクリックします。プロジェクト名を決めていない場合はプロジェクト名を決めてください。すると、下記のような画面になります。「有効化のステータス」が「有効」になっていればOKです。では次にスプレッドシートとGoogle Apps Scriptを開いていきます。

スプレッドシートとGoogle Apps Script

コメント情報を記載するためのスプレッドシートを用意します。さきほど作成し、YouTube Date APIを有効にしたGoogleアカウントでスプレッドシートを開くようにしてください。アカウントが異なっている場合、コメントを取得できないので注意してください。スプレッドシートを開き、メニューバーの「ツール」→「スクリプトエディタ」をクリックし、Google Apps Scriptのエディタを開きましょう。エディタ画面に以下のコードをコピペで貼り付けてください。


function comment() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var video_list = ['YouTube動画のID'];
  var PageToken = '';

  for (var i = 0; i < video_list.length; i++) {
    var video_id  = video_list[i];
    var video = YouTube.Videos.list('id,snippet, statistics', {id: video_id,});
    
    if (i == 0) {
      var sh = ss.getActiveSheet();
    } else {
      var sh = ss.insertSheet();
    }
    sh.setName(video.items[0].snippet.title);
    
    var row = 2;
    var col = 1;
    sh.getRange(1, 1).setValue("投稿者名");
    sh.getRange(1, 2).setValue("投稿日");
    sh.getRange(1, 3).setValue("コメント");

        
    while (true) {
      var comment_list = YouTube.CommentThreads.list('id, replies, snippet', {
        videoId: video_id,
        maxResults: 100,
        pageToken: PageToken,
      });
    
      for (var j = 0; j < comment_list.items.length; j++) {
        sh.getRange(row, col).setValue(comment_list.items[j].snippet.topLevelComment.snippet.authorDisplayName);
        sh.getRange(row, col + 1).setValue(comment_list.items[j].snippet.topLevelComment.snippet.publishedAt);
        sh.getRange(row, col + 2).setValue(comment_list.items[j].snippet.topLevelComment.snippet.textDisplay);
        row += 1;
        if (typeof comment_list.items[j].replies !== "undefined") {
           for (var k = 0; k < comment_list.items[j].replies.comments.length; k++) {
             sh.getRange(row, col).setValue(comment_list.items[j].replies.comments[k].snippet.authorDisplayName);
             sh.getRange(row, col + 1).setValue(comment_list.items[j].replies.comments[k].snippet.publishedAt);
             sh.getRange(row, col + 2).setValue(comment_list.items[j].replies.comments[k].snippet.textDisplay);
             row += 1;
           }
         }
      }
      PageToken = comment_list.nextPageToken
      if (typeof PageToken == "undefined") {
        break
      }
    }
  }
}

YouTube動画のIDは動画を開いた状態で、URLに記載の「https://www.YouTube.com/watch?v=XXXXXXXXX」のXXXXXXXXX部分になります。「=」より右の部分がIDなので、この部分を変更するだけで、動画の投稿者名と投稿日、コメント内容を抽出することができます。各シート名には動画タイトルが入るようになっているので、動画タイトルごとにコメントを抜き出すことも可能です。

おわりに

Google Apps ScriptとYouTubeのAPIを利用して動画のコメントを取得する方法についてお伝えしてきましたがいかがでしたでしょうか。人気動画や人気YouTuberの動画のコメントを調査して、視聴者のニーズを探してそのニーズに応えるような動画を作成していくようにすることで、動画の再生回数も伸びていくことでしょう。そのためにこの記事でコメントを取得して研究してみてください。