我们能知道我们是否使用youtube api进行流媒体播放吗


Can we know if we are streaming with youtube api?

我想知道我的频道是否在youtube上播放。我使用的是带有php库的youtubeapiv3。我可以使用liveBroadcasts.list获得最后的广播,但当我开始使用OBS进行流媒体传输时,我将参数broadcastStatus设置为active,并且不会返回任何内容。我也尝试过liveStreams.list,但仍然一无所获。我不知道我做错了什么,有人能解释一下吗?:D

尝试使用search.list,在这里您可以设置可选参数来搜索您需要的内容。与channelIdeventType一样,您可以将其设置为live以包括活动广播,以及type参数,该参数限制搜索查询仅检索特定类型的资源。

阅读其他parameters,了解更多关于其用途和描述的信息。

有关更多信息,您也可以查看这个SO问题:

  • 使用YouTube API v3判断频道是否有直播

  • 如何检查YouTube频道是否正在直播

请求url为:

GET https://www.googleapis.com/youtube/v3/liveBroadcasts?part=id%2Csnippet%2Cstatus&mine=true&broadcastStatus=active&key={YOUR_API_KEY}

您应该收到:

{"status":{ "lifeCycleStatus":"live"}}

您可以使用搜索API-类似这样的东西:

https://www.googleapis.com/youtube/v3/search?part=id&channelId={CHANNEL_ID_YOU_WANT_TO_QUERY}&type=video&key={YOUR_API_KEY}&eventType=live

然而,这可能需要3-5分钟才能在广播开始后显示广播视频的视频ID。这已经在另一个StackOverflow问题中讨论过:使用YouTube API v3来判断频道是否有直播