【问题标题】:Google Apps Script - Transferring Data From YouTube APIGoogle Apps 脚本 - 从 YouTube API 传输数据
【发布时间】:2019-08-08 00:33:02
【问题描述】:

提前致歉 - 我是使用 Google Apps 脚本的初学者。

我有一个关于如何将数据从 YouTube API 调用传输到 Google 表格的问题。我已经设置了下面的代码,它从频道 ID 和循环中搜索视频(以超出 50 个结果的限制)。

我想将脚本中定义的四个变量提取到 Google 表格中 - 发布时间、标题、ID 和 URL,即频道中所有 7,000 多个视频的这四个元素的信息。所有这些信息似乎都使用 Logger.log 行成功记录。

我现在想将记录的信息传输到 Google 表格。我已经尝试了不同的方法来做到这一点,但我只成功地拉回了最后一个视频的细节。

谁能建议我需要添加到“var ActiveSheet”行之后的最后一部分以使这项工作成功的代码?

正如我所说,如果这是一个愚蠢的问题,我们深表歉意。

function myFunction() {

var nextPageToken = '';

while (nextPageToken != null) {
  var sr = YouTube.Search.list("snippet", {
    channelId:'UC14UlmYlSNiQCBe9Eookf_A', 
    maxResults: 50,
    pageToken: nextPageToken
  });

    for (var j = 0; j < sr.items.length; j++) {
    var srItem = sr.items[j];
    var PublishedAt = srItem.snippet.publishedAt;
    var Title = srItem.snippet.title;
    var ID = srItem.id.videoId;
    var URL = srItem.snippet.thumbnails.high.url;
      Logger.log('[%s] Title: %s Id: %s Url: %s',
               srItem.snippet.publishedAt,
               srItem.snippet.title,
               srItem.id.videoId,
               srItem.snippet.thumbnails.high.url);
  }
  nextPageToken = sr.nextPageToken;
}

var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeSheet = ss.getActiveSheet();

}

任何帮助将不胜感激。

谢谢,

KC

【问题讨论】:

    标签: javascript google-apps-script google-sheets google-api youtube-api


    【解决方案1】:

    您需要捕获每一行并将其保存在一个数组中。然后,您可以将行插入工作表中。下面的代码就是这样做的。

    function myFunction() {
      var nextPageToken = '';
    
      // to hold data rows
      var results = [];
      // add header row
      results.push(['Published At', 'Title', 'ID', 'URL']);
    
      while (nextPageToken != null) {
        var sr = YouTube.Search.list('snippet', {
          channelId: 'UC14UlmYlSNiQCBe9Eookf_A',
          maxResults: 50,
          pageToken: nextPageToken
        });
    
        for (var j = 0; j < sr.items.length; j++) {
          var srItem = sr.items[j];
          var PublishedAt = srItem.snippet.publishedAt;
          var Title = srItem.snippet.title;
          var ID = srItem.id.videoId;
          var URL = srItem.snippet.thumbnails.high.url;
          // add every row
          results.push([PublishedAt, Title, ID, URL]);
        }
        nextPageToken = sr.nextPageToken;
      }
    
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getActiveSheet();
      // get range and set values
      // row to start, col to start, how many rows, how many cols
      sheet.getRange(1, 1, results.length, 4).setValues(results);
    }
    

    【讨论】:

      猜你喜欢
      • 2013-10-24
      • 2021-12-14
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      相关资源
      最近更新 更多