YouTube API v3 获取用户名 PHP 的最新视频上传

YouTube API v3 get latest video uploads for a username with PHP

我正在尝试获取用户的最新列表 videos/uploads。我正试图了解这个新的 v3 API,但我找不到任何正常工作的 PHP 代码示例,甚至在专门的 YouTube API 网站上也找不到。

我有一个 YouTube 用户名列表,我只想获取他们最新视频的列表,包括视频 ID、标题、缩略图 URL 等。基本上是在 foreach 循环中。

有什么建议吗?

我有以下代码,我需要通过实际的 YouTube 用户名使其工作。

$url = 'https://www.googleapis.com/youtube/v3/channels?part=id&forUsername=ferrariworld&key=ZZZZZZZZ';
$json = json_decode(file_get_contents($url), true);
foreach ($json as $item){
echo $item[0]['id'];
echo $item[0]['title'];
}

使用具有 forUsername 属性的通道端点(请参阅 endpoint 的文档)。

GET https://www.googleapis.com/youtube/v3/channels?part=id&forUsername={USERNAME}&key={YOUR_API_KEY}

它会给你这样的回应:

{
 "kind": "youtube#channelListResponse",
 "etag": "\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/7Q8DJLb6b2hwYAXUQLI3ftt3R8U\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 5
 },
 "items": [
  {

   "kind": "youtube#channel",
   "etag": "\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/pDjr9xPn51KtRM3gbMOq2aHBIbY\"",
   "id": "UCr3LuetcEeidWiuhxaw4B2g"
  }
 ]
}

如果将 JSON 转换为数组,则可以在 items[0]['id'] 处找到该用户的频道 ID。

至于您的编辑,您错误地访问了 JSON 对象。你需要使用这样的东西。

if (array_key_exists('items', $json) && count($json['items']) === 1) {
    $item = $json['items'][0];

    $channelId = $item['id']; // The users channel ID.
}