Twitch Api:我怎么知道流已经完成了?

时间:2017-08-27 09:51:55

标签: api twitch

我有一个像IO[Either[RateLimitReached.type, Unit]]这样的流网址。流是在线的,我需要抓住流将完成的时刻。

我研究了twitch api文档,但没有发现任何事件。第一个想法是每隔几分钟发送一次请求,当流上线时 - 处理这个。这有点拖延,但它并不重要。

但是我必须追踪很多溪流,我害怕这种抽搐可以阻止我。

还有其他方法可以抓住流程吗?

2 个答案:

答案 0 :(得分:1)

最好我可以告诉他们没有办法直接收听在线或离线的流,但你仍然可以监控大量的流。不过。

官方Twitch开发者网站上有相当多的Q& A想要这个功能,但是我能找到的所有这些都得到了相同的回答"它目前无法实现。&#34 ;

请注意,您可以使用逗号分隔列表和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相关的操作,每30秒通常有20个命令/消息,或者如果是mod,则为每30个100个。{0}。违反该规定将触发30分钟的锁定。

API端缓存

API结果也是separate rate limit,可以减少最终的负担。鉴于此,在轮询任何更频繁的事情方面没有太大的价值(即,您应该再次等待至少1分钟才能再次提出完全相同的请求,因为您只是得到相同的响应)。

你仍然可以监控~6000流

鉴于能够一次检查100个流,需要每个请求至少等待1分钟才能获得新结果,并且每秒约1个请求的速率限制,理论上可以检查大约6000个状态连续流(假设你没有做出其他请求;每秒100个流*每分钟60个)。

用于监控其他事物的PubSub

目前cached for 1-3 minutes没有任何监控流上线的内容,但您可能想要记住其他轮询类型的操作(它目前处理的事情如新的订阅或捐赠)。

使用嵌入式播放器

最后值得注意的是,当您使用PubSub API时,可以收听在线或离线频道。

答案 1 :(得分:1)

回复可能有点迟,但现在你可以查看Twitch WebHooks

它们允许您订阅特定的流,以便在流上升或下降时让Twitch通知您的回调URL。

这似乎比自己查询更准确,更节省带宽。