【问题标题】:YouTube reporting API reports are all blankYouTube 报告 API 报告均为空白
【发布时间】:2019-12-09 20:45:22
【问题描述】:

我为一个 YouTube 频道创建了一组 YouTube 报告工作。每天按计划创建和运行作业。但是,当我去下载作业时,它们都是空白的。

这就是我使用 API 进行身份验证的方式:

def authenticate_from_credentials(API_SERVICE_NAME, API_VERSION):
        youtube_client_id = os.environ['youtube_client_id']
        youtube_client_secret = os.environ['youtube_client_secret']
        youtube_refresh_token = os.environ['youtube_refresh_token']
        credentials = client.OAuth2Credentials(
            access_token=None,
            client_id=youtube_client_id,
            client_secret=youtube_client_secret,
            refresh_token=youtube_refresh_token,
            token_expiry=None,
            token_uri='https://oauth2.googleapis.com/token',
            user_agent=None,
            revoke_uri=None
        )
        youtube_reporting = build(API_SERVICE_NAME, API_VERSION, credentials=credentials)
        return youtube_reporting

这是我用来创建工作的方法:

# Call the YouTube Reporting API's jobs.create method to create a job.
def create_reporting_job(youtube_reporting, report_type_id, name):
  # Provide keyword arguments that have values as request parameters.
    reporting_job = youtube_reporting.jobs().create(
        body=dict(
          reportTypeId=report_type_id,
          name=name
        ),
      ).execute()
    print ('Reporting job "%s" created for reporting type "%s" at "%s"'
           % (reporting_job['name'], reporting_job['reportTypeId'],
              reporting_job['createTime']))

我是这样认证的:

youtube_reporting=authenticate_from_credentials('youtubereporting','v1')

我会创建这样的工作:

create_reporting_job(youtube_reporting,"channel_combined_a2","Channel Combined a2")

我不确定这里有什么问题。该频道确实有内容和订阅者,因此报告不应为空。我认为凭据可能存在问题,或者可能与报告相关联的渠道错误,因为开发人员的 Google 帐户与内容所有者不同。但我检查了与我正在使用的 Oauth 凭据关联的通道,它是正确的通道。

为什么我的报告可能是空的,我该如何解决这个问题?

【问题讨论】:

    标签: youtube-api youtube-analytics-api


    【解决方案1】:

    我遇到了同样的问题,问题是您需要等待几个小时才能在后端生成报告,此时重新查询报告将显示结果。

    在第 3 步的https://developers.google.com/youtube/reporting/v1/reports 上有一个微妙的提及此延迟:

    对 jobs.create 方法的 API 响应包含一个 Job 资源, 它指定唯一标识作业的 ID。 你可以 在作业完成后 48 小时内开始检索报告 被创建,第一个可用的报告将是当天 你安排了工作。

    这很令人困惑。

    【讨论】: