для этого тебе потребуется api ключ гугла.
переходишь
сюда, в поисковике пишешь:
Посмотреть вложение 229339
нажимаешь, после нужно включить api
Посмотреть вложение 229340
соответственно, жмёшь "enable", после этого создаёшь проект.
после создания переходишь сюда
Посмотреть вложение 229341
и жмёшь
Посмотреть вложение 229342
после всех действий появится окно с ключом
Посмотреть вложение 229343
ключ понадобится для получения данных с канала с помощью либы
google-api-python-client
устанавливаешь либу
pip install google-api-python-client
и перейдём к коду. для примера я возьму канал overbafer1 (no ad)
Посмотреть вложение 229344
как видно по скриншоту, последнее видео называется "История борьбы с атаками на мой проект: вымогательство,...". будем сравнивать результат кода с ним.
перейдём к самому коду:
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
try:
youtube = build('youtube', 'v3', developerKey='сюда вставляешь ключ, который получил на сайте') #подключение к api
playlist_request = youtube.channels().list(
part='contentDetails',
forUsername='overbafer1' #тут заменишь на название канала, который тебе нужен
) #запрос для получения информации о плейлисте канала
playlist_response = playlist_request.execute()
playlist_id = playlist_response['items'][0]['contentDetails']['relatedPlaylists']['uploads'] #получаем id плейлиста канала
videos_request = youtube.playlistItems().list(
part='snippet',
playlistId=playlist_id,
maxResults=1
) #запрос для получения последнего видео на канале
videos_response = videos_request.execute()
video_title = videos_response['items'][0]['snippet']['title'] #извлекаем информацию о последнем видео
video_url = 'https://www.youtube.com/watch?v=' + videos_response['items'][0]['snippet']['resourceId']['videoId'] #ссылка на последнее видео
print(f'Название: {video_title}\nСсылка: {video_url}') #общий вывод
except HttpError as e:
print(e)
получаем вывод:
Посмотреть вложение 229345
бесконечный цикл, который будет сравнивать последнее видео и делать вывод, если последнее видео не совпадает с записью(костыль в виде json):
сначала создаешь json файл с любым названием, в нём прописываешь:
обновлённый код для питона с циклом в 60 секунд:
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
import json
import time
def youtube():
try:
youtube = build('youtube', 'v3', developerKey='твой апи ключ')
playlist_request = youtube.channels().list(
part='contentDetails',
forUsername='название канала'
)
playlist_response = playlist_request.execute()
playlist_id = playlist_response['items'][0]['contentDetails']['relatedPlaylists']['uploads']
videos_request = youtube.playlistItems().list(
part='snippet',
playlistId=playlist_id,
maxResults=1
)
videos_response = videos_request.execute()
video_title = videos_response['items'][0]['snippet']['title']
video_url = 'https://www.youtube.com/watch?v=' + videos_response['items'][0]['snippet']['resourceId']['videoId']
with open('название твоего жсона.json', 'r') as f:
check_url = json.load(f)
if check_url["last_video_url"] == video_url:
return
check_url["last_video_url"] = video_url
with open('название твоего жсона.json', 'w') as f:
json.dump(check_url, f, ensure_ascii=False, indent=4)
print(f'Название: {video_title}\nСсылка: {video_url}')
except HttpError as e:
print(e)
while True:
youtube()
time.sleep(60)
надеюсь, что подробно описал всё. если есть вопросы - задавай