Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Музыкальный дискорд бот на python

Максим Игнатов Ученик (135), на голосовании 6 месяцев назад
Здравствуйте, могли бы помочь мне с одной проблемой? Мне нужно сделать бота музыкального, чтобы он 1)мог воспроизводить песни по названию(а нетолько по ссылке) 2)при начале/окончании воспроизведения песен он заходил/выходил из канала дискорд
Дополнен 7 месяцев назад
Если можете, то просто помогите с кодом, буду рад:)

import discord
from discord.ext import commands
import youtube_dl

intents = disnake.Intents.all()
bot = commands.Bot(command_prefix='!', intents=intents)

@bot.event
async def on_ready():
print(f'Бот {bot.user.name} готов к работе!')

@bot.command()
async def join(ctx):
channel = ctx.author.voice.channel
await channel.connect()

@bot.command()
async def leave(ctx):
await ctx.voice_client.disconnect()

@bot.command()
async def play(ctx, url):
ydl_opts = {
'format': 'bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192',
}],
}

with youtube_dl.YoutubeDL(ydl_opts) as ydl:
info = ydl.extract_info(url, download=False)
url2 = info['formats'][0]['url']
voice_client = ctx.voice_client

FFMPEG_OPTIONS = {
'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5',
'options': '-vn',
}

voice_client.stop()
voice_client.play(discord.FFmpegPCMAudio(url2, **FFMPEG_OPTIONS))


@bot.command()
async def pause(ctx):
ctx.voice_client.pause()

@bot.command()
async def resume(ctx):
ctx.voice_client.resume()
Голосование за лучший ответ
0 1 Профи (826) 7 месяцев назад
Максим ИгнатовУченик (135) 7 месяцев назад
Там бот на node.js, а мне надо на python
0 1Профи (826) 7 месяцев назад
Максим Игнатов Ученик (135) 0 1, можете помочь?
Максим ИгнатовУченик (135) 7 месяцев назад
Там активация музыки происходит с помощью ссылки, а мне нужно с помощью названия музыки
0 1 Профи (826) Максим Игнатов, https://qna.habr.com/q/816991
Максим ИгнатовУченик (135) 7 месяцев назад
А то я не особо понимаю в этом, мне просто нужно переделать код, так чтобы бот сам заходил при команде !play а также выходил при заканчивает музыки и команде !stop также нужно сделать чтобы при выдачи запроса например !play фонк (без url) заходил и начинал проигрывание музыки
Похожие вопросы