Youtube JS API cuePlaylist Filtering

Youtube JS API cuePlaylist Filtering

本文关键字:Filtering cuePlaylist API JS Youtube      更新时间:2023-09-26

我想为Youtube JS API的搜索查询添加排序,但我不能让它工作。

这是一个使用浏览器的标准搜索

https://www.youtube.com/results?search_query=test

这是脚本的一部分,执行相同的搜索,但使用播放器

player.cuePlaylist({listType:'search', list:'test'});

测试过了,效果很好。但是,当我想添加排序到搜索查询。它不工作。

例如,搜索带有额外过滤器"Today"的测试。IT不工作(播放列表是空数组)。

浏览器搜索

https://www.youtube.com/results?sp=CAESAggC&q=test
然而

player.cuePlaylist({listType:'search', list:'sp=CAESAggC&q=test'});

不产生结果。文档说明:

If the listType property value is search, then the list property specifies the search query.

我试着替换&与,A m p;(没有空格)但仍然没有骰子

我在文档中也找不到任何与过滤相关的内容。

基本上问题是我如何将过滤应用到cuePlaylist方法。

编辑:

尝试:

 player.cuePlaylist({listType:'search', list:'test', sp:'CAESAggC'});

sp什么也没做

我不确定cuePlaylist是否支持过滤,但是,我能建议的最接近的是使用搜索功能

type: 'GET',
data: {
key: 'API_KEY',
q: query,
part: 'snippet'
}
})

然后添加一个订单或您可以添加的任何过滤器,您可以检查搜索文档以获取更多信息。

下面是它的一个片段:

// search video
$("#search").click(function() {
var query = $("#query").attr("value");
if ( !query ) {
return;
}
$.ajax({
url: 'https://www.googleapis.com/youtube/v3/search',
dataType: 'json',
type: 'GET',
data: {
key: 'AIzaSyBda8mhaE8x10RiF0uzvBMPUszbUIQsy0g',
q: query,
part: 'snippet'
}
}).done(function(data) {
player.stopVideo();
player.clearVideo();
$('#video').fadeIn();
var videos = [];
console.log(data);
$.each(data.items, function() {
console.log(this.id.videoId)
videos.push(this.id.videoId);
});
// sort by favorite
videos = videos.sort(function(a, b) {
return b.favoriteCount - a.favoriteCount;
});
player.cuePlaylist(videos);
});
});
});

下面是代码片段的源代码,我使用教程做了一些调整,因为github使用的是api v2。

希望这对你有帮助!