使用twitch auth-token在streamlink中进行身份验证



在过去的几周里,Twitch开始发送streamlink无法阻止的广告。streamlink提出的解决方案之一是在通过浏览器成功登录后获得auth-令牌进行身份验证。这样,如果你有Twitch Turbo,或者你是某个频道的订阅用户,你就不会看到广告了。

在这篇文章中,他们展示了如何使用命令——http-header获得auth令牌。或——twitch-api-header

但是,我正在使用streamlink python包来构建GUI,我不知道如何使用auth-token通过那里进行身份验证。

这是我已经尝试过的:

class MyClass:
def __init__(self):
auth = 'abcdefghijklmnopqrstuvwxyz0123'
self.session = streamlink.Streamlink(options={'--twitch-api-header': f"Authorization=OAuth {auth}"})

但是Streamlink会话类不能处理这个键。

有人能帮我吗?谢谢你。

这是一个很老的问题,但应该有帮助。

session = streamlink.Streamlink()
session.set_option('http-headers', {'Authorization': 'OAuth XXX'})
# didn't see the --twitch-api-header in .set_option, http-headers was ok
stream = session.streams('https://www.twitch.tv/forsen')

From Streamlink Ref: https://streamlink.github.io/cli/plugins/twitch.html

为了从Twitch的网站获得个人OAuth令牌,该令牌可以识别您的帐户,打开Twitch。登录成功后,按"F12"或"CTRL+SHIFT+I"打开开发人员工具。然后导航到"控制台"。选项卡或相当于web浏览器的选项卡,并执行以下JavaScript代码片段,它读取auth-tokencookie的值(如果存在):

document.cookie.split("; ").find(item=>item.startsWith("auth-token="))?.split("=")[1]

复制结果字符串,由30个字母数字字符组成,不含任何引号。

在请求流访问令牌时,最终的Authorization头将识别您的帐户,然后可以通过Streamlink的--http-header--twitch-api-headerCLI参数设置。前者将设置任何HTTP请求的头部由Streamlink,甚至HLS流,而后者将只做在Twitch API请求,这是什么应该做的时候进行身份验证,这是为什么这个CLI参数被添加的原因。

Authorization头的值必须是OAuth YOUR_TOKEN的格式。注意参数值中的空格字符,在命令行shell中需要加引号:

streamlink "--twitch-api-header=Authorization=OAuth abcdefghijklmnopqrstuvwxyz0123" twitch.tv/CHANNEL best

整个参数可以选择性地添加到Streamlink的(Twitch插件特定)配置文件,这不需要引号:

twitch-api-header=Authorization=OAuth abcdefghijklmnopqrstuvwxyz0123

相关内容

最新更新