Twitch-API ruby gem 更新播放量慢,如何获取实时流数据?
Twitch-API ruby gem updates view counts slowly, how can I get real-time stream data?
我正在尝试制作一个应用程序来跟踪一段时间内特定 Twitch 流的观看者数量,最终将它们实时显示在网页上。但是,我正在使用的 ruby gem twitch-api, only seems to update its view count approximately every 5 minutes. Twitch's main website 每 10-20 秒持续更新此信息。
为什么 API / gem 刷新这么慢,或者,有什么方法可以直接从网站访问更新数据?
这是我的测试 Ruby 代码使用 gem:
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
似乎 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}"}}
我正在尝试制作一个应用程序来跟踪一段时间内特定 Twitch 流的观看者数量,最终将它们实时显示在网页上。但是,我正在使用的 ruby gem twitch-api, only seems to update its view count approximately every 5 minutes. Twitch's main website 每 10-20 秒持续更新此信息。
为什么 API / gem 刷新这么慢,或者,有什么方法可以直接从网站访问更新数据?
这是我的测试 Ruby 代码使用 gem:
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
似乎 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}"}}