Discord MP3 Bot mit Python und ffmpeg

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Phil1401
User
Beiträge: 1
Registriert: Freitag 29. September 2017, 21:56

Guten Abend,
ich habe beim Programmieren an meinem Discord Bot (https://discordapp.com/) ein kleines Problem gefunden.
Mit dem nachfolgendem Code kann ich den Bot zwar in einen Sprachkanal kommen und deine MP3 Datei abspielen lassen, aber bevor der Bot eine neue Datei spielen kann, muss er den Kanal verlassen. Manuell (Befehl .quit eingeben) bekomme ich das hin, aber ich hätte es gerne, dass der Bot nach dem abspielen der Datei den Kanal automatisch verlässt.
Ich bin da etwas hilflos und würde mich über jede Idee freuen.
Danke
Phil

Mit Hilfe von dieser Seite habe ich den Code zusammengestellt. http://discordpy.readthedocs.io/en/late ... html#voice

Aktueller Code (manuelles Verlassen):

Code: Alles auswählen

import discord

client = discord.Client()

players = {}

@client.event
async def on_ready():
    print(client.user.name)

@client.event
async def on_message(message):

    if message.content.startswith('.quit'):
        try:
            voice_client = client.voice_client_in(message.server)
            await voice_client.disconnect()
        except AttributeError:
            await client.send_message(message.channel, "Ich habe mich bereits von allen Voice Channels getrennt.")
        except Exception as exce:
            await client.send_message(message.channel, "Es ist ein Fehler aufgetreten. ```{hhh}```".format(hhh=exce))
    if message.content.startswith('.play'):
        try:
            channel = message.author.voice.voice_channel
            voice = await client.join_voice_channel(channel)
            player = voice.create_ffmpeg_player('Sounds\h.mp3')
            player.start()
        except Exception as exc:
            await client.send_message(message.channel, "Es ist ein Fehler aufgetreten. ```{ttt}```".format(ttt=exc))

client.run('xxx')
Mein erster Versuch, um den Bot den Kanal automatisch verlassen zu lassen (Der Bot verlässt den Kanal aber, bevor die Datei abgespielt wurde):

Code: Alles auswählen

import discord

client = discord.Client()

players = {}

@client.event
async def on_ready():
    print(client.user.name)

@client.event
async def on_message(message):

    if message.content.startswith('.play'):
        try:
            channel = message.author.voice.voice_channel
            voice = await client.join_voice_channel(channel)
            player = voice.create_ffmpeg_player('Sounds\h.mp3')
            player.start()
        except Exception as exc:
            await client.send_message(message.channel, "Es ist ein Fehler aufgetreten. ```{ttt}```".format(ttt=exc))
        voice_client = client.voice_client_in(message.server)
        await voice_client.disconnect()

client.run('xxx')
Gamingbuddies15
User
Beiträge: 1
Registriert: Freitag 1. März 2019, 19:09

Hey ich finde es nice nur ich weiß nicht wie ich meine mp3 dateien ab spielen lasse
anonym13

Ich habe eine so ähnliche frage

Kann mir wer da helfen?


import discord
from discord.ext import commands

bot = commands.Bot(command_prefix = "!")


@bot.event
async def on_ready():
print("Bot ist gestarted!")


@bot.command()
async def start(ctx):
voicechannel = discord.utils.get(ctx.guild.channels, name='User-music')
vc = await voicechannel.connect()


bot.run('MyToken')

Ich möchte jetzt das der bot einen stream link der in der datei festgelegt wir spielt wie kann ich das machen?
Also insgesammt soll der bot in einen festgelegten channle joinen wenn ich !start eingebe und einen fastgelegten radio stream link spielen
miel9
User
Beiträge: 12
Registriert: Freitag 21. Juni 2019, 13:19

...
Antworten