YouTube 实时分析(观看次数、总观看时长)

Mik*_*ith 5 youtube-api

我需要获取 YouTube LIVE 事件的指标(主要是总实时观看次数和总/平均实时观看时长)。我在使用 v2 和 v3 API 时都遇到了问题。

我可以很好地安排和流式传输 API,并且我想在广播结束后立即提取分析以汇总一些报告。

如何从 v3 API 获得总的或平均的实时视图持续时间?

或者,如何正确查询实时事件的 v2 报告 API 以获取非零数据?

有关当前尝试的更多详细信息

以下是我尝试过的查询类型:

YouTube v3 API:

https://www.googleapis.com/youtube/v3/videos?
    id={live_video_id}&
    part={"statistics,liveStreamingDetails"}&
    access_token={access_token}

{
 "kind": "youtube#videoListResponse",
 "etag": "...",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#video",
   "etag": "...",
   "id": "..",
   "statistics": {
    "viewCount": "38",
    "likeCount": "1",
    "dislikeCount": "0",
    "favoriteCount": "0",
    "commentCount": "0"
   },
   "liveStreamingDetails": {
    "actualStartTime": "2018-10-11T12:01:23.000Z",
    "actualEndTime": "2018-10-11T14:00:12.000Z",
    "scheduledStartTime": "2018-10-11T12:00:00.000Z",
    "scheduledEndTime": "2018-10-11T14:00:00.000Z"
   }
  }
 ]
}
Run Code Online (Sandbox Code Playgroud)

我可以在此处获取 statistics.viewCount 计数,但无法获取观看的平均时间/总时间。

YouTube v2 报告 API:

https://youtubeanalytics.googleapis.com/v2/reports?
    startDate={"2017-01-01"}&
    endDate={time.Now().Add(24*time.Hour).Format("YYYY-MM-DD")}&
    filters={"video==" + live_video_id}&
    metrics={"views,estimatedMinutesWatched"}&
    ids={"channel==MINE"}&
    access_token={accessToken}

{
  "kind": "youtubeAnalytics#resultTable",
  "columnHeaders": [
    {
      "name": "views",
      "columnType": "METRIC",
      "dataType": "INTEGER"
    },
    {
      "name": "estimatedMinutesWatched",
      "columnType": "METRIC",
      "dataType": "INTEGER"
    }
  ],
  "rows": [
    [
      0,
      0
    ]
  ]
}
Run Code Online (Sandbox Code Playgroud)

这个查询似乎提供了我需要的指标,但它全是 0,即使 v3 返回非零视图。

Sha*_*shy 2

TL;DR YouTube Reports API v2 不会经常更新不太受欢迎的直播流的指标。

这就是我得出这个结论的原因......

views, estimatedMinutesWatched从我的频道中获取了一个旧视频。虽然这两个 API 都有效,但YouTube Reports API v2返回的观看次数并不准确,并且落后于YouTube Data API v3

接下来,我进行了直播(未公开),并与其他几个帐户一起参与了直播。这些互动(例如订阅、观看)均未显示在Reports API v2和 YouTube Studio 分析中。这证明YouTube Reports API v2"rows": [[0,0]]返回的结果是完全正常的。但令人惊讶的是,正如您所指出的, Data API v3确实返回了正确的指标。

对于拥有大量观众和参与度的直播,Reports API 可能工作得非常好。

由于数据 API不提供任何类型的观看时间,因此最好的选择是结合使用这两个 API,数据 API v3可以获取基本指标(例如views, likes,..报告 API v2)来获取更复杂的指标。

提示:如果您有兴趣稍后显示直播流指标,可以使用该dimension=liveOrOnDemand参数并将指标LIVE单独过滤到流中。