php - 从播放列表/分组视频中获取 YouTube 视频计数
问题描述
我正在从我自己的频道中获取少数视频的视频观看次数。这是我刚刚向您展示的代码 2 作为示例:
<?php
define("YOUTUBE_DATA_API_KEY", 'KEY_IS_IN_HERE');
function youtube_video_statistics($video_id) {
$json = file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=statistics&id=" . $video_id . "&key=". YOUTUBE_DATA_API_KEY );
$jsonData = json_decode($json);
$views = $jsonData->items[0]->statistics->viewCount;
return $views;
}
echo '<strong>Track Title 1 - </strong>';
$num = youtube_video_statistics('VIDEO_ID_HERE');
echo $formattedNum1;
$formattedNum1 = number_format($num);
echo $formattedNum1;
echo '<strong>Track Title 2</strong>';
$num = youtube_video_statistics('VIDEO_ID_HERE');
echo $formattedNum2;
$formattedNum2 = number_format($num);
echo $formattedNum2;
?>
$formattedNum 只是用撇号格式化数字,因为我的很多视频都有成千上万的观看次数。
这工作正常,但你可以看到它非常手动。曲目标题和视频 ID 是硬编码的,这并不理想。
我想要做的是在一批代码中提取具有观看次数的标题,一旦我添加新视频等,不需要我用新 ID 继续更新它。需要注意的是我有超过 90 个视频,但它实际上只有 12 个我需要密切监视统计数据,但我想如果这样做的唯一选择是提取我频道上每个视频的标题和观看次数,那仍然比我目前的位置好,但我即使在文档中也看不到任何方法。
那么 API 有什么方法可以将我想要监视的视频分组在一起,以便我可以查询该特定组,例如在它们上使用相同的标签或将它们添加到播放列表,然后查询该标签或播放列表?
在回复 Benjamin Loison 的回答时,我得到的代码只是:
{
"kind": "youtube#videoListResponse",
"etag": "YIUPVpqNjppyCWOZfL-19bLb7uk",
"items": [],
"pageInfo": {
"totalResults": 0,
"resultsPerPage": 0
}
}
解决方案
似乎您正在使用 Youtube Data API v3 端点视频:列表,这是要走的路。要请求一批视频而不是单个视频,您可以id
用逗号将它们收集在字段中,这是一个示例:
https ://www.googleapis.com/youtube/v3/videos?part=statistics&id=dQw4w9WgXcQ,o -YBDTqX_ZU&key=YOUTUBE_DATA_API_KEY
似乎我们不必调整maxResults
字段(默认值:5)。但是,如果您有超过 50 个视频要继续,您可以使用逗号加入最多 50 个视频,仅按请求继续请求。
您还可以通过使用PlaylistItems: list收集视频 ID 来监控播放列表的视频。
如果您需要,您可以使用jambrose共享的以下方法列出(仅)您的公共视频(如果您使用 API 密钥):
它包括使用频道:列出并part=contentDetails
检索uploads
播放列表,您可以从上面检索视频。
推荐阅读
- excel - 用于 excel 输出的 Streamwriter
- python - 在 django 项目中创建新用户无法正常工作
- java - Java Scanner 在读取行时是否可以包含“\n”?
- java - android - java获取刚刚单击的项目的ID,而没有为该项目设置“onClick”
- postgresql - PostgreSQL - 关于 GENERATED ALWAYS AS IDENTITY 的冲突更新
- c# - 在存储库模式中使用 ApplicationDbContext
- rust - HashMap 持有 Vec 缓冲区和切片到缓冲区
- rust - 可以吗?运算符是否为 Option 和 Result 以外的类型定义?
- javascript - 创建自定义提示框
- javascript - 如何使用 JavaScript 删除填充?