Получаю ошибку OSError: [WinError 10038] Сделана попытка выполнить операцию на объекте, не являющемся сокетом. Делаю бота для Дискорд сервера

vamggwp

Новичок
Пользователь
Янв 29, 2022
3
0
1
Python:
@bot.command()
async def монолитмыхотимслышатьтебя (ctx, url :str):
#async def монолитмыхотимслышатьтебя (channel, ctx, url : str):
    
    song_there = os.path.isfile("song.mp3")
    try:
        if song_there:
            os.remove("song.mp3")
    except PermissionError:
        await ctx.send("Подожди окончания или останови меня")
        return

    voiceChannel = discord.utils.get(ctx.guild.voice_channels)
    #voiceChannel = discord.utils.get(ctx.guild.voice_channels, name=channel)
    await voiceChannel.connect()
    voice = discord.utils.get(bot.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"))
Код:
Package           Version
----------------- -----------
aiohttp           3.7.4.post0
async-timeout     3.0.1
attrs             21.4.0
cffi              1.15.0
chardet           4.0.0
discord           1.7.3
discord.py        1.7.3
ffmpeg            1.4
idna              3.3
multidict         6.0.2
pip               21.3.1
pycparser         2.21
PyNaCl            1.5.0
setuptools        58.1.0
typing_extensions 4.0.1
yarl              1.7.2
youtube-dl        2021.12.17
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 672
478
83
async def монолитмыхотимслышатьтебя
ужас какой....

по вашему коду не понятно, где ошибка с сокетом, тут его нет...
ну и в ошибке вроде написано все....
 

vamggwp

Новичок
Пользователь
Янв 29, 2022
3
0
1
ужас какой....

по вашему коду не понятно, где ошибка с сокетом, тут его нет...
ну и в ошибке вроде написано все....

ужас какой....

по вашему коду не понятно, где ошибка с сокетом, тут его нет...
ну и в ошибке вроде написано все....
Спасибо, а это может быть связанно с продолжительностью видео? Просто я пробовал все время включать 8 мин песню и выдавало ошибку, а сейчас включил 3 мин, и все заработало.
 

Форум IT Специалистов