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

Discord.js v14机器人中Lavalink搜索请求始终返回loadType: error

问题场景

运行Discord.js v14机器人搭配Poru和自托管Lavalink节点时,调用播放/搜索命令会出现以下情况:

[Play Command] Search initiated: "travis scott fe!n"
[Play Command] Search result retrieved. Load type: error
[Play Command] Search failed or no result. The full response returned: Response {
tracks: [],
loadType: 'error',
playlistInfo: { type: 'noPlaylist' }
}

所有搜索查询均触发该问题,且Lavalink日志、机器人错误处理器无明显异常。已完成以下验证:

  • Lavalink可通过配置的主机、端口、密码正常访问
  • application.yml中已启用sources.youtube选项
  • Poru节点设置与Lavalink端点完全匹配
  • Java 24与当前Lavalink版本兼容

排查与解决步骤

仅启用sources.youtube可能不足,需确认application.yml中YouTube相关配置细节:

sources:
  youtube: true
youtube:
  enabled: true
  musicEnabled: true # 若需YouTube Music搜索,需开启此项
  # 关键:添加YouTube Data API密钥(无密钥易被YouTube限制搜索)
  apiKey: "你的YouTube Data API密钥"

没有API密钥会导致YouTube搜索请求被限流或拒绝,最终返回error负载。

2. 直接测试Lavalink节点搜索能力

绕过Poru和Discord.js,用curl直接向Lavalink发送搜索请求,定位问题环节:

curl -X POST "http://你的Lavalink主机:端口/loadtracks?identifier=ytsearch:travis scott fe!n" \
-H "Authorization: 你的Lavalink密码" \
-H "Content-Type: application/json"
  • 若请求返回error:问题出在Lavalink节点本身,重点排查网络、YouTube源配置
  • 若请求正常返回tracks:问题出在Poru或机器人代码,继续下一步

3. 检查Poru搜索格式

确保Poru调用搜索时,添加了明确的源前缀,否则可能使用非预期的搜索源:

// 错误示例:仅传入关键词,Poru可能无法识别搜索源
const result = await poru.resolve("travis scott fe!n");
// 正确示例:指定YouTube搜索前缀
const result = await poru.resolve("ytsearch:travis scott fe!n");
// 若需YouTube Music搜索,用ytmsearch前缀
const result = await poru.resolve("ytmsearch:travis scott fe!n");

调整application.yml日志级别为DEBUG,查看搜索请求的详细过程:

logging:
  level:
    lavalink: DEBUG

重启Lavalink后发起搜索,检查日志中是否有YouTube请求的错误状态码(如403、429),这类信息可能隐藏在普通日志级别下。

5. 确认Poru与Lavalink版本兼容

确保使用的Poru版本适配当前Lavalink版本:

  • 新版Poru(v4+)需搭配Lavalink v4及以上
  • 旧版Poru可能无法兼容Lavalink v4的通信协议

若以上步骤仍无法解决,可提供播放命令的核心代码,进一步定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:33:23