如何通过Youtube Data API获取已结束存档直播的聊天消息?
Youtube已结束直播聊天消息获取方案
Youtube Data API 提供的
LiveChatMessages.list接口仅支持拉取直播进行中的聊天内容,直播结束归档后调用该接口会固定返回liveChatEnded403错误,目前官方没有提供公开的API支持拉取已归档直播的历史聊天数据。
可行实现方案
自有频道直播:官方后台导出
如果你要获取的是自己频道的直播聊天记录,可以直接从Youtube Studio后台导出官方原生的CSV格式聊天文件,操作路径为:进入Youtube Studio → 左侧栏选择「内容」→ 切换到「直播」分类 → 找到对应直播视频点击「详情」→ 下滑到「互动」选项卡即可找到导出聊天记录的按钮。该方案完全合规无风控,数据完整性最高。
非自有频道/需要自动化获取:非公开接口抓取
已归档直播的聊天数据会用于页面回放展示,Youtube网页端本身会通过非公开接口拉取历史聊天,你可以通过模拟网页请求的方式获取数据,两种实现路径可选:
- 自行实现抓取逻辑:
从直播回放的视频页面初始HTML源码中提取ytInitialData对象,找到直播回放聊天对应的节点拿到continuation参数,之后带正确的请求头POST请求/youtubei/v1/live_chat/get_live_chat_replay接口,即可分页拉取全量历史聊天消息。注意控制请求频率,避免触发IP风控限制。 - 基于开源工具实现:
可以直接使用开源的聊天回放下载工具,输入对应直播回放的视频ID即可自动拉取数据,支持导出为JSON、CSV、TXT等多种格式,无需自行编写参数解析、分页请求的逻辑。
- 自行实现抓取逻辑:
预采集方案(针对还未开始的直播)
如果你是要提前准备后续获取自己关注的直播的历史聊天,可以在直播进行过程中定时调用官方的
LiveChatMessages.list接口实时采集存储,直播结束后就可以直接使用本地存储的聊天数据,该方案依赖官方公开API,稳定性最高。
注意事项
- 非公开接口没有官方稳定性承诺,Youtube可能随时调整接口参数、返回结构甚至限制访问,若用于生产环境需要提前做好降级预案。
- 抓取数据需要遵守Youtube的服务条款,不得用于商业用途,不要发起高频请求影响平台服务正常运行。
内容的提问来源于stack exchange,提问作者user16966723
相关产品推荐
相关产品推荐

