Сделал бота который оповещает уведомление о новых роликах, проверку канала на наличие новых роликов сделал 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}')