如何通过API查询YouTube已归档直播流的聊天记录
归档YouTube直播聊天记录查询方案
liveBroadcastContent字段返回none是接口正常表现:该字段仅用于标记待开播、直播中状态的内容,直播结束转为归档视频后,该字段会固定返回none,和直播是否保留聊天记录无关,也不是调用LiveChatMessages接口的必填前置校验项,之前的操作误区是错把这个字段当成了获取聊天ID的依据。
具体操作步骤
- 获取归档直播对应的有效聊天ID
调用Videos接口时,将请求参数part加入liveStreamingDetails项,传入目标归档直播的视频ID发起请求。返回结果中items[].liveStreamingDetails.activeLiveChatId的值,就是调用聊天接口必需的liveChatId参数,只要主播开启了直播聊天回放,这个字段在直播归档后会长期保留有效。
请求参数示例:Videos.list part: liveStreamingDetails id: 目标归档直播的视频ID key: 你的YouTube Data API密钥如果返回结果中没有
activeLiveChatId字段,说明该归档直播未开启聊天回放,或是主播隐藏、删除了本场直播的聊天记录,这种情况无法通过API获取对应聊天内容。 - 拉取全量归档聊天记录
拿到activeLiveChatId后直接调用LiveChatMessages接口即可,无需校验liveBroadcastContent字段:- 常规使用将
part参数设为id,snippet,authorDetails,就能拿到聊天内容、发送人信息、发送时间等全量基础数据 - 拉取归档聊天不需要像实时直播那样按固定时间间隔轮询,单次请求最多可拉取2000条内容,后续通过返回结果中的
nextPageToken逐页翻页,直到返回结果不再携带nextPageToken,即拉取完所有历史聊天记录
请求参数示例:
LiveChatMessages.list liveChatId: 上一步获取的activeLiveChatId part: id,snippet,authorDetails maxResults: 2000 pageToken: 翻页标识,首次请求无需传入 key: 你的YouTube Data API密钥 - 常规使用将
注意事项
- 拉取公开频道的公开归档直播聊天,使用普通API密钥即可发起请求;如果需要拉取会员专属发言、订阅者专属发言等非公开内容,需要使用对应权限的OAuth2.0授权凭证
- 归档聊天的返回字段中,
snippet.publishedAt为消息发送的原始时间,可直接和归档视频的时间轴对齐匹配
内容的提问来源于stack exchange,提问作者work
相关产品推荐
相关产品推荐

