12

文档说:

“liveChatId 参数指定将返回其消息的聊天 ID。与广播关联的实时聊天 ID 在 liveBroadcast 资源的 snippet.liveChatId 属性中返回。”

但是当使用 APIs Explorer 和 youtube.liveBroadcasts.list 来获取 liveBroadcast 的片段时,返回的结果中没有 liveChatId 属性。

我正在使用以下 URI(省略键):

https://www.googleapis.com/youtube/v3/liveBroadcasts?part=snippet&mine=true

我究竟做错了什么?

这是响应(一些值替换为...):

{
 "kind": "youtube#liveBroadcastListResponse",
 "etag": "...",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 5
 },
 "items": [
  {
   "kind": "youtube#liveBroadcast",
   "etag": "...",
   "id": "...",
   "snippet": {
    "publishedAt": "2016-04-18T17:04:24.000Z",
    "channelId": "...",
    "title": "...",
    "description": "...",
    "thumbnails": {
     "default": {
      "url": "...",
      "width": 120,
      "height": 90
     },
     "medium": {
      "url": "...",
      "width": 320,
      "height": 180
     },
     "high": {
      "url": "...",
      "width": 480,
      "height": 360
     },
     "standard": {
      "url": "...",
      "width": 640,
      "height": 480
     },
     "maxres": {
      "url": "...",
      "width": 1280,
      "height": 720
     }
    },
    "scheduledStartTime": "1970-01-01T00:00:00.000Z",
    "actualStartTime": "2016-04-18T17:04:24.250Z",
    "isDefaultBroadcast": false
   }
  }
 ]
}

在请求时,流上还发生了一个活跃的对话。

显然,使用“Stream now”创建的直播不包含 liveChatId,即使它们包含实时聊天。

有没有办法获取“立即流”直播的 liveChatId?

4

3 回答 3

13

这是一篇相当老的帖子,但是当我在互联网上搜索答案但找不到答案时,我希望有人觉得这很有帮助。

要获取不属于您的实时事件的 liveChatId,您可以执行以下操作:

首先,获取videoId

response.items[0].id.videoId

然后获取 liveStreamingDetails

buildApiRequest('GET',
        '/youtube/v3/videos', {
            'id': videoID,
            'part': 'snippet,contentDetails,statistics,liveStreamingDetails'
        });

现在您可以通过以下方式从上面的响应中获取 liveChatId:

response.items[0].liveStreamingDetails.activeLiveChatId
于 2017-07-17T12:50:14.467 回答
3

有没有办法获取“立即流”直播的 liveChatId?

是的你可以。我有一个自动化系统,它只将这个设置用于“立即流”流。

从我所见,我所做的唯一不同的事情是,在 API URI 中指定broadcastType=all或指定。broadcastType=persistent

您会注意到我的流是默认流,但不一定非要如此。事实上,基本上LiveStream端点唯一有用的方面就是.status.configurationIssues信息。(甚至streamName摄取地址都不匹配)

这就是我将两个端点关联起来的方式。也许您可以使用此模板填写一些空白。(所有字符串随机化并thumbnails删除部分)

直播

URI:https://www.googleapis.com/youtube/v3/liveStreams/?part=status,snippet&default=true

回复:  

{
    "kind": "youtube#liveStreamListResponse",
    "etag": "\"j1yhvAPYkjsoF8yjoVGsTlIFzCS/rqgpDvaMrWOPqUrLPxJd4XUFoKg\"",
    “页面信息”:{
        “总结果”:1,
        “结果每页”:5
    },
    “项目”: [
    {
        "kind": "youtube#liveStream",
        "etag": "\"j1yhvAPYkjsoF8yjoVGsTlIFzCS/SRutyOE9apA9K1qAdh2s9ZYE-Dp\"",
        "id": "e5LT2xEURi9BQzf2rLe5eB3325081929219850",   <-- liveBroadcasts .boundStreamId
        “片段”:{
            “发布时间”:“2016-09-05T23:21:33.000Z”,
            "channelId": "QIr0IE1wRTRj2SUku4eFj0mK",
            "title": "默认流",
            “描述”: ””,
            “isDefaultStream”:真
        },
        “地位”: {
            "streamStatus": "活动",
            “健康状况”: {
                “状态”:“好”
            }
        }
    }
    ]
}

直播:

URI:https://www.googleapis.com/youtube/v3/liveBroadcasts/?part=status,contentDetails,snippet,id&broadcastStatus=active&broadcastType=persistent

回复:

{
    "kind": "youtube#liveBroadcastListResponse",
    "etag": "\"j1yhvAPYkjsoF8yjoVGsTlIFzCS/MFvQunCBDdqlkhPMness6LN1zao\"",
    “页面信息”:{
        “总结果”:1,
        “结果每页”:5
    },
    “项目”: [
    {
        "kind": "youtube#liveBroadcast",
        "etag": "\"j1yhvAPYkjsoF8yjoVGsTlIFzCS/mK_CAQ9rrVulNXbKbeIveFnQPd8\"",
        "id": "eXrevq9RzVQ",
        “片段”:{
            “发布时间”:“2017-05-07T16:58:05.000Z”,
            "channelId": "QIr0IE1wRTRj2SUku4eFj0mK",
            "title": "514306-pgju",
            “描述”: ””,
            “scheduledStartTime”:“1970-01-01T00:00:00.000Z”,
            "actualStartTime": "2017-05-08T01:21:45.000Z",
            “isDefaultBroadcast”:真,
            “liveChatId”:“NiHXTCKPfAyCJrPgREDRnvMSL0N5LBiVUlZoLSULA9vqyoR”
        },
        “地位”: {
            "lifeCycleStatus": "生活",
            "privacyStatus": "未列出",
            “录音状态”:“录音”
        },
        “内容详细信息”:{
            “boundStreamId”:“e5LT2xEURi9BQzf2rLe5eB3325081929219850”,<-- LiveStreams .id
            "boundStreamLastUpdateTimeMs": "2016-09-05T23:21:33.749Z",
            “监控流”:{
                “启用监视器流”:假
            },
            “启用嵌入”:是的,
            “enableDvr”:是的,
            “启用内容加密”:假,
            “startWithSlate”:假,
            “recordFromStart”:真,
            “enableClosedCaptions”:假,
            "closedCaptionsType": "closedCaptionsDisabled",
            “启用LowLatency”:假,
            “投影”:“矩形”
        }
    }
    ]
}

请注意,正如您在某种程度上注意到的那样,通过 API 处理“Stream Now”事件,而不仅仅是特定于liveChatId,有一些配置设置会更改使用默认参数返回结果的方式,有时它们可​​以更改过程中涉及的顺序和步骤。我什至发现实际上有一些LiveStream未记录的与端点一起使用的参数,对于端点也是如此LiveBroadcast此外还有一些错误。

于 2017-05-08T02:59:41.720 回答
1

YouTube 目前不支持将 API 调用与“立即流式传输”混合并通过 API 创建事件。无法从“Stream Now”广播中获取聊天消息,只能使用完全使用 API 创建的广播。

如果您认为这是 API 缺陷,我建议您在此处打开增强或缺陷票。

于 2016-05-04T13:11:10.067 回答