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