首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Twitch-API ruby gem更新视图计数慢,如何获取实时流数据?

Twitch-API ruby gem更新视图计数慢,如何获取实时流数据?
EN

Stack Overflow用户
提问于 2021-04-12 21:15:18
回答 1查看 70关注 0票数 1

我正在尝试制作一个应用程序,跟踪特定Twitch流随时间的观看人数,最终在网页上实时显示它们。然而,我使用的ruby gem,twitch-api,似乎大约每5分钟才更新一次它的视图计数。Twitch的main website每10-20秒更新一次此信息。

为什么API / gem刷新如此之慢,或者,有没有一种方法可以直接从网站访问更新数据?

下面是我使用gem进行测试的Ruby代码:

代码语言:javascript
复制
previous_view_count = 0

while true do
    @twitch_client = Twitch::Client.new(
        client_id: @client_id,
        client_secret: @client_secret)
        username = "ludwig"

        twitch_id = @twitch_client.get_users({login: username}).data.first.id
        stream_info = @twitch_client.get_streams({user_id: twitch_id}).data.first
        if stream_info.viewer_count != previous_view_count then
            puts("Data for Twitch streamer: " + username)
            puts("Title: " + stream_info.title)
            puts("View count: " + stream_info.viewer_count.to_s)
            previous_view_count = stream_info.viewer_count
        end
    sleep(60)
    puts("-----")
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-13 11:12:19

似乎Twitch API的观众计数只以非常慢的时间间隔更新。最好的办法是考虑与他们的pubsub端点建立WebSocket连接。虽然观众计数并不显式地显示在他们的documentation上,但在使用浏览器的开发人员工具观看流时跟踪websocket连接,似乎可以订阅video-playback-by-id主题并每30秒接收一次观看计数。

下面是一个监听负载示例:

代码语言:javascript
复制
{"type":"LISTEN","nonce":"zeMjhYYhJdwfVEjLGvO84eBSAHsIYk","data":{"topics":["video-playback-by-id.121059319"],"auth_token":"some_auth_token"}}

以下是一个示例消息响应有效负载:

代码语言:javascript
复制
{"type":"MESSAGE","data":{"topic":"video-playback-by-id.121059319","message":"{\"type\":\"viewcount\",\"server_time\":1618283400.433843,\"viewers\":28735}"}}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67059076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档