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

最終更新日:2026年8月6日

この記事でわかること

  1. 準備するもの
  2. YouTube Data APIを有効にする
  3. スプレッドシートとGoogle Apps Script
  4. この記事のポイント
  5. よくある質問
  6. 関連記事
  7. おわりに

はじめに

項目 Google Apps Script Excel VBA Python
主な用途 Google Workspace自動化 Excel業務自動化 汎用自動化・データ分析
学習難易度 低(JavaScript系) 中 低〜中
実行環境 クラウド(無料) Windows/Excel必須 ローカル or クラウド
Googleサービス連携 最高 低 API経由で可

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

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

準備するもの

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

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

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

YouTube Data APIを有効にする

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

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

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

コメント情報を記載するためのスプレッドシートを用意します。さきほど作成し、YouTube Data APIを有効にしたGoogleアカウントでスプレッドシートを開くようにしてください。アカウントが異なっている場合、コメントを取得できないので注意してください。スプレッドシートを開き、メニューバーの「拡張機能」→「Apps Script」をクリックし、Google Apps Scriptのエディタを開きましょう(※以前はメニューバーの「ツール」→「スクリプトエディタ」という導線でしたが、現在のGoogleスプレッドシートでは「拡張機能」メニューからの起動に変更されています)。エディタ画面に以下のコードをコピペで貼り付けてください。


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なので、この部分を変更するだけで、動画の投稿者名と投稿日、コメント内容を抽出することができます。各シート名には動画タイトルが入るようになっているので、動画タイトルごとにコメントを抜き出すことも可能です。

※上記コードでYouTube APIを呼び出すには、Apps Scriptエディタの左メニューから「サービス」を開き、「YouTube Data API」を追加サービスとして有効化しておく必要があります。

この記事のポイント

  • YouTube動画のコメントを一括取得するには「YouTube Data API」を有効化し、Google Apps Scriptから呼び出す構成が手軽
  • Google Apps Scriptエディタは現在「拡張機能」→「Apps Script」から開く(旧「ツール」→「スクリプトエディタ」からの変更)
  • 取得したコメントはスプレッドシートに投稿者名・投稿日・コメント内容として自動整理され、動画ごとにシートが分かれるため分析に活用しやすい

よくある質問

Q. YouTube.Videos.listやYouTube.CommentThreads.listがエラーになります。原因は何ですか?
A. Apps Scriptエディタで「YouTube Data API」の高度なサービスが有効化されていない可能性があります。エディタの「サービス」メニューから追加してください。また、Google Cloud Console側でもYouTube Data APIが有効化されている必要があります。
Q. 複数の動画のコメントをまとめて取得できますか?
A. 可能です。コード内の`video_list`配列に複数の動画IDをカンマ区切りで追加すると、動画ごとに新しいシートが作成されコメントが取得されます。
Q. 返信コメント(リプライ)も取得できますか?
A. 取得できます。上記コードはトップレベルのコメントに加え、各コメントへの返信(replies)も併せてスプレッドシートに書き出す仕様になっています。

おわりに

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

▼ アクロビジョンについて

👔

一緒に働きましょう

一人ひとりのキャリアに向き合い、
活躍できる現場をご紹介します。

採用サイトを見る →
💻

システム開発のご依頼・ご相談

コンサルティングから運用保守まで、
ワンストップで対応します。

まずはお気軽にご相談ください →