【问题标题】:YouTube analytics API rows emptyYouTube 分析 API 行为空
【发布时间】:2018-06-01 16:13:15
【问题描述】:

我知道这个问题之前已经回答过,但我似乎有一个不同的问题。直到几天前,我对 YouTube 的查询从未出现过问题。但是,现在,每次我查询任何视频的数据时,实际视频数据的行都会以单个空数组的形式返回。

这是我的完整代码:

# -*- coding: utf-8 -*-

import os
import google.oauth2.credentials
import google_auth_oauthlib.flow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from google_auth_oauthlib.flow import InstalledAppFlow
import pandas as pd
import csv


SCOPES = ['https://www.googleapis.com/auth/yt-analytics.readonly']

API_SERVICE_NAME = 'youtubeAnalytics'
API_VERSION = 'v2'
CLIENT_SECRETS_FILE = 'CLIENT_SECRET_FILE.json'

def get_service():
  flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES)
  credentials = flow.run_console()
  #builds api-specific service
  return build(API_SERVICE_NAME, API_VERSION, credentials = credentials)

def execute_api_request(client_library_function, **kwargs):
  response = client_library_function(
    **kwargs
  ).execute()

  print(response)

columnHeaders = []

# create a CSV output for video list    
csvFile = open('video_result.csv','w')
csvWriter = csv.writer(csvFile)
csvWriter.writerow(["views","comments","likes","estimatedMinutesWatched","averageViewDuration"])


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==UCU_N4jDOub9J8splDAPiMWA',

      #needs to be of form YYYY-MM-DD
      startDate='2018-01-01',
      endDate='2018-05-01',
      metrics='views,comments,likes,dislikes,estimatedMinutesWatched,averageViewDuration',
      dimensions='day',
      filters='video==ZeY6BKqIZGk,YKFWUX9w4eY,bDPdrWS-YUc'
      )

【问题讨论】:

    标签: google-apis-explorer youtube-analytics-api


    【解决方案1】:

    你可以在Reports: Query首页看到你需要使用新的作用域:

    https://www.googleapis.com/auth/youtube.readonly
    

    而不是旧的:

    https://www.googleapis.com/auth/yt-analytics.readonly 
    

    更改范围后,执行重新身份验证(删除旧凭据)以使新范围生效。

    this forum 也证实了这一点。

    【讨论】:

    【解决方案2】:

    如果您在 oAuth2 授权期间选择了错误的帐户,则可能会发生其中一个事故。例如,您可能必须在第一个屏幕上获取“帐户”,然后在第二个屏幕上(授权期间)使用“品牌帐户”,而不是第一步中的主帐户,该帐户也在第二步的列表中。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,用https://www.googleapis.com/auth/youtube.readonly 范围替换不起作用。 (即使在 API 网页中发出请求,它也会返回空行。) 相反,在我的情况下,使用 https://www.googleapis.com/auth/youtube 范围可以正常工作。

      【讨论】:

        猜你喜欢
        • 2014-08-18
        • 2023-04-08
        • 2015-12-30
        • 2012-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-08
        相关资源
        最近更新 更多