はじめに
YouTubeは動画の内容だけでなく、動画に寄せられるコメントも貴重な情報源として認識されてきていると思います。
これらのコメントを取得したいと思ったときに必要な情報を一つひとつ手動で抽出するのは大変です。
今回の記事ではGoogle Apps Scriptを用いて効率的にYouTubeの動画コメントを取得するツールを紹介します。
作成時間は15分ほど、初心者でも簡単に作成が可能です。
- 動画のURLを入力するだけで、コメント文、投稿者名、投稿日時、いいね数、そして投稿者のURLまでを一気に取得可能。
- 取得したデータはスプレッドシートに整理するため、視覚化に適しており、データ解析にも簡単に使用可能。
- 手動で取得するよりも大幅に時間が短縮できます。
動作イメージ
まずは簡単にツールの動作について説明します。
ツールはGoogleスプレッドシートで作成しています。ツール上で動画のURLと出力したい件数を入力して[実行ボタン]をクリックすることで動作します。
裏で動いているGAS(Google Apps Script)によって、動画に対するコメント文、投稿者名、投稿日時、いいね数、そして投稿者のURLが表示されます。
作成方法
事前準備
今回のツールの作成にあたっては事前に以下が必要となります。
- Google アカウント
- YouTube Data API
YouTube Data 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セルに「出力件数」を入力します。
最後に、[実行]ボタンを押すと自動でコメント情報が表示されます。
注意点
GASおすすめ本
GASをもっと勉強したい!ほかにも自分で何か作成したい!という方には以下がおすすめです。