Задать вопрос
@Vasiliy009

Не приходит уведомление о новых роликах в дискорд канале в боте discord.py?

Сделал бота который оповещает уведомление о новых роликах, проверку канала на наличие новых роликов сделал 1 минуту, ждал 5 минут, нечего не пришло

pip install discord.py google-api-python-client google-auth-httplib2 google-auth-oauthlib discord.py
Библиотеки которые использовал

import asyncio
import discord
from discord.ext import commands, tasks
from googleapiclient.discovery import build
from datetime import datetime, timedelta
import string

DISCORD_CHANNEL_ID = ид канала дискорд
# Ключ API YouTube
YOUTUBE_API_KEY = 'Ключ Api'

# ID канала YouTube, который вы хотите отслеживать
YOUTUBE_CHANNEL_ID = 'Ид канал'

intents=intents=discord.Intents.all()
client = commands.Bot(command_prefix='!', intents = intents)
@tasks.loop(minutes=1)  # Проверяем каждые 1 минут
async def check_youtube_channel():
    youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY)
    
    # Получаем информацию о последнем видео/стриме на канале
    request = youtube.activities().list(
        part='snippet,contentDetails',
        channelId=YOUTUBE_CHANNEL_ID,
        maxResults=1,
        publishedAfter=(datetime.utcnow() - timedelta(minutes=1)).isoformat()  # Получаем данные за последние 1 минут
    )
    response = request.execute()

    if 'items' in response and len(response['items']) > 0:
        activity = response['items'][0]
        activity_type = activity['snippet']['type']

        if activity_type == 'upload':
            video_id = activity['contentDetails']['upload']['videoId']
            video_url = f'https://www.youtube.com/watch?v={video_id}'
            video_title = activity['snippet']['title']

            # Отправляем сообщение в указанный Discord канал о новом видео
            channel = client.get_channel(DISCORD_CHANNEL_ID)
            await channel.send(f'Новое видео: {video_title}\n{video_url}')
        elif activity_type == 'liveBroadcast':
            live_url = f'https://www.youtube.com/watch?v={activity["contentDetails"]["liveBroadcastId"]}'
            live_title = activity['snippet']['title']

            # Отправляем сообщение в указанный Discord канал о новом стриме
            channel = client.get_channel(DISCORD_CHANNEL_ID)
            await channel.send(f'Новый стрим: {live_title}\n{live_url}')
  • Вопрос задан
  • 100 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Иронично, один сгенерил код через gpt, второй ответ.

В коде написан невероятный бред, поэтому он и не работает. Исправлять в нём нечего и я сомневаюсь что вы знакомы хотя бы с базовым синтаксисом языка. Советую обратиться на фриланс.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы