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 包相应更新,或者在本地修补包并自行删除该部分。

Keep in mind there are at least 5 different pull 请求打开尝试修复它。

我遇到过类似的问题,但这是由于 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 文件的位置可能因您的系统而异