Google apps script ReferenceError:未定义YouTube/在电子表格中插入YouTube注释
我正在尝试将YouTube评论插入电子表格 我想获得评论的YouTube视频是由我创建的,在同一个谷歌账户上。 YouTube数据API v3已启用。运行该函数时,出现错误:Google apps script ReferenceError:未定义YouTube/在电子表格中插入YouTube注释,google-apps-script,google-sheets,youtube-data-api,Google Apps Script,Google Sheets,Youtube Data Api,我正在尝试将YouTube评论插入电子表格 我想获得评论的YouTube视频是由我创建的,在同一个谷歌账户上。 YouTube数据API v3已启用。运行该函数时,出现错误: 引用错误:未定义YouTube(第9行,文件“code”) 但对我来说似乎很好。我不知道9号线出了什么问题 以下是完整的代码: function getComments() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var video_list = ['YouTu
引用错误:未定义YouTube(第9行,文件“code”)
但对我来说似乎很好。我不知道9号线出了什么问题
以下是完整的代码:
function getComments() {
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("name");
sh.getRange(1, 2).setValue("date");
sh.getRange(1, 3).setValue("comment");
while (true) {
var comment_list = YouTube.CommentThreads.list('id, replies, snippet', {
videoId: video_id,
pageToken: PageToken,
maxResults: 500,
});
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
}
}
}
函数getComments(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var video_list=['YouTube_ID'];
var PageToken='';
对于(变量i=0;i
}
错误消息如下所示:
修改点:
- 从您的脚本和错误消息中,我认为您的
YouTube错误消息未定义的原因是由于在高级谷歌服务中禁用了YouTube数据API v3。关于这一点,您能否确认YouTube Data API v3是否已在Advanced Google services上再次启用?如果尚未启用,请启用它并再次测试脚本
- 当我看到你的脚本时,我认为脚本的处理成本会很高。因为循环中使用了
。为了降低脚本的处理成本,我建议使用以下流程setValue
- 检索所有值并将其放入数组
- 将数组放入电子表格
- “视频:列表”方法的
似乎是50maxResults
函数getComments(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var video_list=['YouTube_ID'];
var PageToken='';
var值=[];//已添加
对于(变量i=0;i
注:
- 在此脚本中,如果存在相同的图纸名称,则会发生错误。所以请小心这个
-
- 我认为这些链接可能有用
- 从您的脚本和错误消息中,我认为您的
YouTube错误消息未定义的原因是由于在高级谷歌服务中禁用了YouTube数据API v3。关于这一点,您能否确认YouTube Data API v3是否已在Advanced Google services上再次启用?如果尚未启用,请启用它并再次测试脚本
- 当我看到你的脚本时,我认为脚本的处理成本会很高。因为循环中使用了
。为了降低脚本的处理成本,我建议使用以下流程setValue
- 检索所有值并将其放入数组
- 将数组放入电子表格
- “视频:列表”方法的
似乎是50maxResults
function getComments() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var video_list = ['YouTube_ID'];
var PageToken = '';
var values = []; // Added
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);
values.push(["name", "date", "comment"]); // Added
while (true) {
var comment_list = YouTube.CommentThreads.list('id, replies, snippet', {videoId: video_id, pageToken: PageToken, maxResults: 50});
for (var j = 0; j < comment_list.items.length; j++) {
var snippet = comment_list.items[j].snippet.topLevelComment.snippet;
values.push([snippet.authorDisplayName, snippet.publishedAt, snippet.textDisplay]); // Added
var replies = comment_list.items[j].replies;
if (replies) {
for (var k = 0; k < replies.comments.length; k++) {
var comments = replies.comments[k].snippet;
values.push([comments.authorDisplayName, comments.publishedAt, comments.textDisplay]); // Added
}
}
}
PageToken = comment_list.nextPageToken;
if (typeof PageToken == "undefined") {
break
}
}
sh.getRange(1, 1, values.length, values[0].length).setValues(values); // Added
}
}