backend_youtube_dl.py", line 54, in _fetch_basic self._dislikes = self._ydl_info['dislike_count'] KeyError: 'dislike_count'
backend_youtube_dl.py", line 54, in _fetch_basic self._dislikes = self._ydl_info['dislike_count'] KeyError: 'dislike_count'
我有以下用于下载 youtube 视频的代码。我会自动检测它是播放列表还是单个视频。然而突然间它给出了上述错误。可能是什么问题?
import pafy
from log import *
import tkinter.filedialog
import pytube
url = input("Enter url :")
directory = tkinter.filedialog.askdirectory()
def single_url(url,directory):
print("==================================================================================================================")
video = pafy.new(url)
print(url)
print(video.title)
#logs(video.title,url)
file_object = open(directory+"/links.log", "a")
file_object.write(video.title +' '+ url + '\n')
file_object.close()
print('Rating :',video.rating,', Duration :',video.duration,', Likes :',video.likes, ', Dislikes : ', video.dislikes)
#print(video.description)
best = video.getbest()
print(best.resolution, best.extension)
best.download(quiet=False, filepath=directory+'/'+video.title+"." + best.extension)
print("saved at :", directory, " directory")
print("==================================================================================================================")
def playlist_func(url,directory):
try:
playlist = pytube.Playlist(url)
file_object = open(directory+"/links.log", "a")
file_object.write('Playlist Url :'+ url + '\n')
file_object.close()
print('There are {0}'.format(len(playlist.video_urls)))
for url in playlist.video_urls:
single_url(url,directory)
except:
single_url(url,directory)
playlist_func(url,directory)
您的问题与您的代码无关。
Youtube 不再有不喜欢计数,他们只是 removed it。
你只需要等待 pafy 包相应更新,或者在本地修补包并自行删除该部分。
我遇到过类似的问题,但这是由于 YouTube 最近更新了“不喜欢”按钮。所以代码没有错。并且如果出现任何关于 youtube-dl 的操作系统错误,那么您需要在提示
中安装它
#conda install -c forge youtube-dl
#pip3 安装 youtube-dl
手动修复:
你可以在文件 backend_youtube_dl.py
第 54 行:
self._dislikes = 0 # self._ydl_info['dislike_count']
虽然确实如此,但 dislike_count 已被删除
pafy 克隆的 repo 已经调整了更改,而不是等待我怀疑很快就会发生的新版本。
我一直在使用这个,没有问题 fn。
安装使用:
pip install git+https://github.com/Cupcakus/pafy
您根本不需要做任何更改,只需在安装这个之前删除(pip uninstall)带有不喜欢计数问题的初始 pafy,避免冲突。
我们可以通过以下方式手动修复它
C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\site-packages\pafy\backend_youtube_dl.py
并在编辑器中打开 python 文件并注释掉
self._likes = self._ydl_info['like_count']
self._dislikes = self._ydl_info['dislike_count']
第53行和第54行这两行并保存文件。
PS:
python 文件的位置可能因您的系统而异
我有以下用于下载 youtube 视频的代码。我会自动检测它是播放列表还是单个视频。然而突然间它给出了上述错误。可能是什么问题?
import pafy
from log import *
import tkinter.filedialog
import pytube
url = input("Enter url :")
directory = tkinter.filedialog.askdirectory()
def single_url(url,directory):
print("==================================================================================================================")
video = pafy.new(url)
print(url)
print(video.title)
#logs(video.title,url)
file_object = open(directory+"/links.log", "a")
file_object.write(video.title +' '+ url + '\n')
file_object.close()
print('Rating :',video.rating,', Duration :',video.duration,', Likes :',video.likes, ', Dislikes : ', video.dislikes)
#print(video.description)
best = video.getbest()
print(best.resolution, best.extension)
best.download(quiet=False, filepath=directory+'/'+video.title+"." + best.extension)
print("saved at :", directory, " directory")
print("==================================================================================================================")
def playlist_func(url,directory):
try:
playlist = pytube.Playlist(url)
file_object = open(directory+"/links.log", "a")
file_object.write('Playlist Url :'+ url + '\n')
file_object.close()
print('There are {0}'.format(len(playlist.video_urls)))
for url in playlist.video_urls:
single_url(url,directory)
except:
single_url(url,directory)
playlist_func(url,directory)
您的问题与您的代码无关。
Youtube 不再有不喜欢计数,他们只是 removed it。
你只需要等待 pafy 包相应更新,或者在本地修补包并自行删除该部分。
我遇到过类似的问题,但这是由于 YouTube 最近更新了“不喜欢”按钮。所以代码没有错。并且如果出现任何关于 youtube-dl 的操作系统错误,那么您需要在提示
中安装它#conda install -c forge youtube-dl #pip3 安装 youtube-dl
手动修复:
你可以在文件 backend_youtube_dl.py
第 54 行:
self._dislikes = 0 # self._ydl_info['dislike_count']
虽然确实如此,但 dislike_count 已被删除 pafy 克隆的 repo 已经调整了更改,而不是等待我怀疑很快就会发生的新版本。 我一直在使用这个,没有问题 fn。 安装使用:
pip install git+https://github.com/Cupcakus/pafy
您根本不需要做任何更改,只需在安装这个之前删除(pip uninstall)带有不喜欢计数问题的初始 pafy,避免冲突。
我们可以通过以下方式手动修复它
C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\site-packages\pafy\backend_youtube_dl.py
并在编辑器中打开 python 文件并注释掉
self._likes = self._ydl_info['like_count']
self._dislikes = self._ydl_info['dislike_count']
第53行和第54行这两行并保存文件。
PS: python 文件的位置可能因您的系统而异