Вопрос по youtube-data-api, youtube-livestreaming-api, youtube, youtube-api, youtube-api-v3 – Получить текущую продолжительность YouTube Live Event

2

Есть ли способ узнать текущее время записанного потока при прямой трансляции на YouTube? Я хочу иметь возможность отправлять запрос API в определенных точках в прямом эфире, чтобы получить текущую минуту / секунду потока. Конечный результат, которого я пытаюсь достичь, - это возможность регистрировать список основных моментов. По сути, пользователь нажимает кнопку, и он получает текущее время потока в этот момент, затем пользователь может добавить примечание о том, что произошло в это время. Однако, прочитав все документы, я не могу найти способ узнать текущее время записанного потока.

Эй, Брэндон Род, мой ответ помог тебе? Дайте мне знать, если вам нужна дополнительная помощь. JAL
Извините за задержку ответа @JAL! Я пересмотрел это сегодня, и это определенно помогло. Это шаг в правильном направлении, однако он все еще очень непоследователен и ненадежен с живыми трансляциями. Похоже, что чем дольше будет идти поток, тем оно будет несколько хуже. Brandon Rohde
Согласен. API Live Streaming по-прежнему очень нестабилен даже после выпуска более года. Кроме того, API iFrame может быть устаревшим в любое время, поэтому в идеале YouTube должен предоставить лучший способ получения продолжительности, используя свой проигрыватель HTML5. JAL

Ваш Ответ

2   ответа
0

это старый, но вы можете получитьliveStreamingDetails.actualStartTime через API YouTube.
Имея фактическое время начала в руках, вы можете рассчитать, сколько времени прошло.

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

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 (используя YouTubeYouTube КСН-плеер-помощник учебный класс)

@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]);
}

Как отказ от моего личного тестирования: API Live Streaming необычайно темпераментен и нестабилен, и я обнаружил, что некоторые Live Events возвращают длительность 0.

Похожие вопросы