Reputation: 51
i have made a music bot with discord.py, but i get this info thing and it doesnt work anymore error [youtube] QxYdBvB8sOY: Downloading webpage 985104597242773505 [2022-06-25 07:45:51] [INFO ] discord.player: Preparing to terminate ffmpeg process 37580. [2022-06-25 07:45:51] [INFO ] discord.player: ffmpeg process 37580 has not terminated. Waiting to terminate... [2022-06-25 07:45:51] [INFO ] discord.player: ffmpeg process 37580 should have terminated with a return code of 1.
this is my code
import discord
import os
import asyncio
import youtube_dl
from discord import *
token = "token is here"
prefix = "j!"
blocked_words = ["blocked words are here"]
voice_clients = {}
yt_dl_opts = {'format': 'bestaudio/best'}
ytdl = youtube_dl.YoutubeDL(yt_dl_opts)
ffmpeg_options = {'options': "-vn"}
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
programmer_role = "987018590152699964"
@client.event
async def on_ready():
print(f"Bot logged in as {client.user}")
@client.event
async def on_message(msg):
if msg.author != client.user:
if msg.content.lower().startswith(f"{prefix}info"):
await msg.channel.send(f"Hi, Im JoksysBot Made By Joksy!")
for text in blocked_words:
if text in str(msg.content.lower()):
await msg.delete()
await msg.channel.send("Hey, Dont Say That!")
return
if msg.content.startswith(f"{prefix}play"):
try:
voice_client = await msg.author.voice.channel.connect()
voice_clients[voice_client.guild.id] = voice_client
except:
print("error")
try:
url = msg.content.split()[1]
loop = asyncio.get_event_loop()
data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=False))
song = data['url']
player = discord.FFmpegPCMAudio(song, **ffmpeg_options, executable="C:\\Users\\jonas\\Documents\\ffmpeg-2022-06-16-git-5242ede48d-full_build\\ffmpeg-2022-06-16-git-5242ede48d-full_build\\bin\\ffmpeg.exe")
voice_clients[msg.guild.id].play(player)
except Exception as err:
print(err)
if msg.content.startswith(f"{prefix}pause"):
try:
voice_clients[msg.guild.id].pause()
except Exception as err:
print(err)
if msg.content.startswith(f"{prefix}resume"):
try:
voice_clients[msg.guild.id].resume()
except Exception as err:
print(err)
if msg.content.startswith(f"{prefix}stop"):
try:
voice_clients[msg.guild.id].stop()
await voice_clients[msg.guild.id].disconnect()
except Exception as err:
print(err)
client.run(token)
its weird since all the other code in my bot works fine like the !info
command, so it must be an error with either youtube-dl or ffmpeg. But then again it doesnt join the voice call in the first place so that might be the error. i added ffmpeg to path but i still wrote the path to it here player = discord.FFmpegPCMAudio(song, **ffmpeg_options, executable="C:\\Users\\jonas\\Documents\\ffmpeg-2022-06-16-git-5242ede48d-full_build\\ffmpeg-2022-06-16-git-5242ede48d-full_build\\bin\\ffmpeg.exe")
. i followed this tutorial for the bot https://www.youtube.com/watch?v=Q8wxin72h50&t=1040s i did everything he did but it didnt work. My discord.py version is 2.0.0
my Python version is 3.10.5
and my youtube_dl version is 2021.12.17
my ffmpeg download is ffmpeg-2022-06-16-git-5242ede48d-full_build
. I tested it on discord.py 1.73
and it worked fine. This was in intellij though whilst my main program is in Visual Studio Code but i couldnt see it making any big difference so it could be the intents that makes the program not work.I couldnt see any mistakes in the code but im new to discord.py, youtube_dl and ffmpeg stuff so unless visual studio code showed me what i did wrong, i wouldnt notice. But what did i do wrong and how can i fix it?
Upvotes: 2
Views: 2930
Reputation: 51
So for anybody having this issue here ya go: So the issue was connecting to the voice call. Make sure you have these intents
intents = discord.Intents.default()
intents.message_content = True
intents.voice_states = True
if it still doesnt work make sure you have PyNaCl
installed. you can do it in a terminal with this code pip install pynacl
you need to have python installed for this though. and that should be the fix
Upvotes: 3