discord.ext.commands.errors.CommandInvokeError: Command raised an exception: ClientException: ffmpeg was not found

Библиотека discord.py. Пишу код для проигрыша музыки из YouTube в голосовой канал.

`@client.command(brief="Plays a video, from a youtube URL")
async def play(ctx, url):
    await ctx.message.author.voice.channel.connect(reconnect=True)
    YDL_OPTIONS = {'format': 'bestaudio', 'noplaylist':'True'}
    FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'}
    voice = get(client.voice_clients, guild=ctx.guild)
    print(voice)
    with YoutubeDL(YDL_OPTIONS) as ydl:
        info = ydl.extract_info(url, download=False)
    URL = info['formats'][0]['url']
    voice.play(FFmpegPCMAudio(URL, **FFMPEG_OPTIONS))
    voice.is_playing()
`

Импорт модуля делал

from discord import FFmpegPCMAudio

Выходит ошибка:

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: ClientException: ffmpeg was not found.

Я впервые работаю с чем то подобным, так что могу тупить XD


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

Автор решения: denisnumb

FFMPEG - .exe файл, необходимый для запуска звука. Этот экзешник запускается через Discord API.

Скачать его можно здесь. Также можете скачать архив (Загрузка начнется сразу)

В папке должно быть 3 файла: ffmpeg.exe, ffplay.exe, ffprobe.exe.

Запускам с явным указанием исполняемого файла ffmpeg.exe:

voice.play(discord.FFmpegPCMAudio(executable="путь\\к\\файлу\\ffmpeg.exe", source = URL, **FFMPEG_OPTIONS))
→ Ссылка