попробуй мой код, может быть сработает:
@bot.command()
async def play(self, ctx, url: str):
song_there = os.path.isfile('song.mp3')
try:
if song_there:
os.remove('song.mp3')
print('[Voice] Удаляю старый файл...')
except PermissionError:
print('[Voice] Не удалось удалить старый файл')
await ctx.send('Пожалуйста, ожидайте...')
voice = discord.utils.get(self.client.voice_clients, guild = ctx.guild)
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
print('[Voice] Загружаю музыку...')
ydl.download([url])
for file in os.listdir('./'):
if file.endswith('.mp3'):
name = file
print(f'[Voice] Переименовываю файл: {name}')
os.rename(file, 'song.mp3')
voice.play(discord.FFmpegPCMAudio('song.mp3'), after = lambda e: print(f'[Voice] {name} закончила свое проигрывание'))
voice.source = discord.PCMVolumeTransformer(voice.source)
voice.source.volume = 0.07
await ctx.send(f'Сейчас играет: {url}')
и кстати, если вы пишите не в блокноте, то выделите весь мой код кроме @bot.command() и нажмите Shift + Tab