所以我正在尝试制作一个简单的不和谐音乐机器人,由于这个问题,它现在已经停止了。问题是,每次我尝试通过 youtube_dl 库播放音乐时,都会弹出提示:“找不到 ffmpeg”。
这是main.py
import discord
import os
import asyncio
import youtube_dl
import ffmpeg
token = 'NzY5NTUzNDcwNjAwMTE4Mjgz.G3Dzce.XYKNAyLfBPg0ug5XPKssV-9EvsFjBlCMeM43ag'
client = discord.Client()
block_words = ['foo', 'bar', 'baz', 'quux', 'http://', 'https://']
voice_clients = {}
yt_dl_opts = {'format': 'bestaudio/best'}
ytdl = youtube_dl.YoutubeDL(yt_dl_opts)
ffmpeg_options = {'options': '-vn'}
@client.event
async def on_ready():
print(f'Bot has logged in as {client.user}')
@client.event
async def on_message(msg):
if msg.author != client.user:
if msg.content.lower().startswith('?hi'):
await msg.channel.send(f'Hi, {msg.author.display_name}')
@client.event
async def on_message(msg):
if msg.author != client.user:
for text in block_words:
if "OTR" not in str(msg.author.roles) and text in str(msg.content.lower()):
await msg.delete()
return
print("Not Deleting...")
@client.event
async def on_message(msg):
if msg.content.startswith('?play'):
try:
url = msg.content.split()[1]
voice_client = await msg.author.voice.channel.connect()
voice_clients[voice_client.guild.id] = voice_client
loop = asyncio.get_event_loop()
data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=False))
song = data['url']
player = discord.FFmpegPCMAudio(song, **ffmpeg_options)
except Exception as err:
print(err)
client.run(token)
FFMPEG是一个音频和视频操作工具,错误
ffmpeg was not found
表示你没有安装FFMPEG。
如果您的操作系统是 Linux,那么
sudo apt install ffmpeg
应该可以解决问题。
如果您的操作系统是Windows,您可以从官方下载页面下载FFMPEG:https://ffmpeg.org/download.html#build-windows。
如果您的操作系统是MacOS,也可以从官方下载页面下载:https://ffmpeg.org/download.html#build-mac。
请注意,如果您从网站下载了可执行文件,则必须手动将其移至脚本目录(或将其添加到 PATH)。
此错误与 YouTube 无关。 YouTube 无法阻止您下载视频,也无法阻止您使用视频处理工具。