You are currently viewing Как извлечь информацию об изображениях из плейлиста YouTube с помощью Python?

Как извлечь информацию об изображениях из плейлиста YouTube с помощью Python?

Обязательное условие: API YouTube

Google предоставляет разработчику большой набор API на выбор. Каждая услуга, предоставляемая Google, имеет соответствующий API. Будучи одним из них, API данных YouTube очень прост в использовании и предоставляет такие функции, как:

  • Поиск видео
  • Обрабатывайте видео, например, извлекайте информацию о видео, вставляйте видео, удаляйте видео и т. д.
  • Обрабатывайте подписки, например, перечисляйте все подписки, вставляйте или удаляйте подписку.
  • Извлеките информацию о комментариях, таких как ответы на конкретный комментарий, указанный родительским именем и т. д.

В этой статье мы узнаем, как извлечь информацию об изображении отдельного видео из плейлиста YouTube с помощью Python

Информация об изображении, которую мы будем получать:

  • URL-адрес изображения
  • Ширина и высота изображения
  • Разный размер изображений

В видео на YouTube есть пять различных миниатюр, которые:

  • По умолчанию
  • высокий
  • maxres
  • Средний
  • стандарт

Подход:

  • Мы будем использовать метод build (сборки), list (списка), execute (выполнения), он предоставит подробную информацию о списке воспроизведения
  • Внутри метода списка передайте данные содержимого в свойстве part, а в свойстве playlistId передайте playlistId или PlaylistURL
  • Передайте значение 50 в maxResults, а в pageToken изначально передайте значение None
nextPageToken=None

# creating youtube resource object
youtube = build('youtube','v3',developerKey='Enter API Key')

while True:

# retrieve youtube video results
pl_request = youtube.playlistItems().list(
	part='snippet',
	playlistId=playlistId.get(),
	maxResults=50,
	pageToken=nextPageToken
)
pl_response = pl_request.execute()

nextPageToken = pl_response.get('nextPageToken')

if not nextPageToken:
	break
  • Повторите все ответы и извлеките информацию об изображении

Ниже приводится реализация:

# import module
from googleapiclient.discovery import build

def playlist_video_links(playlistId):

	nextPageToken=None
	
	# creating youtube resource object
	youtube = build('youtube','v3',developerKey='Enter API Key')
	
	while True:

		# retrieve youtube video results
		pl_request = youtube.playlistItems().list(
			part='snippet',
			playlistId=playlistId,
			maxResults=50,
			pageToken=nextPageToken
			)
		pl_response = pl_request.execute()

		# Iterate through all response and fetch Image Information
		for item in pl_response['items']:

			thumbnails = item['snippet']['thumbnails']

			if 'default' in thumbnails:
				default = thumbnails['default']
				print(default)

			if 'high' in thumbnails:
				high = thumbnails['high']
				print(high)

			if 'maxres' in thumbnails:
				maxres = thumbnails['maxres']
				print(maxres)

			if 'medium' in thumbnails:
				medium = thumbnails['medium']
				print(medium)

			if 'standard' in thumbnails:
				standard = thumbnails['standard']
				print(standard)
			print("\n")
			
		nextPageToken = pl_response.get('nextPageToken')

		if not nextPageToken:
			break

playlist_video_links('PLsyeobzWxl7r2ukVgTqIQcl-1T0C2mzau')

Выход: