Вопросы

Получение идентификатора видео 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 ‘}}]}

Читать:
Ошибка потока данных при предоставлении темы pubsub в качестве документа

Что я пытаюсь сделать, так это выделить строку 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

Похожие записи

Кто решает, что входит в установку gem ‹gem_name›, и как вы решаете, какой форк использовать?

admin

flutter: как получить полезную нагрузку push-уведомления из источника, отличного от firebase

admin

Двойной прыжок спрайта Pygame

admin

«Нет модуля с именем ‘_portaudio’: решение не найдено

admin

Symfony4: изображение не может быть сохранено

admin

ng serve не открывает браузер (хром) для локального хоста на правильном порту

admin