获取YouTube直播活动的当前时间

时间:2015-03-14 15:40:01

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

在向YouTube直播时,有没有办法获取录制的流的当前时间?我希望能够在整个直播流中的某些点发送API请求,以获得流的当前分钟/秒。我想要达到的最终结果是能够记录亮点列表。实质上,用户按下按钮并在该时刻获得流的当前时间,然后用户可以添加当时发生的事件的注释。从阅读所有文档来看,我找不到获取录制流的当前时间的方法。

2 个答案:

答案 0 :(得分:2)

您似乎可以使用iFrame API的getDuration()方法执行此操作。

https://developers.google.com/youtube/iframe_api_reference#getDuration

查看直播活动的特别说明:

  

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

您没有指定语言,因此我将以两种不同的语言发布代码示例。两者都使用iFrame API。

JavaScript的:

window.onYouTubePlayerReady = function(playerId) {
    window.ytplayer = document.getElementById("ytPlayer");
    console.log(window.ytplayer.getDuration());
}

Objective-C(使用YouTube的youtube-ios-player-helper课程)

@property (weak, nonatomic) IBOutlet YTPlayerView *playerView;

// ...

- (void)viewDidLoad {
    [super viewDidLoad];
    [[self.playerView loadWithVideoId:@"iGTIK_8ydoI"] // live at the time answer was posted
}

// ...

- (void)getDurationOfPlayingVideo {

    NSLog(@"duration: %d", [self.playerView duration]);
}

正如我个人测试中的免责声明:Live Streaming API非常不稳定且不稳定,我发现一些Live Events的持续时间为0。

答案 1 :(得分:0)

这很旧,但是您可以通过youtube API获得liveStreamingDetails.actualStartTime
掌握了ActualStartTime,您可以计算出经过了多少时间。

"https://www.googleapis.com/youtube/v3/videos"
        "?part=liveStreamingDetails"
        "&id=$id&key=$_key"