You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets运行YouTube抓取脚本报错:范围行数至少为1,求解决

错误原因分析
  • API参数拼写错误:YouTube Data API 要求分页参数为驼峰格式maxResults,原代码中拼写为maxresults,参数不生效导致搜索返回结果为空,results数组长度为0。
  • 视频ID提取逻辑错误:YouTube.Search.list返回的视频唯一标识存储在item.id.videoId字段,原代码错误提取了item.snippet.title(视频标题)作为ID传入后续统计接口,导致YouTube.Videos.list无匹配结果,videostats数组长度为0。
  • 缺少空值校验:当结果数组为空时,直接向getRange传入长度为0的行数参数,不符合Google Sheets API要求,触发对应报错。
修正后可用代码
function YouTubeScraper() {
  var spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
  var activeSheet = spreadSheet.getActiveSheet();
  
  // 修正参数拼写为maxResults,增加type:video过滤非视频结果
  var search = YouTube.Search.list('id, snippet', {q:"coding", maxResults: 50, type: "video"});

  var results = search.items.map((item) => [item.snippet.title]);
  // 修正ID提取逻辑,取视频唯一标识videoId
  var ids = search.items.map((item) => item.id.videoId).join(",");

  var stats = YouTube.Videos.list('statistics', {id: ids});
  var videostats = stats.items.map((item) => [item.statistics.viewCount]);

  // 增加空值判断,仅当数组有内容时写入表格
  if (results.length > 0) {
    activeSheet.getRange(2, 1, results.length, results[0].length).setValues(results);
  }
  if (videostats.length > 0) {
    activeSheet.getRange(2, 3, videostats.length, 1).setValues(videostats);
  }
}
额外注意事项
  • 运行前请确保你已经在Google Apps Script编辑器的「服务」设置中添加了YouTube Data API v3服务
  • 首次运行需要按照提示完成账号授权,允许脚本访问YouTube数据和Google表格权限
  • 若搜索关键词无对应返回结果,空值判断会自动跳过写入操作,不会触发报错

内容的提问来源于stack exchange,提问作者AidenLIVE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:18:05