我正在使用youtube-node npm查找所有视频列表。文档位于https://www.npmjs.com/package/youtube-node链接。
但我希望我的搜索仅显示特定频道的结果,即如果我搜索 hello ,那么它只会显示 AdeleVEVO YouTube频道的结果。 我找不到合适的文件。我不想使用oauth凭据,我只想使用youtube-node npm。
答案 0 :(得分:1)
在包doc中,您有一个示例搜索,请确保在params参数中包含一个包含所需值的对象,在您的情况下,请参阅youtube api doc,您需要指定channelId。试试这个:
var YouTube = require('youtube-node');
var youTube = new YouTube();
youTube.setKey('AIzaSyB1OOSpTREs85WUMvIgJvLTZKye4BVsoFU');
youTube.search('World War z Trailer', 2, {channelId: <string value of the channelId>}, function(error, result) {
if (error) {
console.log(error);
}
else {
console.log(JSON.stringify(result, null, 2));
}
})
答案 1 :(得分:0)
如果您是频道的所有者,则可以使用YouTube API的 forMine 参数。设置此参数会将搜索范围限制为授权用户的视频。以下是the official documentation的示例。
重要提示:请勿使用youtube-node
模块,特别是因为 - 至少根据我的经验 - addParam()
函数无法可靠地添加参数请求(例如,在我的代码中我调用youtube_node.addParam('safeSearch', 'strict');
,但受限制的视频仍会在结果中返回。)
相反,请直接使用YouTube数据API,如this quickstart example。
所示 // Sample nodejs code for search.list
function searchListMine(auth, requestData) {
var service = google.youtube('v3');
var parameters = removeEmptyParameters(requestData['params']);
parameters['auth'] = auth;
service.search.list(parameters, function(err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return;
}
console.log(response);
});
}
//See full code sample for authorize() function code.
authorize(JSON.parse(content), {'params': {'maxResults': '25',
'forMine': 'true',
'part': 'snippet',
'q': 'fun',
'type': 'video'}}, searchListMine);