大変ご無沙汰しております。IPR運営です。お知らせ以外の更新をするモチベーションがかろうじて湧きましたので、久々の更新となります。 今回はちょっとした HowTo として、たまに使っている Google Apps Script をご紹介させていただきます。
特定の動画のコメントを抽出したい
動画についてコメントは動画ページを見れば確認できるものであり、さほど重要度が高いわけでもないものの「レポート用などでリスト一覧でみたい」などのケースで、要望をまれにいただく事があります。
もちろんコメント抽出は可能ですが、APIの制限もありなんでもかんでも片っ端からコメントを取得!というわけにもいかず。そこで、”必要な時だけ指定の動画のコメントを抽出できるもの” をエンジニアが Google Apps Script で作成してくれました。
YouTubeAPIとGASを使うと他にも様々な事ができますので、使った事がない初心者の方向けに利用の流れを簡単にご説明しつつ、コメント抽出GASをご紹介させていただきます。
1.YouTubeAPI を使う準備
YouTubeAPIを利用したいGoogleアカウントで下記のページを開き、利用規約に同意しヘッダーにある「プロジェクトの選択」から新しいプロジェクトを作成。
https://console.cloud.google.com/apis/library
新しく作ったプロジェクトで、Youtube Data API v3 を検索、有効にします。
2.GAS で APIを使う準備
スプレッドシート > ツール > スクリプトエディタを開きます。
リソース > Googleの拡張サービス > Advanced Google servicesが開くので、「YouTube Data API」をONにする 許可を確認
以上で準備は完了です。
3.GAS を使う
コードに下記をコピペで貼り付けます。
function youtubeCommentFetcher() {
var SS = SpreadsheetApp.getActiveSpreadsheet();
// video_listにVID(YouTube動画のID)を入力してください
// ex. "l9F1J0DGFg0", 'J9IDKbPbQVY'
var video_list = [
'8X1h68C0eoA'
];
// =================ここから下は書き換えない=================
for (var v = 0; v < video_list.length; v++) {
var video_id = video_list[v];
var video = YouTube.Videos.list('id,snippet, statistics', {
id: video_id,
});
if (v == 0) {
var sheet = SS.getActiveSheet();
} else {
var sheet = SS.insertSheet();
}
sheet.setName(video.items[0].snippet.title);
var row = 2;
var col = 1;
sheet.getRange(1, 1).setValue("ビデオ名");
sheet.getRange(1, 2).setValue("チャンネル名");
sheet.getRange(1, 3).setValue("コメントユーザー名");
sheet.getRange(1, 4).setValue("コメント日");
sheet.getRange(1, 5).setValue("コメント");
var PageToken = ''
while (true) {
var comment_list = YouTube.CommentThreads.list('id, replies, snippet', {
videoId: video_id,
maxResults: 100,
pageToken: PageToken,
});
for (var i = 0; i < comment_list.items.length; i++) {
sheet.getRange(row, col).setValue(video.items[0].snippet.title);
sheet.getRange(row, col + 1).setValue(video.items[0].snippet.channelTitle);
sheet.getRange(row, col + 2).setValue(comment_list.items[i].snippet.topLevelComment.snippet.authorDisplayName);
sheet.getRange(row, col + 3).setValue(comment_list.items[i].snippet.topLevelComment.snippet.publishedAt);
sheet.getRange(row, col + 4).setValue(comment_list.items[i].snippet.topLevelComment.snippet.textDisplay);
row += 1;
if (typeof comment_list.items[i].replies !== "undefined") {
for (var r = 0; r < comment_list.items[i].replies.comments.length; r++) {
sheet.getRange(row, col).setValue(video.items[0].snippet.title);
sheet.getRange(row, col + 1).setValue(video.items[0].snippet.channelTitle);
sheet.getRange(row, col + 2).setValue(comment_list.items[i].replies.comments[r].snippet.authorDisplayName);
sheet.getRange(row, col + 3).setValue(comment_list.items[i].replies.comments[r].snippet.publishedAt);
sheet.getRange(row, col + 4).setValue(comment_list.items[i].replies.comments[r].snippet.textDisplay);
row += 1;
}
}
}
PageToken = comment_list.nextPageToken
if (typeof PageToken == "undefined") {
break
}
}
}
}
コード内IDを指定の箇所に動画IDを入力。
▼動画URLのこの部分
https://www.youtube.com/watch?v=この部分が動画ID
&t=519s
三角ボタンで実行すると、初回の実行の際には確認が求められます。特に悪いコードではないので、詳細 > シートへ移動 > 許可します。
シートにコメントが抽出されれば成功です。今回は今チャンネル登録数がうなぎ上り中の話題の「エガちゃんねる」の初回動画のコメントを抽出してみました。
GAS と YouTubeAPI で他にも色々できます
非エンジニア層やGAS初心者からすると少しハードルが高そうにも見えますが、技術者がWEB上でサンプルコードを公開してくれていたりするので、マーケターの方は是非覚えておくと業務が捗るかと思います。
参考:
Youtubeチャンネル登録者数を自動監視するスプレッドシートの作り方
https://note.com/nakashio_note/n/n28c1979224a1
Google Apps Script でできることを5つのメソッドと関数から考えた
https://www.kagua.biz/tool/google-tool/marketer-with-googleappsscript.html
「いや、それでもやっぱり難しい」という方。IPRではマーケターやアカウント運用者が必要なYouTubeデータを見やすく、わかりやすく提供しております。
初回3日間はトライアルで全機能が無料でご利用いただけますので、是非お試しして見てください。
>>INFLUENCER POWER RANKING