当您只有频道 ID 时,我需要帮助了解如何确定 Youtube username/channel 名称
I need help understanding determining Youtube username/channel name when you only have the channel ID
因此,根据 https://developers.google.com/youtube/v3/guides/working_with_channel_ids,每个帐户都包含一个唯一的频道 ID,该 ID 独立于以前的用户名。这一切都很好,很漂亮,因为频道 ID 是 识别唯一帐户的方式。当然,我完全赞成。我感到困惑的是,当我获得一个唯一的频道 ID 时,我如何使用它来获取频道首选的“用户名”,无论是在线别名还是“真实”名称?
具体来说,我正在使用此 API (https://developers.google.com/youtube/v3/live/docs/liveChatMessages/list?hl=en) 定期观看新消息放入我的广播。它有效,并提供如下所示的数据:
{
kind: 'youtube#liveChatMessage',
etag: 'zPV9PwBFYCiNZH_4PpspXF0ZrSs',
id: 'LCC.CikqJwoYVUNMcnBlSWl1aVF1WHphcldCZVFuc3dBEgtOaHI4d2NSUHIyQRI5ChpDTC0ybDQzcC12TUNGVVFCZlFvZDVBQUhiQRIbQ09YRjdfM2stdk1DRmZRYmZRb2QzT0FCUUEw',
snippet: {
type: 'textMessageEvent',
liveChatId: 'KicKGFVDTHJwZUlpdWlRdVh6YXJXQmVRbnN3QRILTmhyOHdjUlByMkE',
authorChannelId: 'UCLrpeIiuiQuXzarWBeQnswA',
publishedAt: '2021-11-02T23:22:37.070185+00:00',
hasDisplayContent: true,
displayMessage: 'testing once again ',
textMessageDetails: [Object]
}
}
如您所见,这里有一个 authorChannelId
,这很棒...除了作为一个人我无法合理地阅读它之外。
我的用例是我特别想要一个定期更新的本地应用程序,它可以使用格式类似的控制台消息更新我:
Bob Frank: foo bar :D
尽管我在技术上可以拥有类似以下内容,但它并不能帮助我知道我在直播中期待我的 5 个朋友中的哪一个:
UCLrpeIiuiQuXzarWBeQnswA: foo bar :D
啊是的...你又是谁?你能再提醒我一次吗UCLrpeIiuiQuXzarWBeQnswA
?
我也尝试了以下 API (https://developers.google.com/youtube/v3/docs/channels/list),但它似乎也没有提供正确的信息。使用 part: "snippet"
和 id: "UCLrpeIiuiQuXzarWBeQnswA"
我得到以下输出:
{
config: {
url: 'https://youtube.googleapis.com/youtube/v3/channels?part=snippet&id=UCLrpeIiuiQuXzarWBeQnswA',
method: 'GET',
userAgentDirectives: [ [Object] ],
paramsSerializer: [Function (anonymous)],
headers: {
'x-goog-api-client': 'gdcl/5.0.5 gl-node/17.0.1 auth/7.10.1',
'Accept-Encoding': 'gzip',
'User-Agent': 'google-api-nodejs-client/5.0.5 (gzip)',
Authorization: 'Bearer',
Accept: 'application/json'
},
params: { part: 'snippet', id: 'UCLrpeIiuiQuXzarWBeQnswA' },
validateStatus: [Function (anonymous)],
retry: true,
responseType: 'json'
},
data: {
kind: 'youtube#channelListResponse',
etag: 'wjX6CX2hdUPFAc4y6OCUDDjXT6o',
pageInfo: { totalResults: 1, resultsPerPage: 5 },
items: [ [Object] ]
},
headers: {
'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"',
'cache-control': 'private',
connection: 'close',
'content-encoding': 'gzip',
'content-type': 'application/json; charset=UTF-8',
date: 'Wed, 03 Nov 2021 01:30:32 GMT',
server: 'scaffolding on HTTPServer2',
'transfer-encoding': 'chunked',
vary: 'Origin, X-Origin, Referer',
'x-content-type-options': 'nosniff',
'x-frame-options': 'SAMEORIGIN',
'x-xss-protection': '0'
},
status: 200,
statusText: 'OK',
request: {
responseURL: 'https://youtube.googleapis.com/youtube/v3/channels?part=snippet&id=UCLrpeIiuiQuXzarWBeQnswA'
}
}
因此,我们将不胜感激任何帮助!谢谢!
编辑:删除了访问令牌。哎呀
Edit2:答案在问题中,但得到了下面接受的答案的帮助。谢谢本杰明!真正的答案是进一步研究上面的最终响应...... response.data.items[0].snippet.title。在这种情况下,nodejs console.log() 没有展开每个项目,我完全错过了这个细节。我的错,我是 node 和 javascript 的新手。您也可以使用本杰明指出的 API 密钥,但此时我已经可以访问 Oauth2,因此我将继续使用相同的身份验证。
确实Channels: list是要走的路。
只需在 URL https://youtube.googleapis.com/youtube/v3/channels?part=snippet&id=A_CHANNEL_ID&key=YOUR_API_KEY 处访问和解析 JSON。它的“片段”中有一个“标题”字段,这似乎正是您想要的。
当然,您必须将 A_CHANNEL_ID
更改为 authorChannelId,例如 UCLrpeIiuiQuXzarWBeQnswA
。
因此,根据 https://developers.google.com/youtube/v3/guides/working_with_channel_ids,每个帐户都包含一个唯一的频道 ID,该 ID 独立于以前的用户名。这一切都很好,很漂亮,因为频道 ID 是 识别唯一帐户的方式。当然,我完全赞成。我感到困惑的是,当我获得一个唯一的频道 ID 时,我如何使用它来获取频道首选的“用户名”,无论是在线别名还是“真实”名称?
具体来说,我正在使用此 API (https://developers.google.com/youtube/v3/live/docs/liveChatMessages/list?hl=en) 定期观看新消息放入我的广播。它有效,并提供如下所示的数据:
{
kind: 'youtube#liveChatMessage',
etag: 'zPV9PwBFYCiNZH_4PpspXF0ZrSs',
id: 'LCC.CikqJwoYVUNMcnBlSWl1aVF1WHphcldCZVFuc3dBEgtOaHI4d2NSUHIyQRI5ChpDTC0ybDQzcC12TUNGVVFCZlFvZDVBQUhiQRIbQ09YRjdfM2stdk1DRmZRYmZRb2QzT0FCUUEw',
snippet: {
type: 'textMessageEvent',
liveChatId: 'KicKGFVDTHJwZUlpdWlRdVh6YXJXQmVRbnN3QRILTmhyOHdjUlByMkE',
authorChannelId: 'UCLrpeIiuiQuXzarWBeQnswA',
publishedAt: '2021-11-02T23:22:37.070185+00:00',
hasDisplayContent: true,
displayMessage: 'testing once again ',
textMessageDetails: [Object]
}
}
如您所见,这里有一个 authorChannelId
,这很棒...除了作为一个人我无法合理地阅读它之外。
我的用例是我特别想要一个定期更新的本地应用程序,它可以使用格式类似的控制台消息更新我:
Bob Frank: foo bar :D
尽管我在技术上可以拥有类似以下内容,但它并不能帮助我知道我在直播中期待我的 5 个朋友中的哪一个:
UCLrpeIiuiQuXzarWBeQnswA: foo bar :D
啊是的...你又是谁?你能再提醒我一次吗UCLrpeIiuiQuXzarWBeQnswA
?
我也尝试了以下 API (https://developers.google.com/youtube/v3/docs/channels/list),但它似乎也没有提供正确的信息。使用 part: "snippet"
和 id: "UCLrpeIiuiQuXzarWBeQnswA"
我得到以下输出:
{
config: {
url: 'https://youtube.googleapis.com/youtube/v3/channels?part=snippet&id=UCLrpeIiuiQuXzarWBeQnswA',
method: 'GET',
userAgentDirectives: [ [Object] ],
paramsSerializer: [Function (anonymous)],
headers: {
'x-goog-api-client': 'gdcl/5.0.5 gl-node/17.0.1 auth/7.10.1',
'Accept-Encoding': 'gzip',
'User-Agent': 'google-api-nodejs-client/5.0.5 (gzip)',
Authorization: 'Bearer',
Accept: 'application/json'
},
params: { part: 'snippet', id: 'UCLrpeIiuiQuXzarWBeQnswA' },
validateStatus: [Function (anonymous)],
retry: true,
responseType: 'json'
},
data: {
kind: 'youtube#channelListResponse',
etag: 'wjX6CX2hdUPFAc4y6OCUDDjXT6o',
pageInfo: { totalResults: 1, resultsPerPage: 5 },
items: [ [Object] ]
},
headers: {
'alt-svc': 'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"',
'cache-control': 'private',
connection: 'close',
'content-encoding': 'gzip',
'content-type': 'application/json; charset=UTF-8',
date: 'Wed, 03 Nov 2021 01:30:32 GMT',
server: 'scaffolding on HTTPServer2',
'transfer-encoding': 'chunked',
vary: 'Origin, X-Origin, Referer',
'x-content-type-options': 'nosniff',
'x-frame-options': 'SAMEORIGIN',
'x-xss-protection': '0'
},
status: 200,
statusText: 'OK',
request: {
responseURL: 'https://youtube.googleapis.com/youtube/v3/channels?part=snippet&id=UCLrpeIiuiQuXzarWBeQnswA'
}
}
因此,我们将不胜感激任何帮助!谢谢!
编辑:删除了访问令牌。哎呀
Edit2:答案在问题中,但得到了下面接受的答案的帮助。谢谢本杰明!真正的答案是进一步研究上面的最终响应...... response.data.items[0].snippet.title。在这种情况下,nodejs console.log() 没有展开每个项目,我完全错过了这个细节。我的错,我是 node 和 javascript 的新手。您也可以使用本杰明指出的 API 密钥,但此时我已经可以访问 Oauth2,因此我将继续使用相同的身份验证。
确实Channels: list是要走的路。
只需在 URL https://youtube.googleapis.com/youtube/v3/channels?part=snippet&id=A_CHANNEL_ID&key=YOUR_API_KEY 处访问和解析 JSON。它的“片段”中有一个“标题”字段,这似乎正是您想要的。
当然,您必须将 A_CHANNEL_ID
更改为 authorChannelId,例如 UCLrpeIiuiQuXzarWBeQnswA
。