Youtube API - 从搜索中排除视频(查询)

时间:2015-01-06 09:06:41

标签: php youtube-api

我通过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排除在外?

1 个答案:

答案 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']

这只是一个例子,可以根据您的要求更改代码。