如何在YouTube上检索直播活动的开始时间?

时间:2013-08-05 21:49:35

标签: youtube-api youtube-javascript-api

我正在尝试返回并将已完成或正在进行的直播活动与实际时间戳同步(例如,通过Twitter播放。)我不拥有相关的直播活动。显然,这仅适用于可以倒带或重放的事件(例如许多与游戏相关的广播)

有没有办法检索直播活动的开始时间?

我尝试了以下内容:

使用player.getDuration():

  

如果当前正在播放的视频是直播事件,则getDuration()函数将返回自实时视频流开始以来经过的时间。具体而言,这是视频在没有重置或中断的情况下流式传输的时间量。此外,此持续时间通常比实际事件时间长,因为流式传输可能在事件开始时间之前开始。

这似乎并不总是准确的 - 如果直播事件具有设定的广播持续时间,这似乎反而返回广播的总安排时间。这是一段展示该行为的随机视频:http://www.youtube.com/watch?v=e-Bb5F8Jcwg(通过http://www.youtube.com/live/all找到)

我也尝试过使用数据api并从代码片段中获取发布时间,但这通常是在广播实际开始前几个小时或几天。

作为非内容所有者,有没有办法检索此时间?

谢谢!

编辑:
进一步观察后,我发现developers.google.com/youtube/2.0 / ...似乎在yt下提供此信息:每个事件的时间...所以我想我的修改后的问题是 - 有没有办法检索这个给出视频ID,或者我总是需要通过直播活动api找到它?

2 个答案:

答案 0 :(得分:1)

您可以使用Data API v3

您可以使用id = VIDEO_ID

执行videos->list

您可以从回复中获得contentDetails.duration的持续时间。


如果内容是您自己的内容,则可以使用v3 Live Streaming API

您可以使用id = VIDEO_ID

执行liveBroadcasts->list

您可以使用响应中的snippet.actualStartTimesnippet.actualEndTime来计算持续时间。

答案 1 :(得分:1)

请参见this question

摘要版本为:

  • 使用Data API v3
  • 要查找频道上安排的直播事件,请使用带有频道ID的 search 终端,键入= video和eventType = upcoming
  • 要获取即将发生的事件的开始时间,请使用带有part = liveStreamingDetails的 videos 端点