Если вы хотите установить готового музыкального бота, без лишних проблем и траты времени, то этот гайд специально для вас. Мы объясним на конкретном примере, как поставить на ваш сервер Discord музыкального бота, который будет работать круглые сутки. Разделим наш гайд на этапы, чтобы вам было немного удобнее ориентироваться в тексте.

1 этап – Выбор​
  • Rythm makes it possible to listen to your favorite music with all your friends. Add it to Discord today and start listening!
  • Visual player to control your music No more complicated commands to play your music and manage your playlist. Use our cool dashboard to directly search for songs, replay them, and play them in your Discord server. All the features you would expect and much more!

На этом этапе нам необходимо выбрать бота на сервер.
Для этого заходим по ссылке: https://www.carbonitex.net/Discord/bots
Во вкладке Info можно узнать полезную информацию о боте, его функционал, возможности и т. д.
Во вкладке Features вы можете посмотреть основные особенности бота, его отличие от остальных.
Во вкладке Usage обычно пишут способ применения бота, его основные команды и подсказки.

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

MEE6 The most complete & easy-to-use Discord bot! Advanced auto-moderation, leveling, Twitch and Youtube alerts & much more! Never miss a beat with Octave, a simple and easy to use Discord music bot delivering high quality audio to hundreds of thousands of servers. We support Youtube, Soundcloud, and more! View Add Bot Upvote. Visual player to control your music No more complicated commands to play your music and manage your playlist. Use our cool dashboard to directly search for songs, replay them, and play them in your Discord server. All the features you would expect and much more!

2 этап – Установка​

После того, как вы выбрали подходящего бота, нажмите на зелёную кнопкуAdd Bot To Server.
Затем, нам необходимо выбрать сервер на который мы хотим установить бота.
Для примера мы выбрали Тестовый сервер.
Рекомендуем вам создать аналогичный, пустой сервер, для пробной попытки.
Желательно не снимать галочки с разрешений (если они есть), для успешного функционирования бота.
Нажимаем кнопку Авторизовать.
Переходим в программу Discord, на тестовый сервер.

3 этап – Настройка и запуск музыкального бота​

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

Внимание: У каждого бота есть свои текстовые команды и префикс, условия для работы, но они они могут повторятся.
Например: у одного бота, команда воспроизведение музыки может быть следующая $Music[пробел]название трека, а другого !Play[пробел]название трека

У выбранного нами бота WildBot имеются свои команды и префикс (++) для ввода.
Вводим в текстовой чат на сервере команду ++help и получаем в личные сообщения от нашего бота список основных команд для работы.
Далее мы вводим команду ++voice, чтобы добавить бота в голосовой чат.
(Очень важно, если вы хотите слышать музыку)
Далее мы видим в текстовом чате следующее.

  • ++request – Добавление музыки в плейлист (Ссылка на видео из Youtube или Soundcloud).
  • ++music pause – Поставить музыку на паузу.
  • ++music play – Воспроизводить музыку.
  • ++volumе – Изменять громкость музыки.
  • ++playlist – Посмотреть плейлист.
  • ++Shuffle – Перемешать треки в плейлисте.
  • ++voteskip – Голосование за пропуск трека.
  • ++skip – Пропустить трек.
  • ++leave-voice– Убрать бота из голосового чата.

Если бот не начал играть музыку после ввода команды ++voice, добавляем свои треки при помощи команды ++request и затем жмём ++music play.
Наслаждаемся музыкальным ботом на своём сервере.

4 этап – Конец​

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

Musica Discord

Данный гайд создан специально для пользователей группы.

Discord - это чат с поддержкой конференций и богатой функциональностью. Он способен работать как в браузере, так и в виде стандартной программы для ОС Windows, а также мобильных платформ. Программа неплохо оптимизирована, поэтому не потребляет много системных ресурсов. И в отличие от Skype , а также некоторых других аудиочатов, заточена именно под общение внутри различных игр. Многие нестандартные функции Дискорда становятся доступны после установки дополнительного ПО. Сейчас мы рассмотрим, как включить музыку в Дискорде.

В Дискорд существует возможность включить трансляцию музыки.


Многие игры не позволяют на лету транслировать музыку через встроенный плеер. Системный плеер, запускаемый одновременной с игрой, потребляет много ресурсов. Это может плохо сказаться на производительности ПК . Но кроме того, он не позволяет делать музыкальные трансляции. Помимо экономии (оперативной памяти и ресурсов процессора), Discord позволяет делиться аудио с другими игроками.

Командная игра станет гораздо ярче, если игроки будут слушать энергичные мелодии во время развлечений. Трансляция музыки в Discord может серьёзно помочь, когда нужно записать игровое видео. А полезные функции дополнительного ПО позволят не только включить музыку из сети, но и запустить полноценного бота, которым сможет управлять каждый желающий.

Как запустить проигрывание аудио?

Инсталляция ПО

Чтобы настроить трансляцию в программе Дискорд, понадобится программа Virtual Audio Cable. Её можно без труда найти в интернете. Для начала необходимо загрузить программу и запустить установочный файл с разрядностью x86 или x64 (зависит от операционной системы вашего компьютера). Ознакомьтесь с лицензионным соглашением и нажмите «Yes». Потом выберите путь для установки программы и нажмите «Install». Лучше устанавливать программу на системный диск.


Настройка

Перейдите в «Настройки пользователя»
Перейдите в «Голос» и выберите «Line 1»
Примените настройку «Устройство вывода» - «По умолчанию»
Громкость микрофона - на максимум, громкость звука - на минимум.

Вот мы и разобрались, как включить музыку в Discord.

Возможно, вы захотите транслировать в конференцию канал радио или подкаст? Сделать это также не сложно, соответствующие настройки выставляются в «Настройках» AIMP или любого другого плеера с такими функциями.

ВАЖНО. Убедитесь в том, что правильно установили устройства для вывода и ввода звукового сигнала.

Дело сделано!

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

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

Делитесь своими советами и комментариями под этим материалом! Возможно, вы нашли голосовой чат, который чем-то превосходит Discord? А также знакомьтесь с другими материалами на нашем сайте.

Probably one of the best chat services I’ve ever used (I’m not sponsored by Discord I swear)

It seems like every big name out there is hopping onto the popular trend of creating an every-day lifestyle where we have automated programs assisting us. Scrolling down Slack’s list of available bots makes it feel like a marketplace for droids you’d find on a desert planet in a remote sector of the galaxy.

But I don’t use Slack. It’s a freemium service with paid plans, and that doesn’t really jive with me. I also don’t have any interest in using someone else’s bot, since as a programmer, I wouldn’t be able to tack on any features I would want. I decided to go my own way - create bots for a service I use on a daily basis - Discord, the voice and text service for gamers.

Starting Out - The First Door

I created my own Discord server which I have purely for my bots and whoever else I inform of my bots. It’s my own little robotic junkyard where I can fiddle and tinker with my bots and not be interrupted; that’s one of the great things about Discord, is just being able to have your own private chat server.

From the Discord Developer page, you’re able to create applications and give them Bot permissions. Bot accounts are different from normal users and actually have a wider set of features than normal user accounts. You just have to connect via Websockets to Discord’s gateway, listen for messages, and handle rate-limiting properly.

Thankfully, the Discord.py API, a Discord package for Python, makes it all really easy. Creating a basic Bot account is really simple - you just create a Bot object and create commands that let you listen to messages and reply to them with whatever actions you so choose. You just need feed the bot with an OAuth2 token and it’ll connect to Discord’s gateway.

Import discord
from discord.ext.commands import Bot
my_bot = Bot(command_prefix='!') @my_bot.event
async def on_read():
print('Client logged in')

@my_bot.command()
async def hello(*args):
return await my_bot.say('Hello, world!')

Boot De Musica Discord

My_bot.run('{bot token}')

Upon running this you have a bot! But, it’s not quite connected to any servers, so you’ll have to request a link for it to join a server you own. You kinda have to copy this link and replace the CLIENT_ID with your Bot’s application ID to create a link from which a user can add a bot to their server (mostly just for you).

With a little bit of creativity, I was able to construct a very basic Bot from this program scheme. Using BeautifulSoup and Requests I was able to form a relatively small scraper for YouTube and DuckDuckGo.

YouTube links automatically get embedded, which is very nice (who else likes UT music?)

The first door has been opened, and it gave me the Dumb-bot.

The Second Door - The Reminder

Discord has only a few ways to actually send notifications. When someone an message, when someone does a at a specific user, or when you private message a user. The cool thing about Discord is that it does have a mobile client, upon receiving notifications, creates a Push Notification to the client’s mobile device. This would also turn to be useful for Bots.

A big thing that I suck at is scheduling. I find adding calendar events to some generic Calendar app like Google Calendar or Thunderbird, is just awful and inconvenient. There’s always a GUI involved and never a CLI action which you can perform. The only event I’ll ever set is my alarm on my phone to wake up.

So I wanted to create a new kind of Bot that would push me messages without getting in my face too much. I would call him Remind-bot, and all he would do is accept commands and dispatch notifications to users. However he’d be different from dumb-bot who just used a Bot object to receive commands and return output.

Remind-bot is a simple idea; accept user input, convert a time span to a Unix time signature, and once every minute, check all users’ time stamps and see if they expired. When they expire, dispatch the notification and erase it from the user’s list. For this, it goes beyond the very basic Bot example from before.

A crappy diagram I drew up - I suck at UML

I have to have two different threads going on; one thread which is the asynchronous Discord client reading messages from the Websocket, and another which at a certain interval checks all reminders and sends them out once they’ve expired. The read/dispatch thread depends on the Discord thread being alive, and if that one closes, the read/dispatch closes.

For this I’ve set the read/dispatch to read messages from storage once a minute. The Discord thread will listen to any input and write them to storage once processed. If the Discord thread at any given time closes or shuts down from network errors or whatever exceptions, it shuts itself off and the read/dispatch stops it’s own thread execution. In reality this is easier to describe than it was to implement.

A bug I forgot about - I stored reminders in all lowercase. Oops.

After a few painstaking hours of messing too much with asyncio , I was able to get the two threads to operate perfectly. Needless to say, asyncio isn’t really my favorite library, and it actually hampered my progress just due to how strange it is.

The Final Door - The Nerd

I use Python for a lot of things, so I know all about NumPy , and I know about the number one Python graphing utility Matplotlib . I also know about SymPy , which is truly a crazy Python library. I was thinking about the ways of incorporating Matplotlib into Discord as a fun utility, until it hit me; can’t I use SymPy to interpret strings and transform them into expressions?

Yes, yes you can. Using a function in SymPy called sympify we can do:

>>> from sympy import sympify
>>> expression = sympify('cos(x**2) * sin(x/2)')
>>> expression
sin(x/2)*cos(x**2)
>>> type(expression)

With that we can create expression trees from strings, which can then be used inside of SymPy’s Matplotlib submodule for plotting expression trees.

This got boring pretty quickly though. It was a basic operation that didn’t really do much else, but it did save time when it came to creating Matplotlib graphs. The plus side is that Discord images are hosted on Discord’s servers, so they are technically uploaded to a kind of image host immediately.

I decided to go a bit further and use SymPy’s methods for integrating and deriving functions.

Deriving a function with ease

Deriving is relatively easy for SymPy. Integrating sometimes results in scenarios where SymPy can’t calculate the expression in time, or will just crash the program entirely. Here’s the expanded integral for “tan(x)**(1/3)” which crashed my poor little bot:

Granted this is the alternate form, but still - he didn’t stand a chance

So now I have a bit more functionality, but I also thought maybe it’d be cool to graph functions in the complex domain. I had to do a little bit more digging for this one, but eventually I got it to work.

It looks real good here, but the sampling rate had to be turned down for speed

The Drawing of the Three - The Leader

I have three bots now, all individual programs which run independent of each other and complete tasks. The problem is keeping them running, how do I ensure that each program will be running for as long as possible? I can’t really run a shell script which forks each one and hope for the best.

The other option would be creating Python code in each program that would infinitely loop, handle exceptions and restart it’s clients after encountering errors. This sounds okay, but it would either involve writing a lot of code per program, or factoring out the infinite loop function and create a generic “run this program and restart when it fails” function. That didn’t sound too enjoyable either just because some of the bots could be handled differently (a Bot object vs. a Client object).

My last option is writing a kind of supervisor program to run each thread in parallel. It would check if a thread has ended and restart it if it was dead, placing it back in the event loop. This sounds like a job for asyncio ! Actually, no, I hate that library.

I turned to Racket, because Racket has support for green threads right out of the box, and it doesn’t require a specific version for it like asyncio (you need at least Python 3.4).

Racket has a few functions for threads which are mostly important. thread which spawns a thread object, thread-wait which blocks until the given thread is dead, and kill-thread which we’ll use when we want to reboot a thread manually, and thread-dead? which checks if a thread is dead. The supervisor program will basically look like:

(define bots
(vector
(list 'python' 'bot1.py' 'bot1.key')
(list 'python' 'bot2.py' 'bot2.key')
(list 'python' 'bot3.py' 'bot3.key')))

(define (start-bot bot-id)
(thread
(λ ()
(displayln (format 'Starting bot ~a' bot-id))
(system (string-join (vector-ref bots bot-id) ' '))
(displayln (format 'Bot ID ~a ended unexpectedly' bot-id)))))

(define (re-animate id)
(displayln (format 'Checking thread ~a' id))
(when (thread-dead? (vector-ref threads id))
(displayln (format 'Bringing thread ~a back to life' id))
(vector-set! threads id (start-bot id))))

(define total-bots (vector-length bots) (define threads
(build-vector total-bots start-bot))
(define main-t
(thread
(λ ()
(define (loop)
(displayln 'Beginning Gravekeeper sweep...')
(for ()
(re-animate x))
(displayln 'Sleeping Gravekeeper...')
(sleep 300)
(loop))
(loop))))

(thread-wait main-t)

It’s a lot to take in but that’s the gist of it. We build a vector of bots, map a thread construction function to each ID, and in another thread we check every five minutes each thread to see if it needs to be restarted or not. I couldn’t think of an easier asyncio implementation so I went with this, and it works pefectly.

The Host

See Full List On Techjunkie.com

Naturally I wouldn’t want this on my desktop interfering with my daily activities, and I sometimes turn my computer off, so I need a host which never turns off - sounds like the perfect job for my little companion, the Raspberry Pi Model 2.

Why not live life on the bleeding edge?

I recently flashed it to an Archlinux ARM system because the Raspberry Debian OS was a little stale for my tastes (it’s latest version on Racket stable was 6.1 - shudders). The OS on boot used about 30Mb of RAM so it sounded like the perfect place to host a bunch of 24/7 bots.

My only concern would be memory usage. Python bot programs are running in their own instances of Python to avoid the GIL, meaning library usage isn’t shared across the programs. Because of that, their memory usage would be insane. After three bots, here’s what my memory looked like:

Music discord

For some reason my Htop on RPI won’t show as a tree at all

It makes sense, but it’s actually not as bad as I thought. Of course graph-bot would use more memory because it uses a crazy amount of libraries - 4.5% of memory comes out to 41Mb of memory used.

The other two aren’t nearly as bad. Dumb-bot uses BeautifulSoup and Requests so it’s memory usage comes out in second at 2.6% (or 23MB). Remind-bot uses no libraries outside of the Discord API and asyncio so that comes out to 2% (18Mb).

Racket is a pretty heavy language when it comes to performance. I made an amateur mistake of doing a “#lang racket” when I first created it. When you include the entire Racket language, it would use up a large percent of memory. I think with that it was close to 5% of memory used. Eventually I trimmed it down to be only “#lang racket/base” which does the bare minimum, imported the necessary libraries to run the threads, and now it’s sitting at 1.3% (11Mb), less than all of the bots.

The only worrisome part is when some bots use up a ton of CPU on one core. The newest inductee graph-bot loves to use CPU to create graphs, which isn’t unexpected. The reason I reduced the complex graph function’s sample points is because it took too long for the asyncio event, so it used 100% of my core before crashing out. But that just comes with the territory of running these on an RPI, oh well.

Moving Forward

I have a couple more plans for Bots the more I keep doing this. It’s been almost a month since I started this project and I’ve been having a ton of fun with it.

Back then, dumb-bot was the only initiate

It’s fun to think that when I have a routine or problem on a daily basis, I can probably factor it out to a Discord chatbot. I’m not sure how many people would be willing to do that, but I love it.

Music Discordant

A few of my upcoming ideas would be:

Music Discord Server

  • a janitor to deal with the flood of bot messages (and other messages)
  • a game bot who creates and handles information and input
  • using Lewis Menelaw’s idea for auto-gif creator (it’s an awesome one)
  • Twitch integration through Twitch’s API
  • a Dota 2 match alert system using DailyDota’s API
  • audio synthesis bot through SuperCollider (maybe?)

I’ve set a few rules for myself when creating and managing Bots, so here’s some guidelines you should follow when creating your own:

MEE6 - The Discord Bot

  • make sure they spout out as little error messages to prevent flooding
  • help messages for functions can optionally be sent to users in PMs
  • for the love of God, always sanitize your inputs
  • clean up leftover data to prevent filling up your host’s storage space
  • have documentation for your bots somewhere

Como Poner El Bot De Musica Discord

With all that said, I’ve got more bots to make.

Похожие материалы:

Coments are closed

Most Viewed Posts

  • Openssl Rsa Key
  • Ios 12.0
  • Google Spreadsheet Combine Data From Multiple Tabs
  • Mocha Tn5250

Scroll to top