Google+ Hangouts API停用后,如何通过YouTube Live Streaming API获取Hangout相关信息?
使用YouTube Live Streaming API替代Hangouts API的解决方案
嘿,我来帮你梳理下怎么用YouTube Live Streaming API解决这两个问题——毕竟Google+ Hangouts API停了之后,Hangouts on Air确实是和YouTube Live深度绑定了:
1. 确认你的Hangout是否正在直播(同步到YouTube)
要验证你发起的Hangout是否同步到YouTube并处于直播状态,你可以通过liveBroadcasts.list接口来查询:
- 请求参数设置:调用时指定
part=snippet,status(需要获取基本信息和状态),加上mine=true(只返回你自己的直播),以及broadcastType=event(筛选出Hangouts on Air类型的直播,这类直播属于事件类广播)。 - 判断直播状态:在返回的
liveBroadcast对象里,查看status.lifeCycleStatus字段:- 如果值为
live,说明当前Hangout正在直播; upcoming表示直播尚未开始;completed表示直播已经结束。
- 如果值为
- 额外佐证:还可以查看
status.streamStatus字段,若值为active,则说明直播流正在正常传输,进一步确认直播状态。
示例请求(简化版):
GET https://www.googleapis.com/youtube/v3/liveBroadcasts?part=snippet,status&mine=true&broadcastType=event&key=[YOUR_API_KEY]
(注:实际调用需要通过OAuth 2.0授权,key参数仅用于公开数据,访问个人直播需携带授权令牌)
2. 获取Hangout on Air的加入链接
其实YouTube Live API直接提供了获取Hangout加入链接的方式,不需要自己推导:
- 直接从API获取:在
liveBroadcast资源的snippet对象里,有一个hangoutLink字段,这个字段返回的就是Hangouts on Air的直接加入链接,其他人点击就能进入你的Hangout。 - 创建直播时获取:如果你是通过
liveBroadcasts.insert接口创建Hangouts on Air,在请求体里指定broadcastType=event,创建成功后返回的响应里就会包含hangoutLink字段,你可以直接保存这个链接。 - 特殊情况推导:如果因为某些原因
hangoutLink未返回(这种情况很少见),你可以用直播的id字段构建链接,格式为:https://hangouts.google.com/hangouts/_/[your-domain]/[broadcast-id],其中broadcast-id就是liveBroadcast对象的id值,个人账号的your-domain可以用默认的google.com。
注意事项
- 调用这些接口需要先完成OAuth 2.0授权,权限范围至少需要
https://www.googleapis.com/auth/youtube.readonly(仅查看),如果需要创建直播则需要https://www.googleapis.com/auth/youtube。 - 确保你的账号已经开启YouTube直播功能,否则无法创建或查询Hangouts on Air相关的直播资源。
内容的提问来源于stack exchange,提问作者Will White
相关产品推荐
相关产品推荐

