Как исключить архивированные прямые трансляции, но сохранить премьеры, которые появляются в папке /videos?Python

Программы на Python
Anonymous
Как исключить архивированные прямые трансляции, но сохранить премьеры, которые появляются в папке /videos?

Сообщение Anonymous »

Я пытаюсь сопоставить общедоступную вкладку «Видео» канала. Я хочу исключить архивные прямые трансляции и сохранить премьеры, которые появляются в /videos.
Эти два общедоступных видео воспроизводят проблему:
  • IcZxVrRrzcM
  • 6-qDqVXDZbY
MRE:

Код: Выделить всё

import requests

YT_API_KEY: str = ""
VIDEO_URL = "https://www.googleapis.com/youtube/v3/videos"

for video_id in ["IcZxVrRrzcM", "6-qDqVXDZbY"]:
resp = requests.get(
VIDEO_URL,
params={
"part": "snippet,liveStreamingDetails",
"id": video_id,
"key": YT_API_KEY,
},
timeout=30,
).json()

video = resp["items"][0]
print(
video_id,
video["snippet"].get("liveBroadcastContent"),
"liveStreamingDetails" in video,
)
Я получаю один и тот же ответ от обоих:

Код: Выделить всё

IcZxVrRrzcM none True
6-qDqVXDZbY none True
Но если вы посмотрите https://www.youtube.com/@LiquidZulu/videos:
  • IcZxVrRrzcM => премьерное видео, которое появляется на вкладке /videos.
  • 6-qDqVXDZbY => прямая трансляция, которая не отображается на вкладке /videos. tab.
Я ожидал одного четкого сигнала API на вопрос: «Это относится к вкладке «Видео»?», но liveBroadcastContent и liveStreamingDetails, похоже, не отличают архивные прямые трансляции от премьер.
Есть ли для этого официальное поле API данных YouTube или сопоставление вкладки «Видео» с API данных Youtube невозможно?

Вернуться в «Python»