不和谐机器人在哪里可以找到 ffmpeg buildpack heroku

Posted

技术标签:

【中文标题】不和谐机器人在哪里可以找到 ffmpeg buildpack heroku【英文标题】:Where can discord bots find the ffmpeg buildpack heroku 【发布时间】:2020-11-26 17:05:09 【问题描述】:

我正在制作一个机器人,它将一个 mp3 文件输出到与 discord.py 的语音聊天中,它可以通过以下方式在本地工作:

vc.play(discord.FFmpegPCMAudio(executable="ffmpeg/bin/ffmpeg.exe", source=noise.mp3))

但是我现在将它托管在 Heroku 上,我已经安装了 buildpack,但是我的代码如何访问它来替换上面的代码

【问题讨论】:

如果ffmpeg$PATH 的一部分,则不需要指定executable 参数,如果您使用的是ffmpeg Heroku buildpack,则应该是这种情况。 【参考方案1】:

您没有包含您的代码,所以我不知道您是否希望它在您编写不和谐的命令或机器人准备好时播放,所以我决定让机器人播放准备好后(如果您希望它加入命令,您可以修改我的代码)。另外,我认为如果您为此使用 youtube_dl 会更容易。

import discord
from discord.ext import commands
import youtube_dl

Token = "XXXXXX" #your token         
client = commands.Bot(command_prefix = ":") 


ydl_opts = 
    'format': 'bestaudio/best',
    'postprocessors': [
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '192',
    ],
   

def endSong(guild, path):
    os.remove(path)

url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ" #link to your song on YouTube
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    file = ydl.extract_info(url, download=True)
    guild = "1234567890" #id of your server which you can get by right clicking on server name and clicking "Copy ID" (developer mode must be on)
    path = str(file['title']) + "-" + str(file['id'] + ".mp3")

channel = client.get_channel(1234567890) #id of your channel (you get it like server id, but by right clicking on channel)                         
voice_client = await channel.connect()                                           

voice_client.play(discord.FFmpegPCMAudio(path), after=lambda x: endSong(guild, path))
voice_client.source = discord.PCMVolumeTransformer(voice_client.source, 1)
    
while voice_client.is_playing(): #waits until song ends
    await asyncio.sleep(1)
else:
    await voice_client.disconnect() #and disconnects
    print("Disconnected")

还记得在 Heroku 上包含 4 个构建包,以确保一切正常 (Your APP > Settings > Buildpacks):

heroku/python https://github.com/heroku/heroku-buildpack-apt.git https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git https://github.com/xrisk/heroku-opus.git

并检查您的 requirements.txt 中是否包含所有这些:

点 youtube_dl discord.py[语音] ffmpeg PyNaCl

【讨论】:

您的帖子非常感谢,但您应该知道...我可以识别 rickroll youtube 链接,所以您没有收到我 XD XD

以上是关于不和谐机器人在哪里可以找到 ffmpeg buildpack heroku的主要内容,如果未能解决你的问题,请参考以下文章

未找到 FFmpeg/avconv

discord.errors.ClientException:找不到 C:/ffmpeg/bin/ffmpeg

试图在 heroku 上托管我的不和谐机器人但我无法获得工人。请告诉我如何解决这个问题以及在哪里

我在哪里可以找到 libav、ffmpeg 等的现代教程? [关闭]

如何使不和谐机器人自动发送消息?

能够使用 ffmpeg 和 python 读取当前音频帧