YouTube取消公开踩数导致Discord音乐机器人报KeyError: 'dislike_count'求解决方案
问题根源
你使用的已停止维护的DiscordUtils库,其Music模块硬编码要求读取YouTube接口返回的dislike_count字段,而YouTube官方早已取消公开点踩数统计,接口不再返回该字段,因此触发KeyError报错。
现有代码修复方案
直接修改本地DiscordUtils库源码即可快速解决问题,步骤如下:
- 打开报错路径下的库文件:
C:\Users\rcesa\AppData\Local\Programs\Python\Python39\lib\site-packages\DiscordUtils\Music.py - 定位到第92行的代码:
dislikes = data["dislike_count"] - 将该行替换为
dislikes = data.get("dislike_count", 0),使用字典的get方法容错,字段不存在时默认返回0值,不影响正常播放逻辑 - 保存文件后重启机器人即可恢复正常使用
替代库推荐
如果不想修改第三方库源码,或后续遇到其他兼容问题,可更换为维护更活跃的音乐播放方案:
wavelink:目前Discord Python生态中维护最活跃的音乐播放库,基于Lavalink实现,支持YouTube、Spotify、SoundCloud等多平台音源,接口更新及时,不会出现此类因平台接口变更导致的长期未修复问题yt-dlp+ discord.py原生语音模块:如果仅需要YouTube音源,可直接用yt-dlp(youtube-dl的活跃维护分支)拉取音频直链,搭配discord.py的语音播放能力自行实现简单队列逻辑,定制化程度更高,不受第三方封装库停更影响
内容的提问来源于stack exchange,提问作者SenShiza
相关产品推荐
相关产品推荐

