首页 > 解决方案 > Discord bot python:discord.errors.ClientException:找不到ffmpeg

问题描述

我正在尝试制作一个在语音频道中播放音乐的不和谐机器人。它连接到语音通道,但不播放任何内容。它还在控制台中给出错误。

我在 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 并将其放入他们的 PATH 中,但这对我不起作用。

此外,我只能在 JavaScript 中找到解决我的问题的方法,而我正在用 Python 3 编写机器人。

以下是我研究的一些链接:

您需要将 FFmpeg 添加到您的路径

针对相同错误的 discord.js (JavaScript) 修复

discord.py 的修复,而不是 discord.py 的修复

标签: pythonpython-3.xffmpegdiscord.pydiscord.py-rewrite

解决方案


您可以使用参数executable直接指定 FFmpeg 可执行文件:

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

推荐阅读