YouTube api v3 php:从所有YouTube频道视频中随机获取视频

时间:2017-06-19 15:09:27

标签: php youtube youtube-data-api

我希望通过YouTube API V3从频道ID中随机检索4个视频。 因此,当我刷新页面时,我想要的是检索到的视频发生变化。 我创建的脚本是PHP语言,一个Wordpress站点内的自定义插件。

现在我使用这个api调用,但这总是检索相同的视频:

$api_call = "https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId=".$channelId."&maxResults=4&key=".$YouTube_API_key."";

有一种方法可以通过YouTube API随机获取视频吗?

如果有人认为我必须使用像rand这样的php功能,但我必须获取所有视频,所以如果我有200个视频且maxResults只能达到最大值50,那么我无法做到这一点办法。

2 个答案:

答案 0 :(得分:0)

我建议采取三管齐下的方法:

  • 构建数据库以存储指向您的每个视频的链接。
  • 运行夜间cron作业,以使数据库保持最新状态。
  • 当您需要随机视频时,请从数据库中选择视频并选择随机行。

答案 1 :(得分:0)

如果有可用的下一页数据,您获得的每个结果都应该包含nextPageToken。例如:

{
"kind": "youtube#searchListResponse",
 "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/3McBp6TfA-1T7NXO6x9Lr5WXpKI\"",
 "nextPageToken": "CBkQAA",
 "regionCode": "GB",
     "pageInfo": {
     "totalResults": 1000000,
  "resultsPerPage": 25
}

您可以使用pageToken构建一个额外的请求 如果超过1页,将为您提供下一页的结果。 e.g。

 $nextApiCall = "https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId=<>&pageToken=CBkQAA";

您可以继续拨打API电话,直到您达到&#34; totalResults&#34;数字(或者不再有下一页令牌)。

获得所有结果后,您可以array_rand从阵列中获取随机索引。