You are currently viewing Как извлечь комментарии YouTube с помощью API Youtube – Python

Как извлечь комментарии YouTube с помощью API Youtube – Python

Обязательное условие: 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)

Выход:

Давайте проверим результаты: