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

Discord音乐机器人执行play命令触发KeyError: 'source'错误求助

Discord音乐机器人Play命令KeyError: 'source'修复

问题情况

原本正常运行的Discord音乐机器人,最近执行play命令时终端报错discord.ext.commands.errors.CommandInvokeError: Command raised an exception: KeyError: 'source',报错堆栈明确指向music_cog.py的play_music函数中读取'source'键的代码行。

错误根源

查看你的search_yt函数返回值,发现键名存在手误:

return {'sourcffmpege': info['formats'][0]['url'], 'title': info['title']}

这里的键名被错误写成了sourcffmpege,而后续play_music和play_next函数里都是通过'source'这个键来获取音频链接,自然会触发找不到键的KeyError。

修复步骤

只需把search_yt函数里的错误键名修正为'source'即可:

def search_yt(self, item):
    with YoutubeDL(self.YDL_OPTIONS) as ydl:
        try:
            info = ydl.extract_info("ytsearch:%s" % item, download=False)['entries'][0]
        except Exception:
            return False
    return {'source': info['formats'][0]['url'], 'title': info['title']}

额外提示

另外注意,youtube-dl已经停止维护,后续可能会出现更多兼容性问题,建议替换为yt-dlp(使用方式和youtube-dl基本一致,只需修改导入语句为from yt_dlp import YoutubeDL,并安装对应包)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:15:44