Я использую API потоковой передачи php YouTube для мониторинга состояния некоторых потоков и при попытке получить lastUpdateTimeSeconds возвращает ноль. Я прошел весь процесс потоковой передачи (думая, что он может не обновиться до тех пор, пока вы не выйдете) от готовности к завершению и никогда не получал ничего, кроме NULL.
У меня есть следующий код, который получает детали каждой трансляции и связанного с ней потока и дважды проверил код.
$broadcastsResponse = $youtube->liveBroadcasts->listLiveBroadcasts('id,snippet,status,contentDetails',
array(
'mine' => 'true',
'maxResults' => '10',
));
$streamsResponse = $youtube->liveStreams->listLiveStreams('id,snippet,status',
array(
'mine' => 'true',
'maxResults' => '10',
));foreach ($broadcastsResponse['items'] as $broadcastItem) {
$program = new stdClass();
$program->broadcast = new stdClass();
$program->broadcast->id = $broadcastItem['id'];
$program->broadcast->title = $broadcastItem['snippet']['title'];
$program->broadcast->lifeCycleStatus = $broadcastItem['status']['lifeCycleStatus'];
$program->broadcast->recordingStatus = $broadcastItem['status']['recordingStatus'];
$program->broadcast->boundStreamId = $broadcastItem['contentDetails']['boundStreamId'];
$program->broadcast->enableMonitorStream = $broadcastItem['contentDetails']['monitorStream']['enableMonitorStream'];
$program->stream = new stdClass();
$program->stream->id = false;
$program->stream->title = "";
$program->stream->streamStatus = "";
$program->stream->healthStatus = "";
$program->stream->lastUpdate = "";
foreach($streamsResponse['items'] as $streamItem)
{
if ($streamItem['id'] == $program->broadcast->boundStreamId)
{
$program->stream->id = $streamItem['id'];
$program->stream->title = $streamItem['snippet']['title'];
$program->stream->streamStatus = $streamItem['status']['streamStatus'];
$program->stream->healthStatus = $streamItem['status']['healthStatus']['status'];
$program->stream->lastUpdate = $streamItem['status']['healthStatus']['lastUpdateTimeSeconds'];
break;
}
}
$json->data[] = $program;
}
Кажется, все работает, кроме $program->stream->lastUpdate = $streamItem['status']['healthStatus']['lastUpdateTimeSeconds'];
Документы заявляют, что он должен вернуть метку времени Unix, но я не могу заставить это сделать это.
Задача ещё не решена.
Других решений пока нет …