Мой heroku musi c бот работает нормально, если я запускаю его через свой p c, но когда я запускаю его через heroku, он не работает - PullRequest
0 голосов
/ 06 марта 2020

У меня установлен ffmpeg, youtube-dl, установлены все требования, загружается песня, переименовывается, но ничего не происходит!

@client.command()
async def play(ctx, *url: str):
    song_there = os.path.isfile("song.mp3")
    try:
        if song_there:
            os.remove("song.mp3")
            print("Removed old song file")
    except PermissionError:
        print("Trying to delete song file, but it's being played")
        await ctx.send("ERROR: Music playing")
        return

    await ctx.send("Getting everything ready now")

    voice =  get(client.voice_clients,  guild=ctx.guild)

    ydl_opts = {
        'format': 'bestaudio/best',
        'quiet': True,
        'outtmpl':"./song.mp3",
        'postprocessors': [{
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',
            'preferredquality': '192',
        }],
    }

    song_search = " ".join(url)

    with youtube_dl.YoutubeDL(ydl_opts) as ydl:
        print("Downloading audio now\n")
        ydl.download([f"ytsearch1:{song_search}"])

    for file in os.listdir("./"):
        if file.endswith(".mp3"):
            name = file
            print(f"Renamed File: {file}\n")
            os.rename(file, "song.mp3")

    voice.play(discord.FFmpegPCMAudio("song.mp3"), after=lambda e: print(f"{name} has finished playing"))
    voice.source = discord.PCMVolumeTransformer(voice.source)
    voice.source.volume = 0.10

    nname = name.rsplit("-", 2)
    await ctx.send(f"Currently playing: {nname}")
    print("playing\n")

1 Ответ

0 голосов
/ 06 марта 2020

Heroku поддерживает ffmpeg в качестве пакета сборки для вашего приложения. Просто откройте настройки приложения в https://dashboard.heroku.com/apps/[app-name]/settings и прокрутите вниз до Buildpacks, где вы должны добавить к нему https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git.

В качестве альтернативы вы также можете запустить команду CLI:

$ heroku buildpacks:add https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git

Source :

https://elements.heroku.com/buildpacks/jonathanong/heroku-buildpack-ffmpeg-latest

...