据我所知,无法直接监听在线或离线流,但尽管如此,您仍然可以监控大量流。
官方 Twitch 开发者网站上有相当多的问答需要此功能,但我能找到的所有问答都以相同的“目前不可能”回答。
请记住,您可以使用逗号分隔列表和limit 查询参数同时检查多个通道的状态(每个请求最多 100 个):Get-Live-Streams
https://api.twitch.tv/kraken/streams/?get-live-streams?channel=Channel1,Channel2&limit=100
这将返回一个包含在线流数组的对象(streams 属性)。
速率限制
Twitch 关于速率限制的官方立场是建议不超过"about 1 request per second"。也就是说,他们不会限制您立即连续发出多个请求,而是限制您的累积数量。
请注意,与 IRC 相关的操作有一个 separate rate limit,通常每 30 秒 20 条命令/消息,如果是 mod,则每 30 秒 100 条。违反将触发 30 分钟的锁定。
API 端缓存
API 结果也是cached for 1-3 minutes,这减少了它们的负载。鉴于此,轮询比这更频繁的事情没有太大价值(即,您应该至少等待 1 分钟,然后再次发出完全相同的请求,因为您只会得到相同的响应)。
您仍然可以监控 ~6000 个流
鉴于一次检查 100 个流的能力,每个请求需要等待至少 1 分钟才能获得新结果,以及大约每秒 1 个请求的速率限制,理论上可以检查大约 6000 个状态连续流(假设您没有发出其他请求;每秒 100 个流 * 每分钟 60 个)。
用于监控其他事物的 PubSub
目前PubSub API 没有任何东西可用于监控流的上线,但您可能希望记住它以用于其他轮询类型的操作(它目前处理新订阅或捐赠等事情)。
使用嵌入式播放器
最后一点值得注意的是,当您使用Twitch Embedded Player 时,您可以收听在线或离线频道。