Youtube API v3 - получить прямую трансляцию rtmp и streamkey

На Youtube теперь есть раздел Live Streaming, который позволяет пользователям транслировать свои собственные сеансы прямых трансляций. В этом разделе «Прямая трансляция» есть 2 варианта: «Прямой эфир [бета]» и «События».

  • Live Now - это быстрый и простой способ автоматически запустить сеанс потоковой передачи, просто указав в кодировщике видео указанные URL-адрес RTMP и ключ потока. Он автоматически обнаружит входящие СМИ и начнет публичное вещание.

  • События - это в значительной степени то же самое, но с дополнительными настройками, хотя они не будут запускаться автоматически для трансляции, и вам нужно настроить все практически вручную.

Я знаю, что Youtube API позволяет вам получать URL-адрес приема и ключ потока событий, чтобы вы могли транслировать на эту цель, но для этого также требуется управлять многими другими шагами вручную (например, публикация потока, привязка трансляций к потокам, проверка статуса, запуск, остановка , так далее..). С другой стороны, «Live Now» делает все автоматически.

Вопрос. Как я могу получить информацию о загрузке "Live Now" (URL-адрес rtmp и ключ потока) из Youtube API v3?


person omarojo    schedule 19.11.2015    source источник
comment
Привет, омароджо, ты нашел, как его получить? Я также ищу этот API, и похоже, что программы, проверенные YouTube, такие как XSplit и Wirecast, могут получить имя потока через API.   -  person rhbc73    schedule 02.02.2016
comment
@ rhbc73 Мне удалось использовать API для создания моих собственных liveBroadcast и liveStreams (вероятно, то же самое, что и Wirecast и т. д.). Хотя Youtube недавно обновил свою документацию по API, чтобы предоставить данные по умолчанию для функции Youtube Livestream Now в своей конечной точке liveBroadcast.list. Тем не менее я не смог это подтвердить.   -  person omarojo    schedule 02.02.2016
comment
Я знаю, что мы можем создать прямую трансляцию, создать прямой поток, привязать трансляцию к потоку, а затем передать поток по имени потока (которое является свойством прямого потока). Но имя потока будет отличаться от того, что сейчас есть у Stream. Чтобы созданная вами трансляция теперь не отображалась в Stream, а в разделе «События»?   -  person rhbc73    schedule 02.02.2016
comment
Это правильно. Единственное преимущество использования конечных точек приема потока сейчас заключается в том, что прямая трансляция начинается и заканчивается в соответствии с тем, когда вы начинаете / останавливаете отправку видеоданных с помощью кодировщика. В противном случае использование Live Events требует, чтобы вы позаботились обо всем цикле прямой трансляции, в частности, о переходе в статус -conplete- (завершение события)   -  person omarojo    schedule 02.02.2016
comment
Спасибо, omarojo, это правильно, для использования прямых трансляций необходимо вручную запустить предварительный просмотр и начать трансляцию на веб-странице YouTube. Знаете ли вы, могут ли эти два действия выполняться некоторыми API (API перехода?) Вместо щелчка мышью на веб-странице YouTube? Вы также сказали, что Youtube недавно обновил свою документацию по API, чтобы предоставить данные по умолчанию для функции Youtube Livestream Now. У вас есть ссылка на нее? (Я пытался получить его через liveBroadcast.list, но ничего не вернулось)   -  person rhbc73    schedule 02.02.2016


Ответы (3)


Вы не можете получить информацию о приеме "Live Now", потому что API не различает "Live Now" и "Events". Эти два варианта предоставляются как интерфейсы поверх API для конечного пользователя, поэтому им не нужно писать собственное приложение, которое взаимодействует с API.

Вам нужно будет вручную настроить объекты liveBroadcast и liveStream, связать их с помощью liveBroadcasts.bind < / a>, протестируйте свой поток и перейдите к действию на объекте liveStream с помощью status.streamStatus.

person JAL    schedule 19.11.2015

Трансляция по умолчанию может быть получена с помощью livebroadcasts.list, если для параметра broadcastType установлено значение "persistent".

Прямая трансляция по умолчанию может быть получена livestreams.list с помощью boundstreamid.

person rhbc73    schedule 11.02.2016
comment
Спасибо за это! Если вы не прочтете все мелким шрифтом в документации, нет никакого способа узнать, что вы можете получить прямую трансляцию по умолчанию. - person ben.bourdin; 11.05.2016
comment
Ух ты! Это работает как шарм! Есть ли способ получить общедоступный URL-адрес для распространения среди зрителей? - person kemmitorz; 05.10.2016
comment
Большое спасибо! @ ben.bourdin Где я могу найти официальную документацию по этому поводу? - person deadbeef; 18.05.2017
comment
@deadbeef - это основной ресурс, который я использовал: YouTube Live API-документы. У каждой конечной точки есть `` проводник API '', который работает достаточно хорошо, поэтому вы можете легко его протестировать. - person ben.bourdin; 19.05.2017

Чтобы получить RTMP и streamkey «Live Now»

       $broadcastsResponse = $youtube->liveBroadcasts->listLiveBroadcasts(
            'id,snippet,contentDetails',
            array(
                'broadcastType' => 'persistent',
                'mine' => 'true',
            ));

        $boundStreamId = $broadcastsResponse['items']['0']['contentDetails']['boundStreamId'];

        $streamsResponse = $youtube->liveStreams->listLiveStreams('id,snippet,cdn', array(
//            'mine' => 'true',
            'id' => $boundStreamId
        ));

        print_r($streamsResponse);
person Hany Alsamman    schedule 04.11.2016