Функция построения API данных YouTube не работает - PullRequest
0 голосов
/ 22 апреля 2020

друзей.

Вчера я использовал приведенный ниже python фрагмент кода для получения некоторых комментариев к видео на YouTube:

!pip install --upgrade google-api-python-client
import os
import googleapiclient.discovery

DEVELOPER_KEY = "my_key"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"


youtube = googleapiclient.discovery.build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
youtube

Кажется, что функция сборки неожиданно не работает , Я даже обновил API, но в Google Colab я получаю следующее сообщение об ошибке:

UnknownApiNameOrVersion                   Traceback (most recent call last)
<ipython-input-21-064a9ae417b9> in <module>()
     13 
     14 
---> 15 youtube = googleapiclient.discovery.build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
     16 youtube
     17 

1 frames
/usr/local/lib/python3.6/dist-packages/googleapiclient/discovery.py in build(serviceName, version, http, discoveryServiceUrl, developerKey, model, requestBuilder, credentials, cache_discovery, cache, client_options)
    241                 raise e
    242 
--> 243     raise UnknownApiNameOrVersion("name: %s  version: %s" % (serviceName, version))
    244 
    245 

UnknownApiNameOrVersion: name: youtube  version: V3

Если кто-то может помочь. Я использую этот тип аутентификации, потому что я не знаю, чтобы поместить файл учетных данных в Google Drive и открыть его в Colab. Но это сработало вчера:

Результаты вчерашнего пробега

Большое спасибо заранее. И извините за все, я новичок в сообществе.

С уважением

1 Ответ

2 голосов
/ 23 апреля 2020

Проблема на стороне сервера, как обсуждено здесь . Пока проблема с сервером не будет устранена, это решение может помочь (как предложено @ busunkim96 ):

Сначала загрузите этот файл json: https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest

Тогда:

import json
from googleapiclient import discovery

# Path to the json file you downloaded:
path_json = '/path/to/file/rest'

with open(path_json) as f:
    service = json.load(f)

# Replace with your actual API key:
api_key = 'your API key'

yt = discovery.build_from_document(service,
                                   developerKey=api_key)

# Make a request to see whether this works:
request = yt.search().list(part='snippet',
                           channelId='UCYO_jab_esuFRV4b17AJtAw',
                           publishedAfter='2020-02-01T00:00:00.000Z',
                           publishedBefore='2020-04-23T00:00:00.000Z',
                           order='date',
                           type='video',
                           maxResults=50)
response = request.execute()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...