SANANEBLOG
GAS PR

YouTubeの動画URLからコメントやいいね数を一括取得するツールの作成方法【GAS】

記事内に商品プロモーションを含む場合があります

はじめに

YouTubeは動画の内容だけでなく、動画に寄せられるコメントも貴重な情報源として認識されてきていると思います。

これらのコメントを取得したいと思ったときに必要な情報を一つひとつ手動で抽出するのは大変です。

今回の記事ではGoogle Apps Scriptを用いて効率的にYouTubeの動画コメントを取得するツールを紹介します。

SANANE

作成時間は15分ほど、初心者でも簡単に作成が可能です。

本ツールのメリット
  1. 動画のURLを入力するだけで、コメント文、投稿者名、投稿日時、いいね数、そして投稿者のURLまでを一気に取得可能。
  2. 取得したデータはスプレッドシートに整理するため、視覚化に適しており、データ解析にも簡単に使用可能。
  3. 手動で取得するよりも大幅に時間が短縮できます。
YouTubeの検索ワードから関連動画情報をスプレッドシートに出力するツールの作成方法【GAS】 はじめに 今回の記事ではGAS(Google Apps Script)を使用してYouTubeの動画情報を検索ワードから一括取得...
YouTubeのチャンネル情報を一括でスプレッドシートに出力するツール作成方法【GAS】 はじめに 今回の記事では、YouTube Data APIとGAS(Google Apps Script)を使用してチャンネルI...

動作イメージ

SANANE

まずは簡単にツールの動作について説明します。

ツールはGoogleスプレッドシートで作成しています。ツール上で動画のURLと出力したい件数を入力して[実行ボタン]をクリックすることで動作します。

裏で動いているGAS(Google Apps Script)によって、動画に対するコメント文、投稿者名、投稿日時、いいね数、そして投稿者のURLが表示されます。

作成方法

事前準備

今回のツールの作成にあたっては事前に以下が必要となります。

  • Google アカウント
  • YouTube Data API

YouTube Data APIの取得方法は以下を参照してください。

作成したAPIキーを後で使用するため控えておいてください。

また、発行したAPIキーの取り扱いには十分注意をしてください。

YouTube Data APIとは

YouTube Data APIはGoogleが提供するYouTubeのデータを取得し操作するためのプログラムインターフェースです。これにより、YouTubeのビデオ、プレイリスト、チャンネルなどに関する詳細情報を取得したり、ビデオのアップロードやコメントの投稿などの操作を行うことが可能になります。

APIはデータの取得に使用する各種のリクエストをサポートしています。例えば、特定のチャンネルのビデオリストを取得したり、特定のビデオの詳細情報を取得したりできます。

こうした情報は、YouTubeチャンネルのパフォーマンス分析や動画コンテンツの改善、視聴者の傾向理解などに役立てることができます。

スプレッドシートの操作

まずスプレッドシートにログインして、[新しいスプレッドシートを作成]>[空白]などから情報を出力したいスプレッドシートを新規で作成します。

スプレッドシートの上部バーから[拡張機能]>[Apps Script]をクリックします。別タブでApps Scriptが開きます。

次に、実際にコードを記載していきます。もともと記載してある、

function myFunction() {

}

削除して、新たに下記のコードをコピペしてください。

この時、1行目の以下の部分を書き換えます。

YOUR_YOUTUBE_API_KEY:控えておいたYouTubeのAPIキー

var API_KEY = 'YOUR_YOUTUBE_API_KEY';  // 作成したAPIキーをここに貼り付けます

function getYouTubeComments() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  // 5行目以降をクリア
  sheet.getRange(5, 1, sheet.getMaxRows() - 4, 5).clearContent();

  // A1とB1にラベルを設定
  sheet.getRange('A1').setValue('動画URL');
  sheet.getRange('B1').setValue('出力件数');

  var videoURL = sheet.getRange('A2').getValue();
  var maxResults = sheet.getRange('B2').getValue();

  var videoId = videoURL.split('v=')[1].split('&')[0]; // URLから動画IDを取得

  var apiUrl = 'https://www.googleapis.com/youtube/v3/commentThreads?key=' + API_KEY + '&textFormat=plainText&part=snippet&videoId=' + videoId + '&maxResults=' + maxResults;

  var response = UrlFetchApp.fetch(apiUrl);
  var json = JSON.parse(response.getContentText());

  // ヘッダーを4行目に出力
  sheet.getRange(4, 1, 1, 5).setValues([["コメント", "投稿者名", "投稿者URL", "投稿日時(JST)", "いいね数"]]);

  var data = [];
  for (var i = 0; i < json.items.length; i++) {
    var comment = json.items[i].snippet.topLevelComment.snippet.textDisplay;
    var author = json.items[i].snippet.topLevelComment.snippet.authorDisplayName;
    var authorURL = json.items[i].snippet.topLevelComment.snippet.authorChannelUrl;
    var utcDate = new Date(json.items[i].snippet.topLevelComment.snippet.publishedAt);
    var jstDate = new Date(utcDate.getTime() + (9 * 60 * 60 * 1000)); // 日本時間に変換
    var likes = json.items[i].snippet.topLevelComment.snippet.likeCount;
    data.push([comment, author, authorURL, jstDate, likes]);
  }

  // データを5行目からスプレッドシートに出力
  sheet.getRange(5, 1, data.length, 5).setValues(data);
}

[Ctrl + S]か上部バーの[プロジェクトを保存]を押してコードを保存します。

GASの実行

Apps Script 上部バーの[▶実行]をクリックします。最初のスクリプトの実行には権限が必要となるため、[承認が必要です]というモーダルが表示されたら、

[権限を確認]>[表示されているGoogleアカウント]>[詳細]>[無題のプロジェクト(安全ではないページ)に移動]>[許可]まで移動します。クリック後GASが実行されます。

この時点ではスプレッドシートに動画URLや出力件数を入力していないため、実行エラーが発生しますが問題ありません。

ボタンの作成

再度スプレッドシートのタブに戻ります。

Google スプレッドシートを開き、上部メニューの [挿入] > [図形描画] をクリックします。

好きな図形を選択し、スプレッドシート上の任意の位置に配置します。この図形がボタンとなります。

ボタン(図形)を右上の…をクリックし、[スクリプトを割り当て] をクリックします。

開いたダイアログボックスに 以下を入力し[確定]をクリックします。

getYouTubeComments

以降は作成されたボタンをクリックすることで、簡単にプログラムを実行することができます。

以上で作成は完了となります。続いてツールの利用方法となります。

ツールの利用方法

スプレッドシートでA2セルに「動画URL」、B2セルに「出力件数」を入力します。

最後に、[実行]ボタンを押すと自動でコメント情報が表示されます。

注意点

YouTube APIには一日当たりの使用上限が定められているため、実行数が多いと途中で動作が停止する場合があります。

YouTubeのコメントをいいね順で並び替えたり、投稿日順でソートすることはAPIの仕様上できません。本ツール上での出力結果を多くしてスプレッドシートでソートする、というのが対応策になります。

GASおすすめ本

GASをもっと勉強したい!ほかにも自分で何か作成したい!という方には以下がおすすめです。