0 / 0 / 0
Регистрация: 26.09.2021
Сообщений: 1

Дискорд бот

26.09.2021, 15:03. Показов 1433. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть код для включения песни для дискорд бота. Я хочу в него добавить функцию поиска песни по названию. Думал это сделать через проверку валидности URL. Видимо думал неправильно. Подскажите, пожалуйста, как исправить этот код
Код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
async def play(video_link, voice, message):
    ydl_opts = {'format': 'bestaudio', 'noplaylist': 'True'}
    FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'}
    with YoutubeDL(ydl_opts) as ydl:
        info = ydl.extract_info(video_link, download=False)
    print(info.get('title'))
    URL = info['formats'][0]['url']
    voice.play(FFmpegPCMAudio(URL, **FFMPEG_OPTIONS),
               after=lambda x=None: new_audio(voice, message))
    if URL != info['formats'][0]['url']:
        query_string = urllib.parse.urlencode({
            "search_query": search
        })
        html_content = urllib.request.urlopen(
            "http://www.youtube.com/results?" + query_string
        )
        search_results = re.findall(r"watch\?v=(\S{11})", html_content.read().decode())
        voice.play(FFmpegPCMAudio("http://www.youtube.com/watch?v=" + search_results[0], **FFMPEG_OPTIONS),
                   after=lambda x=None: new_audio(voice, message))
    voice.play(FFmpegPCMAudio(URL, **FFMPEG_OPTIONS), after=lambda x=None: new_audio(voice, message))
    if message.content.startswith('!p') or message.content.startswith('!play'):
        embedVar = discord.Embed(title="__Сейчас играет__", description="", color=0xFF0000)
        embedVar.add_field(name="**Название**", value=info.get('title'), inline=False)
        embedVar.add_field(name="**Длительность**", value=info.get('duration'), inline=True)
        embedVar.add_field(name="**Дата загрузки**", value=info.get('upload_date'), inline=True)
        embedVar.set_thumbnail(url="https://s1.********************/uploads/images/2021/09/9ebbb544a1d1d259e490ba7afc4f3a03.png")
        embedVar.set_footer(text="By QGBot")
        embedVar.set_author(name=message.author.display_name, icon_url=message.author.avatar_url)
    await message.channel.send(embed=embedVar)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@client.event
async def on_message(message):
    if message.author == client.user:
        return
 
    if message.content.startswith('!join'):
        await join(message)
 
    elif message.content.startswith('!pause') or message.content.startswith('!pa'):
        voice = get(client.voice_clients, guild=message.channel.guild)
        await message.channel.send('**Паузим**')
        await pause(voice, message)
    elif message.content.startswith('!play') or message.content.startswith('!p'):
        await join(message)
        voice = get(client.voice_clients, guild=message.channel.guild)
        msg = message.content[1:].split()
        video_link = msg[1]
        if not voice.is_playing():
            await play(video_link, voice, message)
        else:
            await message.channel.send('**^^ Добавлено в очередь ^^**')
            queue.append(video_link)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.09.2021, 15:03
Ответы с готовыми решениями:

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

Реакция в дискорд
ребят, может кто объяснить, как делать бота для прожатия реакций в дискорде?

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

1
16 / 10 / 6
Регистрация: 15.08.2021
Сообщений: 60
27.09.2021, 11:55
Как вариант использовать api от google (не самая лучшая идея) или устанавливаем youtube-search (https://pypi.org/project/youtube-search/)

Пример youtube-search:
Python
1
2
3
4
5
6
7
import json
from youtube_search import YoutubeSearch
 
results = YoutubeSearch('search terms', max_results=10).to_json()
data = json.loads(results)
 
print(data)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.09.2021, 11:55
Помогаю со студенческими работами здесь

Ошибка в запуске дискорд бота, discord.py
Сделал бота на discord.py Запускаю, а он выдает ошибку Traceback (most recent call last): File...

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

Дискорд бот
Здравствуйте! Решил я значит написать discord бота, и стало очень интересно что я могу общаться через бота, при помощи махинации с...

Музыкальный дискорд бот
в js практичеки не шарю, подскажите пожалуйста почему код не работает, бот запускается но на команды не реагирует код: const Discord...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru