Discord bot python: discord.errors.ClientException: ffmpeg не найден - PullRequest
4 голосов
/ 21 марта 2019

Я пытаюсь создать диссон-бота, который воспроизводит музыку в голосовом канале. Он подключается к голосовому каналу, но ничего не воспроизводит. Также выдает ошибку в консоли.

Я на Windows и использую перезапись discord.py.

Мой код:

import discord, random, datetime, asyncio, nacl, ffmpeg

TOKEN = 'What token'

client = discord.Client()

@client.event
async def on_message(message):
if message.content.lower() == '$play':
    if message.content.lower() == '$play':
        channel = client.get_channel(547155964328149007)
        vc = await channel.connect()
        vc.play(discord.FFmpegPCMAudio('mp3.mp3'), after=lambda e: print('done', e))
        vc.is_playing()
        vc.pause()
        vc.resume()
        vc.stop()

@client.event
async def on_ready():
    print('Logged in as {0.user}'.format(client))

client.run(TOKEN)

Ошибка:

Traceback (most recent call last):
  File "D:\Python35\lib\site-packages\discord\client.py", line 218, in _run_event
    await coro(*args, **kwargs)
  File "discord_bot.py", line 90, in on_message
    vc.play(discord.FFmpegPCMAudio('mp3.mp3'), after=lambda e: print('done', e))
  File "D:\Python35\lib\site-packages\discord\player.py", line 165, in __init__
    raise ClientException(executable + ' was not found.') from None
discord.errors.ClientException: ffmpeg was not found.

У людей, похоже, есть проблема с аналогичной ошибкой ffmpeg/avconv was not found in your PATH environment variable, но их решение - это скачать ffmpeg с веб-сайта и поместить его в свой путь, но это не работает для меня.

Более того, я могу найти исправления только для моей проблемы в JavaScript, пока я пишу бота в Python 3.

Вот несколько ссылок из моего исследования:

Вам необходимо добавить FFmpeg к вашему пути

Исправление discord.js (JavaScript) для той же ошибки

Исправлено для discord.py, НЕ для discord.py REWRITE

1 Ответ

1 голос
/ 28 марта 2019

Вы можете указать исключительную возможность FFmpeg непосредственно с аргументом Исполняемый файл :

   vc = await channel.connect()
   vc.play(discord.FFmpegPCMAudio(executable="C:/path/ffmpeg.exe", source="mp3.mp3"))
...