【问题标题】:Twitch-API ruby gem updates view counts slowly, how can I get real-time stream data?Twitch-API ruby​​ gem 更新视图计数缓慢,如何获取实时流数据?
【发布时间】:2021-04-12 13:15:18
【问题描述】:

我正在尝试制作一个应用程序来跟踪特定 Twitch 流的观看者数量,最终将它们实时显示在网页上。但是,我正在使用的 ruby​​ gem twitch-api 似乎仅大约每 5 分钟更新一次其查看次数。 Twitch 的 main website 每 10-20 秒持续更新此信息。

为什么 API / gem 刷新这么慢,或者,有没有办法可以直接从网站访问更新数据?

这是我使用 gem 的测试 Ruby 代码:

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

【问题讨论】:

    标签: html ruby-on-rails rubygems twitch


    【解决方案1】:

    似乎 Twitch API 的查看器计数仅以非常慢的间隔更新。您最好的选择是研究与他们的 pubsub 端点建立 WebSocket 连接。尽管观看者计数未明确显示在他们的documentation 上,但在使用浏览器的开发人员工具观看流时跟踪 websocket 连接,您似乎可以订阅 video-playback-by-id 主题并每 30 秒接收一次观看次数。

    这是一个 LISTEN 负载示例:

    {"type":"LISTEN","nonce":"zeMjhYYhJdwfVEjLGvO84eBSAHsIYk","data":{"topics":["video-playback-by-id.121059319"],"auth_token":"some_auth_token"}}
    

    这是一个示例 MESSAGE 响应负载:

    {"type":"MESSAGE","data":{"topic":"video-playback-by-id.121059319","message":"{\"type\":\"viewcount\",\"server_time\":1618283400.433843,\"viewers\":28735}"}}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-11
      • 2023-02-16
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      • 2019-07-20
      相关资源
      最近更新 更多