Обязательное условие: API YouTube
Google предоставляет разработчику большой набор API на выбор. Каждая услуга, предоставляемая Google, имеет соответствующий API. Будучи одним из них, API данных YouTube очень прост в использовании и предоставляет такие функции, как:
- Поиск видео
- Обрабатывайте видео, например, извлекайте информацию о видео, вставляйте видео, удаляйте видео и т.д.
- Обрабатывайте подписки, например, перечисляйте все подписки, вставляйте или удаляйте подписку и т. д.
В этой статье мы обсудим, как извлекать комментарии YouTube и отвечать на них с помощью Google YouTube API на Python.
Понять пошаговую реализацию:
- Получение результатов видео с YouTube
- Здесь мы будем использовать потоки комментариев, список, метод выполнения, он выдаст список комментариев и ответов
- Внутри метода списка передайте фрагмент и ответы в свойстве part и в свойстве VideoID передайте идентификатор видео URL-адреса
# creating youtube resource object
youtube = build('youtube','v3',
developerKey="Enter API Key")
# retrieve youtube video results
video_response=youtube.commentThreads().list(
part='snippet,replies',
videoId="Enter Video ID"
).execute()
- Повторите каждый видео ответ и извлеките комментарии и ответы
- Данные поступают в формате словаря, у каждого комментария есть номер количества ответов, если число ответов равно нулю, это означает, что на этот комментарий ответа нет
- если количество больше нуля, то мы повторяем каждый ответ и получаем текст.
- nextPageToken содержит следующие данные, здесь мы проверяем, не имеет ли nextPageToken значения, это означает, что значение равно нулю, цикл заканчивается, иначе цикл будет продолжаться.
Ниже приводится полная реализация:
from googleapiclient.discovery import build
api_key = 'API KEY'
def video_comments(video_id):
# empty list for storing reply
replies = []
# creating youtube resource object
youtube = build('youtube', 'v3',
developerKey=api_key)
# retrieve youtube video results
video_response=youtube.commentThreads().list(
part='snippet,replies',
videoId=video_id
).execute()
# iterate video response
while video_response:
# extracting required info
# from each result object
for item in video_response['items']:
# Extracting comments
comment = item['snippet']['topLevelComment']['snippet']['textDisplay']
# counting number of reply of comment
replycount = item['snippet']['totalReplyCount']
# if reply is there
if replycount>0:
# iterate through all reply
for reply in item['replies']['comments']:
# Extract reply
reply = reply['snippet']['textDisplay']
# Store reply is list
replies.append(reply)
# print comment with list of reply
print(comment, replies, end = '\n\n')
# empty reply list
replies = []
# Again repeat
if 'nextPageToken' in video_response:
video_response = youtube.commentThreads().list(
part = 'snippet,replies',
videoId = video_id
).execute()
else:
break
# Enter video id
video_id = "Enter Video ID"
# Call function
video_comments(video_id)
Выход:
Давайте проверим результаты: