使用YouTube API v3查询频道的品牌设置时,为什么会按频道ID返回查询,但不会按用户名查询? API不会按用户名返回频道列表查询的品牌设置。
如果您按频道ID(例如id=UC8-Th83bH_thdKZDJCrn88g
)查询频道的品牌设置,则会返回一整套品牌设置:
Google API Explorer:https://developers.google.com/youtube/v3/docs/channels/list
请求
GET https://www.googleapis.com/youtube/v3/channels?part=brandingSettings&id=UC8-Th83bH_thdKZDJCrn88g&key={YOUR_API_KEY}
响应
{
// ... snip ...
"items": [
{
"kind": "youtube#channel",
"etag": "\"...\"",
"id": "UC8-Th83bH_thdKZDJCrn88g",
"brandingSettings": {
"channel": {
"title": "The Tonight Show Starring Jimmy Fallon",
"description": "Watch The Tonight Show Starring Jimmy Fallon Weeknights 11:35/10:35c\n\nThe Tonight Show Starring Jimmy Fallon features hilarious highlights from the show including: comedy sketches, music parodies, celebrity interviews, ridiculous games, and, of course, Jimmy's Thank You Notes and hashtags! You'll also find behind the scenes videos and other great web exclusives.",
// all the branding settings are here
}
}
}]
}
另一方面,如果您为用户名(例如forUsername=latenight
)发送频道列表查询,则根本没有品牌设置。不会返回或填充品牌设置。
请求
GET https://www.googleapis.com/youtube/v3/channels?part=brandingSettings&forUsername=latenight&key={YOUR_API_KEY}
响应
{
// ... snip ...
"items": [
{
"kind": "youtube#channel",
"etag": "\"...\"",
"id": "UC8-Th83bH_thdKZDJCrn88g"
}]
}
答案 0 :(得分:8)
我可能错了,但我相信,在API的第3版中,通道ID是获得完整响应的唯一方法,因为“用户名”的概念实际上不再以相同的方式存在。也就是说,新创建的YouTube频道与G +个人资料相关联,并且可以显示名称,但实际上并没有任何与此类频道相关联的YouTube用户名。
由于用户名曾经存在,并且许多频道仍然为他们所知,因此“forUsername”参数为您提供相关的channelID,然后发出关于品牌设置的请求。
现在,已经说过,很明显,API资源管理器页面上的语言并没有反映出这一点,也许就是问题所在;我从这个文档中得出了推论:
https://developers.google.com/youtube/v3/guides/working_with_channel_ids#v3
并从此错误报告中获取:
但是,我总是有可能读错了,你实际上看到了一个新的错误。唯一可以确定的方法是提交文件(或者团队成员可以在这里发表评论)?