Скрипт YouTube Analytics API работает только для channel_id = MINE - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть скрипт на python, который извлекает статистику для моего канала YouTube.Я использовал этот пример кода здесь .Я загрузил секретный ключ клиента, авторизованный API-интерфейс YouTube Analytics и смог увидеть некоторые данные в ответе.

Теперь я пытаюсь получить данные для другого канала YouTube.

Я знаюМне нужен поток OAuth для получения согласия пользователя, но если я пытаюсь изменить код по ссылке выше и использовать другой channel_id вместо MINE, я получаю следующую ошибку:

Traceback (most recent call last):
  File "test_targeted_query.py", line 45, in <module>
    sort='day'
  File "test_targeted_query.py", line 26, in execute_api_request
    **kwargs
  File "/Users/giacomo.vannucchi/miniconda3/envs/test_yt_api/lib/python2.7/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/Users/giacomo.vannucchi/miniconda3/envs/test_yt_api/lib/python2.7/site-packages/googleapiclient/http.py", line 851, in execute
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://youtubeanalytics.googleapis.com/v2/reports?sort=day&startDate=2017-01-01&endDate=2017-12-31&dimensions=day&ids=channel%3D%3DUCU-d47GBZwqo1zfB-OTu-1w&metrics=views%2Clikes&alt=json returned "Forbidden">

КогдаЯ запускаю скрипт, он перенаправляет на страницу Google OAuth и, кажется, работает правильно, но затем я получаю сообщение об ошибке при выполнении запроса.Та же самая ошибка происходит и с API Explorer .

. Внесенный мною пример кода я должен использовать определенный channel_id в поле идентификаторов вместо ids='channel==MINE', как показано ниже.:

if __name__ == '__main__':
  # Disable OAuthlib's HTTPs verification when running locally.
  # *DO NOT* leave this option enabled when running in production.
  os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'

  youtubeAnalytics = get_service()

  execute_api_request(
      youtubeAnalytics.reports().query,
      ids='channel==XXXXXXXXXXXXXXXX',
      startDate='2012-01-01',
      endDate=today,
      metrics='views,likes',
      dimensions='day'
  )

Ошибка, похоже, связана с проблемой разрешения, но я не уверен, что я делаю неправильно, потому что пользователь авторизует приложение.

Может ли кто-нибудь указать мне правильное направление или предоставить некоторые ресурсы, чтобы понять, как построить этот поток?

Можно ли как-нибудь получить аналитические данные от любого пользователя (channel_id), используя OAuth?

...