Не работает музыкальный бот дискорд

Вот код бота

import discord
from discord.ext import commands
import pafy
import logging
import youtube_dl

logging.basicConfig(filename='bot.log', level=logging.INFO)

TOKEN = 'токен'
PREFIX = '-'

intents = discord.Intents.all()
intents.members = True

bot = commands.Bot(command_prefix=PREFIX, intents=intents)

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user}')

@bot.event
async def on_message(message):
    if message.content.lower() == 'привет':
        await message.channel.send('Привет!')
    await bot.process_commands(message)

@bot.command()
async def play(ctx, url: str):
    if not ctx.author.voice:
        return await ctx.send("Вы не подключены к голосовому каналу!")
    voice_channel = ctx.author.voice.channel
    if ctx.voice_client is None:
        vc = await voice_channel.connect()
    else:
        await ctx.voice_client.move_to(voice_channel)
        vc = ctx.voice_client

    video = pafy.new(url)
    best = video.getbestaudio()
    source = await discord.FFmpegOpusAudio.from_probe(best.url, method='fallback')

    vc.play(source)

@bot.command()
async def leave(ctx):
    if ctx.voice_client:
        await ctx.guild.voice_client.disconnect()
    else:
        await ctx.send("Бот не подключен к голосовому каналу.")

logging.info('Bot Online')

bot.run(TOKEN)

Ошибка

Traceback (most recent call last):
  File "/home/runner/Discord-bot2/.pythonlibs/lib/python3.10/site-packages/discord/ext/commands/core.py", line 235, in wrapped
    ret = await coro(*args, **kwargs)
  File "/home/runner/Discord-bot2/main.py", line 38, in play
    video = pafy.new(url)
  File "/home/runner/Discord-bot2/.pythonlibs/lib/python3.10/site-packages/pafy/pafy.py", line 124, in new
    return Pafy(url, basic, gdata, size, callback, ydl_opts=ydl_opts)
  File "/home/runner/Discord-bot2/.pythonlibs/lib/python3.10/site-packages/pafy/backend_youtube_dl.py", line 31, in __init__
    super(YtdlPafy, self).__init__(*args, **kwargs)
  File "/home/runner/Discord-bot2/.pythonlibs/lib/python3.10/site-packages/pafy/backend_shared.py", line 97, in __init__
    self._fetch_basic()
  File "/home/runner/Discord-bot2/.pythonlibs/lib/python3.10/site-packages/pafy/backend_youtube_dl.py", line 50, in _fetch_basic
    self._rating = self._ydl_info['average_rating']
KeyError: 'average_rating'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/Discord-bot2/.pythonlibs/lib/python3.10/site-packages/discord/ext/commands/bot.py", line 1350, in invoke
    await ctx.command.invoke(ctx)
  File "/home/runner/Discord-bot2/.pythonlibs/lib/python3.10/site-packages/discord/ext/commands/core.py", line 1029, in invoke
    await injected(*ctx.args, **ctx.kwargs)  # type: ignore
  File "/home/runner/Discord-bot2/.pythonlibs/lib/python3.10/site-packages/discord/ext/commands/core.py", line 244, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: KeyError: 'average_rating'

Ответы (1 шт):

Автор решения: Deniska SosiSka

Библиотека pafy устарела, она не обновлялась уже 4 с половиной года, из-за чего при её работе запрашиваются данные которые youtube уже не предоставляет или предоставляет в ином виде.

Используйте для свои целей библиотеки, поддержка которых на данный момент актуальна, например - youtube-dl, pytube, yt-dlp.

→ Ссылка