Youtube 数据 API - /channels 端点未返回较小的用户

Youtube Data API - /channels Endpoint not Returning Smaller Users

我正在为音乐家创建一个网络应用程序。我想使用 Youtube 数据 API 让用户将他们的 Youtube 频道连接到他们在我的应用程序中的个人资料。我通过向类似于 https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&forUsername=PewDiePie&key=[YOUR_API_KEY] 的 URL 发出请求来准备好一切并开始工作。这很好用 returns 这个 JSON:

{ "kind": "youtube#channelListResponse", "etag": "\"p4VTdlkQv3HQeTEaXgvLePAydmU/bj_rirVFbrVoTIOa6lCGdaXaG5M\"", "pageInfo": { "totalResults": 1, "resultsPerPage": 5 }, "items": [ { "kind": "youtube#channel", "etag": "\"p4VTdlkQv3HQeTEaXgvLePAydmU/Blp06js4r7j93y1EfKve84oXWpo\"", "id": "UC-lHJZR3Gqxm24_Vd_AJ5Yw", "snippet": { "title": "PewDiePie", "description": "I make videos.", "publishedAt": "2010-04-29T10:54:00.000Z", "thumbnails": { "default": { "url": "https://yt3.ggpht.com/a/AGF-l79FVckie4j9WT-4cEW6iu3gPd4GivQf_XNSWg=s88-c-k-c0xffffffff-no-rj-mo", "width": 88, "height": 88 }, "medium": { "url": "https://yt3.ggpht.com/a/AGF-l79FVckie4j9WT-4cEW6iu3gPd4GivQf_XNSWg=s240-c-k-c0xffffffff-no-rj-mo", "width": 240, "height": 240 }, "high": { "url": "https://yt3.ggpht.com/a/AGF-l79FVckie4j9WT-4cEW6iu3gPd4GivQf_XNSWg=s800-c-k-c0xffffffff-no-rj-mo", "width": 800, "height": 800 } }, "localized": { "title": "PewDiePie", "description": "I make videos." }, "country": "US" }, "statistics": { "viewCount": "24334379402", "commentCount": "0", "subscriberCount": "102000000", "hiddenSubscriberCount": false, "videoCount": "4054" } } ] }

我的应用程序的大部分用户都是较小的音乐家,可能只有不到 10k 的 YouTube 订阅者。以我妹妹为例,这是一个 link 到她的 youtube 频道:https://www.youtube.com/channel/UCe4Eogv2uGaKUe4x3VNrwsg.

每当尝试通过 https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&forUsername=Audrey_Chopin&key=[YOUR_API_KEY] 使用 API 搜索她的 Youtube 频道时(以及变体,例如将 Audrey_Chopin 替换为 Audrey%20ChopinAudrey+Chopin)没有结果:{ "kind": "youtube#channelListResponse", "etag": "\"p4VTdlkQv3HQeTEaXgvLePAydmU/zJL80hJ0IwMo5wddECFapC8I6Q4\"", "pageInfo": { "totalResults": 0, "resultsPerPage": 5 }, "items": [] }.

较小的用户不应该从这个端点返回吗?如果是这样,我有什么方法可以让用户搜索他们的个人资料,而无需强制用户执行 OAuth 流程,即登录他们的 Youtube 帐户?

似乎使用 /search 端点更适合较小的频道,尽管此端点中可用的信息较少(我无法获得订阅者数量和视频数量,它们包含在 "statistics" /channel 端点的一部分)。

所以更新

https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&forUsername=Audrey_Chopin&key=[YOUR_API_KEY]

https://www.googleapis.com/youtube/v3/search?part=snippet&channelType=any&maxResults=50&order=relevance&q=Audrey%20Chopin&type=channel&key=[YOUR_API_KEY]

虽然没有使用 /channel 端点时那样多的数据,但产生了更小的通道。

仍然好奇,如果有人知道,为什么 /channel 端点不 return 更小的通道。

因为您知道用户的频道 ID,只需向 URL 上的频道端点发出查询:

https://www.googleapis.com/youtube/v3/channels?part=...&id=$CHANNEL_ID&key=$APP_KEY,

并且您将获得附加到引用频道的所有 public(即非私人)信息——无需任何进一步的身份验证。当然,您可以根据需要指定 part 参数。

另一方面,请注意查询Search.List endpoint for snippet part is much more costly than querying the Channels.List endpoint for both snippet and statistics parts: 100 vs. 5个配额点。