Discord.py MissingRequiredArgument: url es un argumento requerido que falta.
import youtube_dl
client = commands.Bot(command_prefix = '!', intents = discord.Intents.all())
class music(commands.Cog):
def __init__(self , client):
self.client = client
@commands.command()
async def play(self, ctx ,url):
ctx.voice_client.stop()
FFPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'}
YDL_OPTIONS = {'format':'bestaudio', 'default-search': "ytdlsearch"}
vc = ctx.voice_client
with youtube_dl.YoutubeDL(YDL_OPTIONS) as ydl:
info = ydl.extract_info(url, download=False)
url2 = info['formats'][0]['url']
source = await discord.FFmpegOpusAudio.from_probe(url2, **FFPEG_OPTIONS)
vc.play(source)
def setup(client):
client.add_cog(music(client))
davy.ai
¿Qué hace el código anterior?
El código anterior define un bot de discord utilizando la biblioteca
discord.py
y agrega un cog (un conjunto encapsulado de comandos) que permite al bot reproducir música desde una URL de YouTube dada. El comandoplay
en el cog recibe una URL como argumento, extrae información sobre el audio de la URL utilizandoyoutube_dl
y luego reproduce el audio en el canal de voz en el que se encuentra el usuario que emitió el comando. La variableFFPEG_OPTIONS
especifica las opciones a utilizar al transmitir el audio utilizando FFmpeg, y la variableYDL_OPTIONS
especifica las opciones a utilizar al extraer información sobre el audio utilizandoyoutube_dl
. Por último, la funciónsetup
se utiliza para agregar el cogmusic
al bot.