Почему музыкальные боты не работают в дискорде
Перейти к содержимому

Почему музыкальные боты не работают в дискорде

  • автор:

Почему музыкальный бот не включает в голосовом канале дискорда аудио скачанное с ютуба?

При использовании команды play *ссылка на видео с ютуба* постоянно выдаёт эту ошибку:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: UnboundLocalError: local variable ‘voice’ referenced before assignment
Искал информацию на форумах, пишут что дело в ffmpeg, я его скачал, установил на диск C и у казал путь к нему в команде, но тут я понял что не знаю какие аргументы принимает функция .play().
Вот код

#-*- coding: utf-8 -*- import discord from discord import FFmpegPCMAudio from discord.ext import commands from configMusic import token import youtube_dl import os bot = commands.Bot(command_prefix='') @bot.event async def on_ready(): print("Бот готов!") #@bot.event #async def on_message(): # print("Пришло новое сообщение!") server, server_id, name_channel = None, None, None domains = ['https://www.youtube.com/', 'http://www.youtube.com/', 'https://youtube.be/', 'http://youtube.be/'] async def check_domains(link): for x in domains: if link.startswith(x): return True return False @bot.command() async def play(ctx, *, command = None): """Воспроизводит музыку""" global server, server_id, name_channel author = ctx.author FFMPEG_OPTIONS = if command == None: server = ctx.guild name_channel = ctx.author.voice.channel.name_channel voice_channel = discord.utils.get(server.voice_channels, name = name_channel) params = command.split(' ') if len(params) == 1: sourse = params[0] server = ctx.guild name_channel = ctx.author.voice.channel.name_channel voice_channel = discord.utils.get(server.voice_channels, name = name_channel) print("param 1") elif len(params) == 3: server_id = params[0] voice_id = params[1] sourse = params[2] try: server_id = int(server_id) voice_id = int(voice_id) except: await ctx.channel.send(", id сервера или войса должно быть целочисленным".format(author.mention)) return print('param 3') server = bot.get_guild(server_id) voice_channel = discord.utils.get(server.voice_channel, ctx.channel.send(", команда не корректна!".format(author.mention)) return voice = discord.utils.get(bot.voice_clients, guild = server) if voice is None: await voice_channel.connect() voice = discord.utils.get(bot.voice_clients, guild = server) if sourse == None: pass elif sourse.startswith('http'): if not check_domains(sourse): await ctx.channel.send(", ссылка не является разрешенной!".format(author.mention)) return song_there = os.path.isfile('C:/Users/Людмила/Desktop/Программирование/ДС Бот для музыки/music/song.mp3') try: if song_there: os.remove('song.mp3') except PermissionError: await ctx.channel.send('Недостаточно прав для удаления файла!') return ydl_opts = < 'format': 'bestaudio/best', 'postprocessers': [ < 'key': 'FFmpegExtractAudio', 'preferredcodec': 'mp3', 'preferredquallity': '192', >], > with youtube_dl.YoutubeDL(ydl_opts) as ydl: ydl.download([sourse]) for file in os.listdir('C:/Users/Людмила/Desktop/Программирование/ДС Бот для музыки/music'): if file.endswith('.mp3'): os.rename(file, 'song.mp3') voice.play(discord.FFmpegPCMAudio(executable='C:/ffmpeg/bin/ffmpeg.exe',sourse = 'C:/Users/Людмила/Desktop/Программирование/ДС Бот для музыки/music/song.mp3', **FFMPEG_OPTIONS)) else: voice.play(discord.FFmpegPCMAudio(executable='C:/ffmpeg/bin/ffmpeg.exe',sourse = 'C:/Users/Людмила/Desktop/Программирование/ДС Бот для музыки/music/', **FFMPEG_OPTIONS).format(sourse)) bot.run(token)
  • Вопрос задан более двух лет назад
  • 520 просмотров

Комментировать
Решения вопроса 1

SoreMix

пишут что дело в ffmpeg

Дело в попытке использовать переменную, которая не была объявлена, об этом и написано в ошибке. А именно, вы создаете переменную voice только при выполнении условия if command == None: , если условие не срабатывает, блок падает в else , в котором только одна строка:

voice.play(discord.FFmpegPCMAudio(executable='C:/ffmpeg/bin/ffmpeg.exe',sourse = 'C:/Users/Людмила/Desktop/Программирование/ДС Бот для музыки/music/', **FFMPEG_OPTIONS).format(sourse))

В которой используется voice, который нигде не объявлен. IDE должна была подсветить эту строку. Так что стоит добавить то же самое создание переменной, что и в блоке if выше

voice = discord.utils.get(bot.voice_clients, guild = server) if voice is None: await voice_channel.connect() voice = discord.utils.get(bot.voice_clients, guild = server)

Почему не работает музыкальный бот в Discord

Почему не работает музыкальный бот в Discord

Как установить Windows 10

Всем привет! Сегодня поговорим про то, что делать если музыкальный бот не играет в популярной бесплатной программе общения Discord. Итак, поехали!

Управляющие на направленных на определенную тематику серверах имеет возможность ставить особые музыкальные боты для трансляции музыки.

По ряду оснований, эти боты имеют все шансы лагать и дурно трудиться на сервере. Дабы сделать их функционирование, идет по стопам исполнить некоторое количество несложных поступков.

Неувязка с местоположением сервера

Неувязка трансляции музыки с поддержкой бота в Дискорде связана с местоположением.

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

В случае если лагает музыкальный бот в дискорде, то предпосылкой для сего имеет возможность замерзнуть то, собственно что программка механически избирает точку включения при разработке сервера.

В случае если она подключилась к что региональной точке, с которой сотворен сервер, то программка станет неплохо работать.

Почему не работает музыкальный бот в Discord

Но из – за образующихся сбоев программка имеет возможность включиться к иной региональной точке, из – за чего появится мощная заминка, из – за которой нельзя неплохо глядеть видео или же выслушивать музыку. В соответствии с этим, это вредит и работе бота.

Устроить это возможно следуя данной памятке.

Войти в программку Дискорд.

Обнаружить вкладку «Параметры».

Избрать «Настройки сервера».

Перебежать в «Обзор».

Раскроется окошко со значок с флагом. Надо избрать функцию «Изменить».

Раскроется окошко «Выберите регшион сервера». Юзеру будет необходимо избрать из перечня ареал, где он располагается.

Впоследствии сего надо сберечь конфигурации.

Почему не работает музыкальный бот в Discord

Выполнив эти воздействия, у юзера поменяется месторасположение сервера. В случае если месторасположение в начале выбрано верно, но музыкальный бот отрешается трудиться, кое-какие юзеры рекомендуют поменять месторасположение.

К примеру, сервер привязан к Росии по умолчанию, но его месторасположение надо поменять на США. Впоследствии сего бот станет неплохо работать.

Лагает сам бот — пытаемся переустановить

Временами неувязка сбоев в работе бота заключается в его неправильной работе. Это возможно выправить переустановив музыкального бота.

В случае если лагает бот с музыкой в Дискорде, надо сделать следующее.

Войти в приложение, перебежать на сервер.

Отыскать необходимый бот в перечне.

Щелкнув по нему правой кнопкой мыши и избрать «Удалить».

Надо избрать свежий бот, и ввести его.

Установив бота на сервер он станет показан как свежий юзер. Админу понадобится выдать роль боту, в случае если та не сориентировалась механически.

Установить команду (для всякого бота она своя) для прослушивания музыки.

Почему не работает музыкальный бот в Discord

В случае если бот не играет музыку, то его перестановка имеет возможность решить трудности с зависанием.

Лагает программка Дискорд — ожидаем завершения сбоя

Временами предпосылкой сбоя в работе бота считается неувязка в самом Дискорде.

Предпосылкой для возникновения сбоя имеет возможность замерзнуть невысокая скорость Онлайн – соединения или же же неправильные опции самого Дискорда.

Собственно что создавать в подобный в случае если бот не проигрывает музыку в Дискорде.

Подождать или же перезапустить программку. В большинстве случаев, сбой в Дискорде случается временным.

Выяснить Онлайн – слияние. Из – за никой скорости имеют все шансы вставать сбои в работе.

Переустановить Дискорд. В случае если же лаги не пропадают, а бот отрешаетсяотказывается неплохо трудиться, обязана посодействовать перестановка программки.

В кое-каких случаях рекомендовано выяснить, освежены ли драйверы звуковой карты.

Выправить зависание Дискорда возможно в короткие сроки. Временами в том числе и не потребуется ничего создавать, а элементарно подождать, когда программка начнет неплохо работать.

Дискорд – комфортная перрон для общения, отличающаяся высочайшей оптимизацией. Впрочем, без сбоев и лагов в работе программки не получается стать. К счастью, убрать делему с зависанием музыкального бота возможно за считанные минутки.

Почему половина музыкальных ботов в Discordе перестали работать?

Половина музыкальных ботов перестала работать у моих друзей и у меня. Работает только Vexera, Амацура.
Например, SonBot заходит в канал и молчит. Мой бот делает почти тоже самое, заходит в канал и молчит, а в самой команде без конца думает. И если дальше просить его подключиться он будет выдавать то что уже подключен, а если просить включить музыку или отключить от канала он будет говорить что не подключен, хотя находится там. С чем это связано и как можно исправить?
Гитхаб с кодом моего бота

  • Вопрос задан 03 апр. 2023
  • 302 просмотра

7 комментариев

Простой 7 комментариев

vabka

В логах то хоть что-то есть, когда твой бот запущен? Может там какая-нибудь очевидная ошибка?
Пробовал воспроизводить музыку не из интернета, а с диска?

Wolf_Yout

Wolf_Yout @Wolf_Yout Автор вопроса

просить его подключиться он будет выдавать то что уже подключен, а если просить включить музыку или отключить от канала он будет говорить что не подключен, хотя находится там

Сообщения как раз об этом в консоль отправляется.

vabka

Wolf_Yout, я не про тот лог, который в дискорде, а про тот, который в терминале пишется.

Wolf_Yout

Wolf_Yout @Wolf_Yout Автор вопроса

Василий Банников, об этом мне пишется в терминале, а не в дискорде. и кроме этих ошибок что он подключен/не подключен ничего нет, ни в терминале, ни в дискорде

vabka

Wolf_Yout, значит код где-то кривой. Запускай в отладке и смотри по шагам / Добавь больше логов.

Wolf_Yout

Wolf_Yout @Wolf_Yout Автор вопроса

Василий Банников, явно не это, бот месяц назад работал, далее об нем я забыл, он стоял афк, и код никто не трогал. Неделю назад запустил, а музыка не работает. Так что это глюки дискорда, а код тут не при чём.

Wolf_Yout, крупных музыкальных ботов банят регулярно, потому что они тянут музыку откуда попало (чаще всего с ютуба) без каких-либо моральных колебаний насчёт соблюдения лицензионных требований. Поэтому то, что они регулярно ломаются, не должно особо удивлять.

Ну а так, вероятно, опять чего-то ютуб подкрутил и youtube_dl перестал справляться с доставанием музыки.

Решения вопроса 1

Многие потоковые источники как Yandex.Music дискорд отключил. Я использовал в своём боте для воспроизвения музыки Youtube и библиотеку youtube-search и всё здорово работало

Ответ написан 03 апр. 2023
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос

Войдите, чтобы написать ответ

discord

  • Discord
  • +2 ещё

Вебхук через гугл таблицу, как отпаравить изображения в дискорд?

  • 1 подписчик
  • 02 февр.
  • 71 просмотр

Что делать, если Discord-бот не в сети

Что делать, если бот в Discord не в сети

Боты – популярный вид интеграций, использующийся практически на каждом сервере в Discord. Однако не все подобные утилиты корректно функционируют после их добавления. Иногда бот отображается не в сети, соответственно, он никак не реагирует на команды пользователя и не выполняет свои обязанности.

Есть несколько причин появления такой проблемы, с которыми я и предлагаю разобраться далее.

Причина 1: Сбой авторизации бота

Это непопулярная причина, поскольку в большинстве случаев боты всегда успешно добавляются на сервер и сразу отображаются в сети, то есть готовы к работе. Однако проверка авторизации займет буквально пару секунд, поэтому и советую обратить внимание на этот аспект в первую очередь. Найдите неактивного бота в списке участников сервера и кликните по нему левой кнопкой мыши.

Открытие панели управления участником для проверки работоспособности бота в Discord

Появится панель управления участником с информацией о нем. Если там есть кнопка «Добавить бота» или «Авторизовать бота», нажмите ее и еще раз пройдите те же самые шаги, связанные с выбором сервера и подтверждением предоставления интеграции необходимых прав.

Повторная авторизация для проверки работоспособности бота в Discord

Вы можете не перезагружать Дискорд, поскольку изменения должны вступить в силу сразу же. Если после нескольких повторных попыток авторизации через данную панель бот так и не заработал, переходите к разбору следующих причин и методов их решения.

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей

Причина 2: Некорректная работа интеграции

В Discord бот считается за интеграцию и начинает свою работу сразу же после добавления. Конечно, для этого он должен отображаться в сети. Если у вас возникла рассматриваемая проблема, попробуйте проверить интеграцию и, в случае необходимости, полностью удалить ее с повторным добавлением на сервер.

  1. Найдите неактивного бота в списке участников и щелкните по нему правой кнопкой мыши.
  2. Из появившегося контекстного меню выберите пункт «Управление интеграцией». Переход к интеграциям для проверки работоспособности бота в Discord
  3. Ознакомьтесь с предоставленными и отсутствующими правами. Убедитесь в том, что интеграция имеет необходимый уровень доступа, чтобы оставаться активной и выполнять команды пользователя. Если это не так, откройте раздел с ролями, выберите отдельную роль целевого бота и предоставьте ей необходимые права. Проверка прав доступа интеграции для проверки работоспособности бота в Discord
  4. Если с доступом все нормально, но интеграция все еще не работает, удалите ее полностью при помощи кнопки в этом же окне. Кнопка удаления интеграции для проверки работоспособности бота в Discord
  5. Подтвердите удаление и самостоятельно добавьте бота на сервер точно так же, как делали это первый раз. Можете попробовать отыскать его через другую площадку размещения ботов или найти официальный сайт, чтобы точно выбрать последнюю рабочую версию. Подтверждение удаления интеграции для проверки работоспособности бота в Discord

Причина 3: Бот сломан или отключен создателем

После добавления на сервер бот не является вашей собственностью и зависим от создателя. Создатель может временно или навсегда отключить его или перевести бота в офлайн-режим для устранения неполадок. Проще всего проверить текущее состояние через различные площадки, где люди могут оставлять отзывы о работе конкретных ботов.

  1. Я не буду рекомендовать конкретную площадку размещения ботов, поскольку их десятки, самых разных и проверенных. Откройте любую, на которой находится установленный вами бот. Отыщите его через поиск, чтобы открыть страницу интеграции. Поиск на открытых площадках для проверки работоспособности бота в Discord
  2. Найдите свежие отзывы и почитайте, что пишут о боте пользователи. Если не вы один столкнулись с его нерабочим состоянием, то причина проблемы непосредственно в интеграции, и исправить ее может только создатель. Чтение отзывов на открытых площадках для проверки работоспособности бота в Discord

Если у бота есть официальный сайт и контакты поддержки, можете написать создателю напрямую и спросить, что сейчас происходит с интеграцией. Скорее всего, вы получите исчерпывающий ответ, который поможет разобраться в текущей ситуации.

Причина 4: Проблема в работе Discord

Допустим, при чтении отзывов и после обращения в поддержку оказалось, что у всех бот работает корректно, только у вас он не в сети. Случается такое довольно редко, но может быть вызвано сбоями в работе самого Discord. Исправляется это тремя простыми шагами.

  1. Откройте утилиту «Выполнить», используя для этого стандартное сочетание клавиш Win + R. Введите в поле поиска %appdata% и подтвердите переход по данному пути. Переход к локальным файлам для проверки работоспособности бота в Discord
  2. Откроется список папок, среди которых нужно найти «Discord» и удалить данную папку. Удаление локальных файлов для проверки работоспособности бота в Discord
  3. Обязательно завершите все процессы программы через «Диспетчер задач», после чего повторите запуск мессенджера и проверьте, помогло ли это исправить проблему с работой бота. Завершение процессов для проверки работоспособности бота в Discord

Некоторые пользователи рекомендуют очистить весь мусор на компьютере или переустановить Дискорд. Можете сделать это, если ничего из перечисленного выше не помогло, но я не вижу взаимосвязи в этих действиях, если другие боты на сервере функционируют корректно.

В большинстве случаев проблема кроется именно на стороне создателя данной интеграции. Возможно, именно сейчас он исправляет неполадку, а вам нужно лишь немного подождать, чтобы бот снова заработал.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *