You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Twitch+Discord Bot中实现主播直播状态检测?

解决Twitch主播直播状态检测问题

问题说明

你当前尝试使用的twitch-api-v5是Twitch旧版API,而代码中实际引入的TwitchAPI是新版twitch.js库,两者方法不兼容导致检测失败。以下是基于你现有代码的修正方案,使用新版Twitch Helix API实现直播状态检测功能。

实现步骤

  1. 新增主播ID获取逻辑(Twitch新版API优先使用ID查询)
  2. 编写直播状态检测函数,支持定时轮询
  3. 记录上次状态,避免重复输出相同提示
  4. 将检测逻辑整合到机器人启动流程中

修改后的关键代码

首先在现有代码中添加以下变量与函数:

// 新增:目标主播信息及状态记录
const targetStreamerName = 'errxino'; // 指定要检测的主播用户名
let targetStreamerId = null;
let wasLive = false; // 记录上次检测的直播状态

// 新增:获取主播ID(新版API需要用ID查询直播)
async function getStreamerId() {
  try {
    const user = await twitch.helix.users.getUserByName(targetStreamerName);
    if (user) {
      targetStreamerId = user.id;
      console.log(`已获取主播 ${targetStreamerName} 的ID:${targetStreamerId}`);
    } else {
      console.error(`未找到主播 ${targetStreamerName}`);
    }
  } catch (error) {
    console.error('获取主播ID失败:', error);
  }
}

// 新增:检测主播直播状态
async function checkStreamStatus() {
  if (!targetStreamerId) return;
  
  try {
    const stream = await twitch.helix.streams.getStreamByUserId(targetStreamerId);
    const isLive = !!stream;
    
    // 仅在状态变化时输出提示
    if (isLive && !wasLive) {
      console.log(`主播 ${targetStreamerName} 已开播!直播标题:${stream.title}`);
      wasLive = true;
      // 可在此添加Discord通知逻辑,比如发送消息到指定频道
    } else if (!isLive && wasLive) {
      console.log(`主播 ${targetStreamerName} 已下播`);
      wasLive = false;
    }
  } catch (error) {
    console.error('检测直播状态失败:', error);
  }
}

然后在Discord的ready事件中启动检测流程:

client.on('ready', () => {
  // 原有的ready事件代码保持不变...
  
  // 新增:启动直播检测流程
  getStreamerId().then(() => {
    // 首次启动立即检测一次
    checkStreamStatus();
    // 每5分钟轮询一次(可根据需求调整间隔,最小建议1分钟避免API限流)
    setInterval(checkStreamStatus, 5 * 60 * 1000);
  });
  
  return;
});

注意事项

  • 权限检查:确保你的Twitch Access Token拥有user:read:broadcast或channel:read:stream权限
  • API限流:Twitch API有请求次数限制,不要设置过短的轮询间隔(官方建议每分钟不超过1次)
  • 错误处理:代码中已添加基础错误捕获,可根据需要扩展日志或重试逻辑

内容的提问来源于stack exchange,提问作者Err Xino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 14:37:56