Twitch 上的大多数视频点播迟早都会消失。要么是因为它们的可用性已过期,要么是因为它们被显式删除。所以如果你没有及时看完点播,内容就消失了。您可以下载视频,但是聊天呢? “Twitch VOD 离线查看器”解决了这个问题。只需下载视频 + 聊天,然后像常规 VOD 一样随时播放,甚至可以离线播放。

¹ 聊天中的表情仅在可以下载图像时才会出现。因此,要查看表情,您仍然需要有互联网连接。
Node.js 运行时
建议:使用 TwitchDownloader 下载所需的视频,请参阅“VOD 下载”选项卡。但任何其他下载 VOD 的工具也可以。
浏览器的<video>标记支持的任何编解码器。
建议:使用TwitchDownloader下载相应的聊天记录,请参阅“聊天记录下载”选项卡。选择“文本”和“相对”。
如果您通过其他方式生成聊天文件,则预期格式为:
[0:00:01] Alice: hi everyone HeyGuys [0:00:01] John: PogChamp [0:00:03] Bob: hey @Alice [0:00:07] Alice: nice to see you, Bob
方括号中的时间戳(小时可以是一位或两位数字)
空间
用户名,后跟冒号
空间
信息
换行符
将下载的视频文件移动到/stream/video.mp4 。 (替换虚拟文件。)
将下载的聊天文件移动到/stream/chat.txt 。 (替换虚拟文件。)
运行node chat.mjs以启动 Node.js HTTP 服务器,该服务器将在浏览器中提供聊天消息。
在您喜欢的浏览器中打开index.html 。
随时暂停。播放位置会被记住并自动恢复。
使用watch.bat恢复(为您执行步骤 4 和 5)。
为了查看频道特定的表情,您需要指定频道 ID。有多种方法可以检索此信息,例如使用 Twitch Channel ID Finder。
每当聊天服务器启动时,这些表情都会自动下载。确保在运行服务器之前调整chat.mjs源文件顶部的CHANNEL_ID变量。
默认情况下提供全局 Twitch 表情。但是,由于需要 OAuth 才能访问 Twitch API,因此必须手动提供专属主播表情。经过身份验证后,发出请求并将端点的响应保存为/emotes/中的<CHANNEL_ID>.json 。确保在运行服务器之前调整chat.mjs源文件顶部的CHANNEL_ID变量。
通过 Twitch 开发者控制台创建应用程序。这将产生一个“Client-ID”和一个“Client-Secret”。
使用您的client_id和client_secret请求访问令牌:
curl -L 'https://id.twitch.tv/oauth2/token'
-H 'Content-Type: application/x-www-form-urlencoded'
-d 'grant_type=client_credentials'
-d 'client_id={{client_id}}'
-d 'client_secret={{client_secret}}'存储响应中的access_token值。
获取频道的ID:
curl -L 'https://api.twitch.tv/helix/users?login={{channel_name}}'
-H 'Authorization: Bearer {{access_token}}'
-H 'Client-Id: {{client_id}}'存储响应中data[0].id ( channel_id ) 的值。
获取频道的表情:
curl -L 'https://api.twitch.tv/helix/chat/emotes?broadcaster_id={{channel_id}}'
-H 'Authorization: Bearer {{access_token}}'
-H 'Client-Id: {{client_id}}'将响应保存到文件中。
如果您不关心聊天中的用户名,请将index.html源文件中的CHAT_USERNAMES变量更改为false 。
CHAT_USERNAMES = true | CHAT_USERNAMES = false |
|---|---|
![]() | ![]() |
直播期间短暂断开连接会导致聊天日志不同步。要解决此类问题,您可以调整index.html源文件中的CHAT_OFFSET变量。刷新网页以应用更改。
如果您在浏览器中使用 adblock 扩展程序(例如 uBlock Origin),聊天服务器通信可能会被阻止。发生这种情况是由于阻止来自localhost的连接。将localhost:8787列入白名单或临时禁用该扩展。