Получение идентификатора видео YouTube из пользовательского поискового запроса с помощью YouTube API

Здесь очень новичок. В настоящее время я работаю над проектом, в котором пользователь может ввести поисковый запрос и с помощью API данных YouTube v3 получить идентификатор видео. Этот идентификатор видео затем используется для создания URL-адреса, который я затем использую для загрузки видео на свой компьютер. Вот что я использую для этого. (Игнорируйте библиотеки, которые я импортировал, я почищу их позже)

from __future__ import print_function import pathlib from pathlib import Path import pytube import os import os.path import googleapiclient import google_auth_httplib2 import google_auth_oauthlib from googleapiclient.discovery import build from google_auth_oauthlib.flow import InstalledAppFlow from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from pytube import YouTube import os import google_auth_oauthlib.flow import googleapiclient.discovery import googleapiclient.errors scopes = [«https://www.googleapis.com/auth/youtube.force-ssl»] userVideoChoice=input(«Please enter the title of the song you want to use. «) def main(): os.environ[«OAUTHLIB_INSECURE_TRANSPORT»] = «1» api_service_name = «youtube» api_version = «v3» client_secrets_file = («CLIENT SECRET FILE HERE») # Get credentials and create an API client flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file( client_secrets_file, scopes) credentials = flow.run_console() youtube = googleapiclient.discovery.build( api_service_name, api_version, credentials=credentials) request = youtube.search().list( part=»snippet», maxResults=1, q=userVideoChoice ) response = request.execute() print(response) if __name__ == «__main__»: main()

Итак, для поискового запроса Youtube Rewind 2018 API Youtube вернет следующее:

{‘kind’: ‘youtube # searchListResponse’, ‘etag’: ‘HEbvpHREbTpRzcvryx2ubH2tnDo’, ‘nextPageToken’: ‘CAEQAA’, ‘regionCode’: ‘US’, ‘pageInfo’: {‘totalResults’: 1000000, ‘: результаты 1}, ‘items’: [{‘kind’: ‘youtube # searchResult’, ‘etag’: ‘VX4FEWIWXekE8cUP4SCMNhGl7Ek’, ‘id’: {‘kind’: ‘youtube # video’, ‘videoId’: ‘ YbJOTdZBX1g ‘},’ snippet ‘: {‘ publishedAt ‘:’ 2018-12-06T17: 58: 29Z ‘,’ channelId ‘:’ UCBR8-60-B28hp2BmDPdntcQ ‘,’ title ‘:’ YouTube Rewind 2018: Все контролируют перемотку | #YouTubeRewind ‘,’ description ‘: YouTube Rewind 2018. Празднование видео, людей, музыки и моментов, которые определили 2018 год. #YouTubeRewind Это не было бы Rewind без создателей: …,’ thumbnail ‘: {‘ default ‘: {‘url’: ‘https://i.ytimg.com/vi/YbJOTdZBX1g/default.jpg’, ‘width’: 120, ‘height’: 90}, ‘medium’: {‘url’: ‘https: //i.ytimg.com/vi/YbJOTdZBX1g/mqdefault.jpg ‘,’ width ‘: 320,’ height ‘: 180},’ high ‘: {‘ url ‘:’ https://i.ytimg.com/ vi / YbJOTdZBX1g / hqdefault.jpg ‘,’ width ‘: 480,’ height ‘: 360}},’ channelTitle ‘:’ YouTube ‘,’ liveBroadcastContent ‘:’ none ‘,’ publishTime ‘:’ 2018-12-06T17: 58: 29Z ‘}}]}

Что я пытаюсь сделать, так это выделить строку videoId, которую я затем использую для сборки URL-адреса. Я чувствую, что есть довольно простое решение, которое я не вижу как начинающий программист. Могу ли я получить помощь в выделении этой части, которая мне нужна для продолжения моего проекта?

Заранее благодарю вас за вашу помощь.

Можете ли вы добавить печать (введите (ответ)) и сказать мне, что он выводит   —  person AFL0831    schedule 18.06.2021

Он у меня уже внизу, строка 53. print (response).   —  person AFL0831    schedule 18.06.2021

Нет, мне нужен тип ответа, а не его содержание. Другими словами, вывод print(type(response)), а не только print(response)   —  person AFL0831    schedule 18.06.2021

В дополнение к обычному выводу я также вижу в конце ‹class dict›. Извините за путаницу.   —  person AFL0831    schedule 18.06.2021

Источник: ledsshop.ru

Стиль жизни - Здоровье!