google-apps-script - 调用YOUTUBE视频API时无法获得视频时长

标签 google-apps-script youtube youtube-api youtube-data-api

我调用YT搜索API,然后获取每个视频结果的完整数据(视频API)。
但是,我无法获得每个视频的时长。
我收到一个未定义的错误:

  var videoResultsFullData = YouTube.Videos.list('id,snippet', { id : searchResults.map(item => item.id.videoId)})
    var popularChannelIds = YouTube.Channels.list('id,snippet, statistics', {
         id: resultsParentChannelIds
    }).items.filter(ch => ch.statistics.subscriberCount > sh.getRange("D24").getValue() ).map(channel => channel.id);
   
    // .filter(video => popularChannelIds.includes(item.id.channelId));

    var videoPopularResultsFullData = 
    videoResultsFullData.getItems()
    .filter(video => popularChannelIds.includes(video.snippet.channelId));
// };


var range = 3;
for (var i in videoPopularResultsFullData) {
    var item = videoPopularResultsFullData[i];
    var temp = item.getContentDetails().duration;
enter image description here
enter image description here

最佳答案

我认为在您的情况下,需要在contentDetails中包含part。那么下面的修改呢?
从:

var videoResultsFullData = YouTube.Videos.list('id,snippet', { id : searchResults.map(item => item.id.videoId)})
至:
var videoResultsFullData = YouTube.Videos.list('id,snippet,contentDetails', { id : searchResults.map(item => item.id.videoId)})
或者,您也可以将part用作数组,如下所示。
var videoResultsFullData = YouTube.Videos.list(["id","snippet","contentDetails"], { id : searchResults.map(item => item.id.videoId)})
引用:
  • Videos: list
  • 关于google-apps-script - 调用YOUTUBE视频API时无法获得视频时长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64761450/

    相关文章:

    javascript - 过滤应用程序脚本中是否存在多个子字符串

    javascript - 无法在模式对话框中嵌入 Google 图表服务

    google-apps-script - 我如何 "Use Logger API to add logs to your project"? (谷歌脚本)

    javascript - Youtube API V3 - 使用 playlistItems.list 请求时播放列表中缺少项目

    javascript - 关于重定向的 Google 脚本无法正常工作并出现特殊错误,发生了什么

    google-chrome - Chrome浏览器返回多个Youtube API iframe时加载错误

    image - YouTube视频大图的网址

    android - Android:平滑隐藏软键

    php - PHP YouTube API视频标题解析

    json - YouTube API : How to get videos from channel X with tag Y?