#python #discord
Вопрос:
Ошибка была простой, две команды просто нужно было объединить в 1 команду, удалив 2-ю команду. Ошибка была легкой, вот код, если кому-то он нужен. Хотя это против сервисов Youtube, так что будьте осторожны
@client.command() асинхронная защита youtube(ctx, *, поиск):
query_string = urllib.parse.urlencode({
'search_query': search
})
htm_content = urllib.request.urlopen(
'https://www.youtube.com/results?' query_string
)
search_results = re.findall(r"watch?v=(S{11})", htm_content.read().decode())
await ctx.send('play www.youtube.com/watch?v=' search_results[0])
url = ("www.youtube.com/watch?v=" search_results[0])
song_there = os.path.isfile("song.mp3")
try:
if song_there:
os.remove("song.mp3")
except PermissionError:
await ctx.send("You are not in a vc!")
return
VoiceChannel = discord.utils.get(ctx.guild.voice_channels, name='🔊Voice Channel 1🔊')
await VoiceChannel.connect()
voice = discord.utils.get(client.voice_clients, guild=ctx.guild)
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}],
}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
for file in os.listdir("./"):
if file.endswith(".mp3"):
os.rename(file, "song.mp3")
voice.play(discord.FFmpegPCMAudio("song.mp3"))
Комментарии:
1. Так что у меня недостаточно опыта, чтобы догадаться, как именно это исправить, но я решил добавить свои 2 цента. Можно ли добавить подкоманду для воспроизведения звука? Например, как только поиск будет завершен, вы импортируете другой скрипт, который затем вытащит загрузку и фактически начнет ее воспроизведение? Несмотря на это, мне интересно узнать, может ли кто-нибудь помочь с этим, так как это определенно то, что я хотел бы добавить в свой собственный бот Discord.
2. Спасибо за помощь. Все, что мне нужно было сделать, это сделать команду YouTube ведущей в команду воспроизведения без какой-либо команды воспроизведения. Я отредактировал сообщение с решением, спасибо за помощь.