我通过PHP客户端使用Ajax获取视频列表(类似于Google提供的基本代码(https://developers.google.com/youtube/v3/code_samples/php#search_by_keyword)。
一切正常,但现在,我想将查询中的一些视频排除到API:因为我可以检索(例如)50个结果,我需要获得50个结果,不包括某些视频ID 我已经有了。
目前,我检查客户端(使用JS),但正如您所料,我得到50( - 我用JS排除的视频数量)结果...... < / p>
我对API的PHP调用:
$searchResponse = $youtube->search->listSearch('id,snippet', array(
'q' => $_GET['query'],
'maxResults' => $_GET['maxNb'],
));
是否有一个参数,我可以将一系列视频ID排除在外?
答案 0 :(得分:0)
您想要排除某些视频,但您仍希望得到相同数量的结果,据我所知,Youtube API中没有排除某些视频的参数,但您可以使用PHP将其排除。
例如
// unwanted videos
$excludedVideos = ['h2Nq0qv0K8M','_jKylhJtPmI','55GkIZOCeM8','_A3I9RDR6GA'];
现在您应该获取视频+已排除视频的数量
$searchResponse = $youtube->search->listSearch('id,snippet', array(
'q' => $_GET['q'],
// get your results + the number of unwanted videos
'maxResults' => $_GET['maxResults'] + count($excludedVideos),
));
从结果中删除不需要的视频
// remove unwanted videos
foreach($searchResponse['items'] as $key => $item){
if(in_array($item->id->videoId, $excludedVideos)){
unset($searchResponse[$key]);
}
}
现在是时候显示结果了,您无法保证结果中会显示$excludedVideos
的所有数量,因此您需要将结果限制为{{1} }
$_GET['maxResults']
这只是一个例子,可以根据您的要求更改代码。