如何使用LiveBroadcasts:来自YouTube API的列表?

时间:2016-01-09 00:01:32

标签: youtube-api youtube-data-api youtube-livestreaming-api

我尝试使用YouTube API进行直播。但是,我没有得到任何结果。这就是我的所作所为:

  1. 转到#Live YouTube频道:

    www youtube com channel / UC4R8DWoMoI7CAwX8_LjQHig
    
  2. 打开任何直播以获取广播ID(例如," CGt1Ac1gEZc")。

  3. 尝试在irb中使用此广播ID:

    irb(main):038:0> list = youtube.list_live_broadcasts("id,snippet,contentDetails,status", id: "CGt1Ac1gEZc")
    => #<Google::Apis::YoutubeV3::ListLiveBroadcastsResponse:0x0000000546a960 @etag="\"oqbvhYxBE6fAbRk6m7aLlHf5s1I/P7sEkFelJCqPWY-5t7EUKYER_MQ\"", @items=[], @kind="youtube#liveBroadcastListResponse", @page_info=#<Google::Apis::YoutubeV3::PageInfo:0x000000054634d0 @results_per_page=5, @total_results=0>>
    irb(main):039:0> list.items.inspect
    => "[]"
    
  4. 如您所见,@items数组为空。

  5. 打开https://developers.google.com/youtube/v3/live/docs/liveBroadcasts/list尝试获取数据,但仍然没有(请参阅图片):http://i.imgur.com/6KTr1YS.png

  6. 仍然是空的@items数组。 即使这个广播是100%在线,我尝试过滤&#34;所有&#34;广播,结果是一样的:找不到任何物品。

    这是我的错吗?还是YouTube API发生了什么事?

2 个答案:

答案 0 :(得分:2)

该查询返回0项,因为liveBroadcasts/list端点只能用于您已经过身份验证的频道已创建的广播。您无法使用channelId端点来检索有关其他人广播的信息。

如果要检索其他频道广播的信息,则必须使用标准Search/list端点。如果您知道该频道的part -> snippet

,这将返回仅返回来自特定频道的直播事件,而不会作为该频道/用户进行身份验证

channelId

[channelId of the channel/user with the live event] - &gt; eventType -> live

type -> video

eventType(将live设置为HTTP GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={channelId}&eventType=live&type=video&key={YOUR_API_KEY} 时需要)

index

答案 1 :(得分:0)

要获取liveStreamingDetails,其中包含您要执行的即将到来的流的(scheduledStartTime / activeLiveChatId)

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

然后取出response.items[0].id.videoId并将其用于

https://www.googleapis.com/youtube/v3/videos?part=liveStreamingDetails&id={VIDEO_ID}&key={YOUR_API_KEY}

我认为您也可以在第一个请求中使用eventType=live进行现场直播