3

我正在尝试返回并将已完成或正在进行的实时事件与真实世界的时间戳同步(例如,推特逐个播放)。我不拥有相关的实时事件。显然,这只对可以倒带或重播的事件有用(例如许多与游戏相关的广播)

有没有办法检索现场活动的开始时间?

我尝试了以下方法:

使用 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:when 对于每个事件...在给定视频 ID 的情况下检索它,还是我总是需要通过实时事件 api 找到它?

4

2 回答 2

3

您可以为此使用Data API v3

您可以使用 id=VIDEO_ID制作视频->列表

您可以从响应中的contentDetails.duration获取持续时间。


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

你可以用 id=VIDEO_ID做一个liveBroadcasts->list

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

于 2013-08-05T22:57:16.283 回答
1

看到这个问题

总结版是:

  • 使用数据 API v3
  • 要查找频道上的预定直播活动,请使用带有 channelId、type=video 和 eventType=upcoming的搜索端点
  • 要检索即将发生的事件的开始时间,请使用带有 part=liveStreamingDetails的视频端点
于 2020-04-06T01:13:01.520 回答