0

我正在尝试使用 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

仍然,空@items数组。尽管这个广播是 100% 在线的,但我尝试按“所有”广播过滤,结果是一样的:没有找到任何项目。

这是我的错还是 YouTube API 出了什么问题?

4

2 回答 2

5

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

如果要检索有关另一个频道的广播的信息,则必须使用标准Search/list端点。如果您知道该频道的,这将只返回来自特定频道的实时事件,而不是作为该频道/用户进行身份验证channelId

part -> snippet

channelId->[channelId of the channel/user with the live event]

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}
于 2016-01-10T23:30:32.563 回答
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我认为您也可以在第一个请求中为现场活动做

于 2020-07-19T20:47:42.187 回答