api - YouTube API 未从已结束的广播事件中检索 liveChatId
问题描述
我正在尝试检索我从已经结束的直播中获得的所有聊天消息。但是使用下面的请求,它不会检索谷歌文档中提到的任何 snippet.liveChatId:https ://developers.google.com/youtube/v3/live/docs/liveBroadcasts#snippet.liveChatId
如果我尝试即将到来的流媒体,它确实可以正常工作。
如果我无法获得正确的 liveChatId,在这种情况下如何获得聊天消息?
MY_XPTO 替换了一些值
要求:
GET https://www.googleapis.com/youtube/v3/liveBroadcasts?part=snippet&id=MY_ID&key=[YOUR_API_KEY] HTTP/1.1
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json
回复:
{
"kind": "youtube#liveBroadcastListResponse",
"etag": "MY_ETAG",
"pageInfo": {
"totalResults": 0,
"resultsPerPage": 5
},
"items": [
{
"kind": "youtube#liveBroadcast",
"etag": "MY_ETAG,
"id": "MY_ID",
"snippet": {
"publishedAt": "2020-04-03T21:23:06.000Z",
"channelId": "MY_CHANNEL_ID",
"title": "MY_TITLE",
"description": "MY_DESCRIPTION",
"thumbnails": {
"default": {
"url": "MYURL",
"width": 120,
"height": 90
},
"medium": {
"url": "MY_URL",
"width": 320,
"height": 180
},
"high": {
"url": "MY_URL",
"width": 480,
"height": 360
},
"standard": {
"url": "MY_URL",
"width": 640,
"height": 480
},
"maxres": {
"url": "MY_URL",
"width": 1280,
"height": 720
}
},
"scheduledStartTime": "2020-04-07T20:00:00.000Z",
"actualStartTime": "2020-04-07T20:01:00.326Z",
"actualEndTime": "2020-04-07T21:43:52.000Z",
"isDefaultBroadcast": false
}
}
]
}
解决方案
该文件指出:
字符串(返回类型)附加到此视频的当前活动实时聊天的 ID。仅当视频是具有实时聊天功能的当前直播时才填写此字段。一旦广播转换完成,此字段将被删除并且实时聊天关闭。对于持续性广播,实时聊天 ID 将不再与此视频相关联,而是与在持续性页面上显示的新视频相关联。
强调我的。
这意味着 YouTube 会销毁liveChatId
完成后(更准确地说,在流或首映结束后约 400 秒),因此通过合法方式获取它liveChatId
是不可能的。此外,即使您设法获得该 ID,您也无法使用该 ID 来修改之前直播的聊天内容。
推荐阅读
- amazon-web-services - AWS Step Functions 图形导出 API
- javascript - 加载 gif 然后过渡到 reactjs 上的网页
- reactjs - 为什么在部署 React 项目时终端命令 'git add .'、git commit...' 和 'git push...' 列为可选?
- c# - 学习 C#,我有一个选角问题
- python - 如何在 for 循环中制作视频捕获流以传输多个摄像机
- apache - Apache 2.4:是否可以独立于父目录身份验证对子目录进行身份验证?
- c# - AddSigningCredentials 错误指示未定义对象但堆栈跟踪中没有项目代码
- flutter - TextField 键盘上的颤振手柄返回(关闭)按钮
- pic18 - 在 Linux 上使用 pickit4 编程和运行 PIC18
- typescript - 使用 registerAsync 导入模块时,Nest 无法解析依赖项