调用 YT 视频时无法获取视频时长 API
Cannot get video duration while calling YT video 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;
我觉得你的情况,需要包含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)})
参考:
我调用 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;
我觉得你的情况,需要包含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)})