2015-11-19 1 views
4

Youtube a maintenant une section Live Streaming qui permet aux utilisateurs de diffuser leurs propres sessions en direct. Dans cette section "Live Streaming", il y a 2 options: "Live Now [Beta]" et "Events".Youtube API v3 - Récupérez "Live Now" rtmp et streamkey

  • En direct maintenant est un moyen rapide et facile de démarrer une session de streaming automatiquement en pointant votre encodeur vidéo sur tE RTMP URL et flux de clés. Il détecte automatiquement les médias entrants et commence à diffuser publiquement.

  • Les événements sont à peu près la même chose, mais avec les paramètres avancés, bien qu'ils ne commencent pas automatiquement à diffuser, et vous devez tout configurer manuellement.

Je sais API Youtube permet de récupérer l'URL de l'ingestion de l'événement et streamkey, de sorte que vous pouvez diffuser à cette cible, mais il faut aussi gérer beaucoup d'autres étapes manuellement (comme la publication du flux, les émissions de liaison avec les flux, vérifier l'état, démarrer, arrêter, etc.). D'un autre côté, "Live Now" fait tout automatiquement. Question: Comment puis-je récupérer les informations d'ingestion "Live Now" (url rtmp et streamkey) de l'API Youtube v3?

+0

Salut omarojo, avez-vous trouvé comment l'obtenir? Je suis également à la recherche de cette API et semble programmes vérifiés YouTube comme "XSplit" et "Wirecast" peuvent obtenir le nom du flux via l'API. – rhbc73

+0

@ rhbc73 J'ai réussi à utiliser l'API pour créer mes propres liveBroadcasts et liveStreams (probablement la même chose que wirecast, etc.). Bien que Youtube ait récemment mis à jour sa documentation d'API pour fournir les données d'ingestion par défaut pour la fonctionnalité Youtube Livestream Now, dans leur point de terminaison liveBroadcast.list. Pourtant, je n'ai pas été en mesure de confirmer cela. – omarojo

+0

Je sais que nous pouvons créer une diffusion en direct, créer un flux en direct, lier l'émission à diffuser, puis diffuser sur le nom du flux (qui est une propriété de flux en direct). Mais le nom du flux sera différent de celui que "Stream now" a. Pour que l'émission que vous avez créée n'apparaisse pas dans "Stream now" mais apparaisse dans la section "Events"? – rhbc73

Répondre

2

Vous ne pouvez pas récupérer les informations d'ingestion "Live Now" car l'API ne fait pas la différence entre "Live Now" et "Events". Ces deux options sont fournies en tant qu'interface au-dessus de l'API pour un utilisateur final, de sorte qu'elles n'ont pas besoin d'écrire leur propre application qui s'interface avec l'API.

Vous devrez configurer manuellement liveBroadcast et liveStream objets, les lier avec liveBroadcasts.bind, tester votre flux, et la transition à vivre sur l'objet liveStream à l'aide status.streamStatus.

9

La diffusion par défaut peut être récupérée par livebroadcasts.list avec broadcastType défini sur "persistante".

Le livestream par défaut peut être récupéré par livestreams.list en utilisant boundstreamid.

+0

Merci pour ça! Sauf si vous lisez tous les petits caractères dans les documents, il n'y a aucun moyen de savoir que vous pouvez récupérer la diffusion en direct par défaut –

+0

Wow! C'est du travail comme un charme! Est-il possible d'obtenir l'URL publique à distribuer aux utilisateurs? – kemmitorz

+0

Merci beaucoup! @ ben.bourdin Où puis-je trouver la documentation officielle pour cela? – deadbeef

1

Pour obtenir « direct maintenant » rtmp et streamkey

 $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); 
+0

Exemple de travail: http://stackoverflow.com/a/40482855/1293040 –