首页 > 解决方案 > Youtube 数据 API - /channels 端点不返回较小的用户

问题描述

我正在为音乐家创建一个网络应用程序。我想使用 Youtube Data API 让用户在我的应用程序中将他们的 Youtube 频道连接到他们的个人资料。我通过向类似于https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&forUsername=PewDiePie&key=[YOUR_API_KEY]. 这很好用并返回这个 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 订阅者。以我姐姐为例,这是她 youtube 频道的链接:https: //www.youtube.com/channel/UCe4Eogv2uGaKUe4x3VNrwsg

每当尝试使用 API 搜索她的 Youtube 频道时https://www.googleapis.com/youtube/v3/channels?part=snippet,statistics&forUsername=Audrey_Chopin&key=[YOUR_API_KEY](以及替换Audrey_ChopinAudrey%20Chopin或的变体Audrey+Chopin)都不会产生任何结果:{ "kind": "youtube#channelListResponse", "etag": "\"p4VTdlkQv3HQeTEaXgvLePAydmU/zJL80hJ0IwMo5wddECFapC8I6Q4\"", "pageInfo": { "totalResults": 0, "resultsPerPage": 5 }, "items": [] }.

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

标签: google-apiyoutubeyoutube-apiyoutube-data-api

解决方案


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

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

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

另一方面,请注意,查询Search.List端点的snippetpart比查询Channels.List端点的part成本要高得多:100 对 5 个配额点。snippetstatistics


推荐阅读