Discord music bot

Я создаю бота Discord, который проигрывает музыку. Он успешно присоединяется к каналу, но затем возвращает ошибку при поиске музыки. Это мой код:

@client.command(pass_context=True)
async def play(ctx, url):
    server = ctx.message.server
    await client.join_voice_channel(ctx.message.author.voice.voice_channel)
    voice_client = client.voice_client_in(server)
    player = await voice_client.create_ytdl_player(url)
    players[server.id] = player
    player.start()

Что возвращает эту ошибку:

[youtube] vRquPxdHNGE: Downloading webpage
[youtube] vRquPxdHNGE: Downloading video info webpage
Ignoring exception in command play
Traceback (most recent call last):
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\voice_client.py", line 431, in create_ffmpeg_player
    p = subprocess.Popen(args, stdin=stdin, stdout=subprocess.PIPE, 
stderr=stderr)
  File 
"C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\subprocess.py", 
line 709, in __init__
    restore_signals, start_new_session)
  File 
"C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\subprocess.py", 
line 997, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

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

Traceback (most recent call last):
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\ext\commands\core.py", line 50, in wrapped
    ret = yield from coro(*args, **kwargs)
  File "F:\.Computer Science\Python\bot.py", line 49, in play
    player = await voice_client.create_ytdl_player(url)
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\voice_client.py", line 541, in create_ytdl_player
    player = self.create_ffmpeg_player(download_url, **kwargs)
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\voice_client.py", line 434, in create_ffmpeg_player
    raise ClientException('ffmpeg/avconv was not found in your PATH 
environment variable') from e
discord.errors.ClientException: ffmpeg/avconv was not found in your PATH 
environment variable

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

Traceback (most recent call last):
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\ext\commands\bot.py", line 846, in process_commands
    yield from command.invoke(ctx)
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\ext\commands\core.py", line 374, in invoke
    yield from injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\sam\AppData\Local\Programs\Python\Python36\lib\site- 
packages\discord\ext\commands\core.py", line 54, in wrapped
    raise CommandInvokeError(e) from e
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: 
ClientException: ffmpeg/avconv was not found in your PATH environment 
variable

Кто-нибудь знает, почему это происходит или как я могу это исправить? Я использую Python 3.6.7 и последний модуль Discord.

У вас установлен ffmpeg или avconv? Процитируем документы create_ytdl_player: «Чтобы это работало, в переменной окружения пути должен быть исполняемый файл ffmpeg или avconv».

Patrick Haugh 31.10.2018 14:20

Я установил его и добавил в путь (я могу ввести ffmpeg в cmd из любого места, и он даст мне номер версии и т. д.)

incarnadine 31.10.2018 16:46
1
2
2 301
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Возможно, ваше решение может быть здесь, и если вы используете virtualenv, проверьте, что ваш PATH тоже существует.

Другие вопросы по теме