2015-11-19 116 views
4

Youtube现在有一个Live Streaming部分,允许用户播放他们自己的直播会话。在这个“直播”部分,有2个选项:“现在直播[Beta]”和“事件”。Youtube API v3 - 获取“Live Now”rtmp和streamkey

  • 现场现在是刚刚到TE指定RTMP网址和视频流键指向您的视频编码器自动启动流会话的便捷方式。它会自动检测到包含媒体并开始公开播出。

  • 事件几乎是一回事,但有了高级设置,虽然它不会自动启动以进行广播,而且您需要手动设置所有事情。

我知道的Youtube API允许您检索事件的提取网址和streamkey,这样你就可以播放该目标,但它也需要手动管理许多其他步骤(如发布流与物流的结合广播,检查状态,开始,停止等)。另一方面,“现在直播”会自动完成一切。

问题:如何从Youtube API v3中检索“Live Now”摄入信息(rtmp url和streamkey)?

+0

嗨omarojo,你有没有发现怎么走呢?我也在寻找这个API,并且似乎YouTube验证的程序如“XSplit”和“Wirecast”可以通过API获取流名称。 – rhbc73

+0

@ rhbc73我设法使用API​​来创建我自己的liveBroadcasts和liveStreams(可能与wirecast等做的一样)。虽然Youtube最近更新了他们的API文档,以便为他们的liveBroadcast.list端点中的Youtube Livestream Now功能提供默认提取数据。我仍然无法证实这一点。 – omarojo

+0

我知道我们可以创建实况广播,创建实时流,将广播绑定到流,然后流式传输到流名称(这是实时流的属性)。但是流名称与“现在流”具有不同的名称。这样您创建的广播就不会出现在“现在直播”中,而会出现在“事件”部分中? – rhbc73

回答

2

由于API没有区分“Live Now”和“Events”,因此无法检索“Live Now”摄入信息。这两个选项作为最终用户API的接口提供,因此他们不必编写自己的与API接口的应用程序。

您必须手动设置liveBroadcastliveStream对象,与liveBroadcasts.bind约束他们,测试流,并过渡到使用活的status.streamStatus对象liveStream上。

9

可以通过livebroadcasts.list将broadcastType设置为“persistent”来检索默认广播。

使用boundstreamid可以通过livestreams.list检索默认的直播流。

+0

感谢您的支持!除非您阅读文档中的所有小字,否则无法知道您可以检索默认实况广播 –

+0

哇!它的功能就像一个魅力! 有没有什么办法可以获得公开的URL来分发给观众? – kemmitorz

+0

非常感谢! @ ben.bourdin我在哪里可以找到这方面的官方文档? – deadbeef

1

得到“现在直播” RTMP和streamkey

 $broadcastsResponse = $youtube->liveBroadcasts->listLiveBroadcasts(
      'id,snippet,contentDetails', 
      array(
       'broadcastType' => 'persistent', 
       'mine' => 'true', 
      )); 

     $boundStreamId = $broadcastsResponse['items']['0']['contentDetails']['boundStreamId']; 

     $streamsResponse = $youtube->liveStreams->listLiveStreams('id,snippet,cdn', array(
//   'mine' => 'true', 
      'id' => $boundStreamId 
     )); 

     print_r($streamsResponse); 
+0

工作示例:http://stackoverflow.com/a/40482855/1293040 –

相关问题