如何获取YouTube直播data-token并创建打开Hangouts的专属按钮?
解决方案:创建YouTube所有者专属的Hangouts/直播按钮
嘿,我来帮你拆解这两个问题,结合你提到的Creator Studio直播板块的细节,给你可行的解决方案:
1. 创建打开Hangouts的所有者专属按钮
这个按钮的核心是拿到对应直播活动的data-token值,因为跳转链接是https://hangouts.google.com/hangouts/_/ytl/[data-token]。这里有两种靠谱的获取方式:
方式一:从Creator Studio页面提取(手动/简单脚本)
- 手动操作:打开Creator Studio的「Live Streaming」板块,找到状态为「Live Now」的活动,右键点击「Resume Hangout On Air」按钮,选择「检查」,在DOM元素里找到
data-token属性,复制它的值即可。 - 自动化脚本:如果想批量生成按钮,可以写个浏览器脚本(比如用Tampermonkey),自动提取页面上的token并生成按钮,示例代码如下:
// Tampermonkey脚本示例:提取data-token并生成自定义按钮 const resumeButtons = document.querySelectorAll('[data-token]'); resumeButtons.forEach(btn => { const token = btn.getAttribute('data-token'); const customBtn = document.createElement('button'); customBtn.textContent = '快速打开我的Hangout'; customBtn.style.marginLeft = '10px'; customBtn.addEventListener('click', () => { window.open(`https://hangouts.google.com/hangouts/_/ytl/${token}`, '_blank'); }); btn.parentElement.appendChild(customBtn); });
方式二:通过YouTube Data API获取(可靠自动化方案)
你关心的核心疑问在这里有明确答案:YouTube Data API的liveBroadcasts.list接口会返回对应直播的contentDetails.hangoutId,这个值就是你在Creator Studio按钮里看到的data-token。
具体步骤:
- 调用
liveBroadcasts.list接口,参数设置:part=contentDetails,snippet:指定要获取的直播数据部分broadcastStatus=active:筛选出正在直播的活动mine=true:获取当前授权账号的直播(需要OAuth 2.0授权,因为是私有数据)
- 从返回的响应中,提取每个直播项的
contentDetails.hangoutId,用它构建Hangouts跳转链接。
示例curl请求(需替换成你的API密钥和授权token):
curl "https://www.googleapis.com/youtube/v3/liveBroadcasts?part=contentDetails,snippet&broadcastStatus=active&mine=true&key=你的API密钥"
拿到hangoutId后,直接创建按钮指向https://hangouts.google.com/hangouts/_/ytl/${hangoutId}即可。
2. 创建打开直播视频的所有者专属按钮
这个更简单,直播视频的观看链接可以通过两种方式获取:
方式一:通过API获取
同样调用liveBroadcasts.list接口,提取直播项的id,然后构建观看链接:
- 标准直播链接:
https://www.youtube.com/watch?v=[直播ID] - 直播专属短链接:
https://www.youtube.com/live/[直播ID]
方式二:从Creator Studio提取
在直播活动列表里,每个直播的标题本身就是跳转链接,右键复制链接后,直接创建按钮指向这个地址即可。如果需要自动化,也可以用脚本提取页面上的直播链接。
注意事项
- 只有「Hangout On Air」类型的直播才会有
hangoutId(也就是data-token),如果是YouTube原生直播,没有对应的Hangouts会话,这种方法就不适用。 - 调用YouTube Data API需要先申请API密钥,并完成OAuth 2.0授权,确保账号有YouTube创作者权限。
内容的提问来源于stack exchange,提问作者kicaj
相关产品推荐
相关产品推荐

