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

使用pafy和python-vlc播放YouTube视频出现KeyError: 'dislike_count'错误如何解决

错误原因

YouTube在2021年11月正式隐藏了公开的视频点踩数数据,第三方工具无法再获取到dislike_count字段。而你使用的pafy官方版本已经停止维护,内置的后端逻辑仍强制读取该不存在的字段,因此触发KeyError异常。

解决方案

方案1:手动修改pafy后端代码(最快生效)

找到报错信息中指向的backend_youtube_dl.py文件,路径为C:\Users\harsh\AppData\Local\Programs\Python\Python310\lib\site-packages\pafy\backend_youtube_dl.py,将第54行代码:

self._dislikes = self._ydl_info['dislike_count']

修改为:

self._dislikes = self._ydl_info.get('dislike_count', 0)

用get方法读取字段,不存在时默认返回0,即可避免报错。

方案2:安装社区维护的pafy版本

卸载官方停更的原版pafy,安装修复了该问题的社区分支:

pip uninstall pafy -y
pip install pafy-git

方案3:替换为yt-dlp实现相同功能(长期稳定推荐)

pafy已属于过时工具,直接使用yt-dlp获取视频流地址再调用vlc播放的方案兼容性更强,示例代码如下:

# 导入依赖
import vlc
import yt_dlp

# 视频地址(注意原代码中watch后少了=,已修正)
url = "https://www.youtube.com/watch?v=il_t1WVLNxk&list=PLqM7alHXFySGqCvcwfqqMrteqWukz9ZoE"

# yt-dlp配置
ydl_opts = {
    'format': 'best',
    'quiet': True,
    'no_warnings': True
}

# 提取流地址
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    video_info = ydl.extract_info(url, download=False)
    stream_url = video_info['url']

# 播放视频
player = vlc.MediaPlayer(stream_url)
player.play()

使用前需先安装yt-dlp:

pip install yt-dlp

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:15:06