LiveBroadcasts

L'API permet désormais de marquer vos diffusions en direct comme "conçues pour les enfants". La ressource liveBroadcast contient désormais une propriété qui identifie l'état "conçu pour les enfants" de cette diffusion en direct. Les Conditions d'utilisation des services d'API YouTube et le Règlement pour les développeurs ont également été mis à jour le 10 janvier 2020. Pour en savoir plus, consultez les historiques des révisions du service d'API YouTube Live Streaming et des Conditions d'utilisation des services d'API YouTube.

Une ressource liveBroadcast représente un événement qui sera diffusé en direct sur YouTube.

Méthodes

L'API prend en charge les méthodes suivantes pour les ressources liveBroadcasts :

liste
Renvoie une liste de diffusions YouTube correspondant aux paramètres de requête de l'API. Essayer
insérer
Crée une diffusion. Essayer
update
Met à jour une diffusion. Par exemple, vous pouvez modifier les paramètres de diffusion définis dans l'objet contentDetails de la ressource liveBroadcast. Essayez maintenant.
supprimer
Supprime une diffusion. Essayer
bind
Associe une diffusion YouTube à un flux ou supprime une association existante entre une diffusion et un flux. Une diffusion ne peut être associée qu'à un seul flux vidéo, mais un flux vidéo peut être associé à plusieurs diffusions. Essayer
transition
Modifie l'état d'une diffusion en direct YouTube et lance les processus associés au nouvel état. Par exemple, lorsque vous définissez l'état d'une diffusion sur testing, YouTube commence à transmettre la vidéo au flux de surveillance de cette diffusion. Avant d'appeler cette méthode, vous devez vérifier que la valeur de la propriété status.streamStatus pour le flux associé à votre diffusion est active. Essayez maintenant.
cuepoint
Insère un repère dans une diffusion en direct. Le point de repère peut déclencher une coupure publicitaire.

Représentation des ressources

La structure JSON suivante montre le format d'une ressource liveBroadcasts:

{
  "kind": "youtube#liveBroadcast",
  "etag": etag,
  "id": string,
  "snippet": {
    "publishedAt": datetime,
    "channelId": string,
    "title": string,
    "description": string,
    "thumbnails": {
      (key): {
        "url": string,
        "width": unsigned integer,
        "height": unsigned integer
      }
    },
    "scheduledStartTime": datetime,
    "scheduledEndTime": datetime,
    "actualStartTime": datetime,
    "actualEndTime": datetime,
    "isDefaultBroadcast": boolean,
    "liveChatId": string
  },
  "status": {
    "lifeCycleStatus": string,
    "privacyStatus": string,
    "recordingStatus": string,
    "madeForKids": string,
    "selfDeclaredMadeForKids": string,
  },
  "contentDetails": {
    "boundStreamId": string,
    "boundStreamLastUpdateTimeMs": datetime,
    "monitorStream": {
      "enableMonitorStream": boolean,
      "broadcastStreamDelayMs": unsigned integer,
      "embedHtml": string
    },
    "enableEmbed": boolean,
    "enableDvr": boolean,
    "recordFromStart": boolean,
    "enableClosedCaptions": boolean,
    "closedCaptionsType": string,
    "projection": string,
    "enableLowLatency": boolean,
    "latencyPreference": boolean,
    "enableAutoStart": boolean,
    "enableAutoStop": boolean
  },
  "statistics": {
    "totalChatCount": unsigned long
  },
  "monetizationDetails": {
      "cuepointSchedule": {
        "enabled": boolean,
        "pauseAdsUntil": datetime,
        "scheduleStrategy": string,
        "repeatIntervalSecs": unsigned integer,
      }
    }
  }
}

Propriétés

Le tableau suivant définit les propriétés qui apparaissent dans cette ressource :

Propriétés
kind string
Identifie le type de la ressource de l'API. La valeur sera youtube#liveBroadcast.
etag etag
Etag de cette ressource.
id string
ID attribué par YouTube pour identifier de manière unique la diffusion.
snippet object
L'objet snippet contient des informations de base sur l'événement, y compris son titre, sa description, son heure de début et son heure de fin.
snippet.publishedAt datetime
Date et heure auxquelles la diffusion a été ajoutée au calendrier des diffusions en direct de YouTube. La valeur est spécifiée au format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.channelId string
ID utilisé par YouTube pour identifier de façon unique la chaîne sur laquelle la diffusion est diffusée.
snippet.title string
Titre de la diffusion. Notez que la diffusion représente exactement une vidéo YouTube. Vous pouvez définir ce champ en modifiant la ressource de diffusion ou en définissant le champ title de la ressource vidéo correspondante.
snippet.description string
Description de la diffusion. Comme pour title, vous pouvez définir ce champ en modifiant la ressource de diffusion ou en définissant le champ description de la ressource vidéo correspondante.
snippet.thumbnails object
Carte des images miniatures associées à la diffusion. Pour chaque objet imbriqué dans cet objet, la clé correspond au nom de l'image miniature, et la valeur à un objet contenant d'autres informations sur la miniature.
snippet.thumbnails.(key) object
Les valeurs de clé valides sont les suivantes:
  • default : image miniature par défaut. La vignette par défaut d'une vidéo (ou d'une ressource qui y fait référence, comme un élément de playlist ou un résultat de recherche) mesure 120 x 90 pixels. La miniature par défaut d'une chaîne mesure 88 x 88 pixels.
  • medium : version haute résolution de la vignette. Pour une vidéo (ou une ressource qui y fait référence), cette image mesure 320 x 180 px. Pour une chaîne, cette image mesure 240 x 240 pixels.
  • high : version haute résolution de l'image miniature. Pour une vidéo (ou une ressource qui y fait référence), cette image mesure 480 x 360 pixels. Pour une chaîne, cette image mesure 800 pixels de large et 800 pixels de haut.
snippet.thumbnails.(key).url string
URL de l'image.
snippet.thumbnails.(key).width unsigned integer
Largeur de l'image.
snippet.thumbnails.(key).height unsigned integer
Hauteur de l'image.
snippet.scheduledStartTime datetime
Date et heure de début de la diffusion. La valeur est spécifiée au format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). Creator Studio vous permet de créer une diffusion sans indiquer d'heure de début. Dans ce cas, la diffusion commence dès que le propriétaire de la chaîne commence à la diffuser. Pour ces diffusions, la valeur datetime correspond à l'heure UNIX 0. Cette valeur ne peut pas être modifiée via l'API ni dans Creator Studio.
snippet.scheduledEndTime datetime
Date et heure auxquelles la diffusion doit se terminer. La valeur est spécifiée au format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). Si une ressource liveBroadcast ne spécifie pas de valeur pour cette propriété, la diffusion est planifiée pour se poursuivre indéfiniment. De même, si vous ne spécifiez pas de valeur pour cette propriété, YouTube considère que la diffusion se poursuivra indéfiniment.
snippet.actualStartTime datetime
Date et heure de début de la diffusion. Ces informations ne sont disponibles qu'une fois que l'état de l'annonce est live. La valeur est spécifiée au format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.actualEndTime datetime
Date et heure de fin réelle de la diffusion. Ces informations ne sont disponibles que lorsque l'état de la diffusion est complete. La valeur est spécifiée au format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.isDefaultBroadcast boolean
Cette propriété sera abandonnée à partir du 1er septembre 2020. À partir de ce moment-là, YouTube cessera de créer une diffusion et une diffusion par défaut lorsqu'une chaîne sera activée pour le streaming en direct. Pour en savoir plus, consultez l'annonce de l'abandon.
Cette propriété indique si cette diffusion est la diffusion par défaut.

Fonctionnement des diffusions par défaut

Lorsque le streaming en direct est activé pour une chaîne YouTube, YouTube crée un flux et une diffusion par défaut pour la chaîne. La diffusion en direct définit la façon dont le propriétaire de la chaîne envoie la vidéo en direct sur YouTube. La diffusion permet aux spectateurs de voir la diffusion par défaut. Le propriétaire d'une chaîne peut utiliser les méthodes liveStreams.list et liveBroadcasts.list pour identifier ces ressources.

Lorsqu'une chaîne commence à diffuser une vidéo sur son flux par défaut, la vidéo est visible sur la diffusion par défaut de la chaîne. Lorsque la diffusion se termine, YouTube convertit la diffusion terminée en vidéo YouTube et lui attribue un ID vidéo YouTube.

Une fois la conversion terminée, la vidéo est incluse dans la liste des vidéos mises en ligne de la chaîne. La vidéo n'est pas disponible immédiatement après la fin de la diffusion. La durée du délai est liée à la durée réelle de la diffusion.
snippet.liveChatId string
ID du chat en direct YouTube de la diffusion. Avec cet ID, vous pouvez utiliser les méthodes de la ressource liveChatMessage pour récupérer, insérer ou supprimer des messages de chat. Vous pouvez également ajouter ou supprimer des modérateurs, interdire à des utilisateurs de participer aux chats en direct ou supprimer des interdictions existantes.
status object
L'objet status contient des informations sur l'état de l'événement.
status.lifeCycleStatus string
État de la diffusion. L'état peut être mis à jour à l'aide de la méthode liveBroadcasts.transition de l'API.

Les valeurs valides pour cette propriété sont les suivantes :
  • complete : la diffusion est terminée.
  • created : les paramètres de la diffusion sont incomplets. Elle n'est donc pas prête à passer à l'état live ou testing, mais elle a été créée et est valide.
  • live : la diffusion est active.
  • liveStarting : la diffusion passe à l'état live.
  • ready : les paramètres de l'annonce sont définis, et l'état peut passer à live ou testing.
  • revoked : cette diffusion a été supprimée par une action de l'administrateur.
  • testStarting : la diffusion est en cours de transition vers l'état testing.
  • testing : la diffusion n'est visible que par le partenaire.
status.privacyStatus string
État de confidentialité de la diffusion. Notez que la diffusion représente exactement une vidéo YouTube. Les paramètres de confidentialité sont donc identiques à ceux des vidéos. En outre, vous pouvez définir ce champ en modifiant la ressource de diffusion ou en définissant le champ privacyStatus de la ressource vidéo correspondante.

Les valeurs valides pour cette propriété sont les suivantes :
  • private
  • public
  • unlisted
status.recordingStatus string
État de l'enregistrement de la diffusion.

Valeurs valides pour cette propriété :
  • notRecording
  • recorded
  • recording
status.madeForKids boolean
Cette valeur indique si la diffusion est destinée aux enfants. La valeur de cette propriété est en lecture seule.
status.selfDeclaredMadeForKids boolean
Dans une demande liveBroadcasts.insert, cette propriété permet au propriétaire de la chaîne de désigner la diffusion comme étant destinée aux enfants. Dans une requête liveBroadcasts.list, la valeur de la propriété n'est renvoyée que si le propriétaire de la chaîne a autorisé la requête d'API.
contentDetails object
L'objet contentDetails contient des informations sur le contenu vidéo de l'événement, par exemple si le contenu peut être diffusé dans un lecteur vidéo intégré ou s'il sera archivé et donc disponible à la lecture après la fin de l'événement.
contentDetails.boundStreamId string
Cette valeur identifie de manière unique le live stream associé à la diffusion.
contentDetails.boundStreamLastUpdateTimeMs datetime
Date et heure de la dernière mise à jour de la diffusion en direct référencée par boundStreamId.
contentDetails.monitorStream object
L'objet monitorStream contient des informations sur le flux de surveillance, que le diffuseur peut utiliser pour examiner le contenu de l'événement avant que le flux de diffusion ne soit diffusé publiquement.
contentDetails.monitorStream.enableMonitorStream boolean
Cette valeur détermine si le flux de surveillance est activé pour la diffusion. Si le flux de surveillance est activé, YouTube diffuse le contenu de l'événement sur un flux spécial destiné uniquement au diffuseur. Le diffuseur peut utiliser le flux pour examiner le contenu de l'événement et identifier les moments optimaux pour insérer des repères.

Vous devez définir cette valeur sur true si vous souhaitez utiliser une scène testing pour votre diffusion ou si vous souhaitez que votre événement soit diffusé avec un délai. De plus, si la valeur de cette propriété est true, vous devez passer votre diffusion à l'état testing avant de pouvoir la passer à l'état live. (Si la valeur de la propriété est false, votre diffusion ne peut pas avoir d'étape testing. Vous pouvez donc passer directement à l'état live.)

Lorsque vous update a broadcast, cette propriété doit être définie si votre requête API inclut la partie contentDetails dans la valeur du paramètre part. Toutefois, lorsque vous insert a broadcast, la propriété est facultative et sa valeur par défaut est true.

Important:Cette propriété ne peut pas être mise à jour une fois que l'état de la diffusion est testing ou live.
contentDetails.monitorStream.broadcastStreamDelayMs unsigned integer
Si vous avez défini la propriété enableMonitorStream sur true, elle détermine la durée du délai de diffusion en direct.

Lorsque vous utilisez update a broadcast, cette propriété doit être définie si votre requête API inclut la partie contentDetails dans la valeur du paramètre part. Toutefois, lorsque vous insert a broadcast, la propriété est facultative et sa valeur par défaut est 0. Cette valeur indique que la diffusion n'a pas de délai de diffusion. Remarque:Cette propriété ne peut pas être modifiée une fois que la diffusion est dans l'état testing ou live.
contentDetails.monitorStream.embedHtml string
Code HTML qui intègre un lecteur qui lit le flux de contrôle.
contentDetails.enableEmbed boolean
Ce paramètre indique si la diffusion vidéo peut être lue dans un lecteur intégré. Si vous choisissez d'archiver la vidéo (à l'aide de la propriété enableArchive), ce paramètre s'appliquera également à la vidéo archivée.

Lorsque vous utilisez update a broadcast, cette propriété doit être définie si votre requête API inclut la partie contentDetails dans la valeur du paramètre part. Toutefois, lorsque vous insert a broadcast, la propriété est facultative et sa valeur par défaut est true.

Remarque:Cette propriété ne peut pas être mise à jour une fois que la diffusion est dans l'état testing ou live.
contentDetails.enableDvr boolean
Ce paramètre détermine si les spectateurs peuvent accéder aux commandes du DVR pendant la lecture de la vidéo. Les commandes du DVR permettent au spectateur de contrôler l'expérience de lecture vidéo en suspendant, en rembobinant ou en avançant rapidement le contenu. La valeur par défaut de cette propriété est true.

Lorsque vous utilisez update a broadcast, cette propriété doit être définie si votre requête API inclut la partie contentDetails dans la valeur du paramètre part. Toutefois, lorsque vous insert a broadcast, la propriété est facultative et sa valeur par défaut est true.

Important:Vous devez définir la valeur sur true et également définir la valeur de la propriété enableArchive sur true si vous souhaitez rendre la lecture disponible immédiatement après la fin de la diffusion. De plus, cette propriété ne peut pas être mise à jour une fois que la diffusion est dans l'état testing ou live.
contentDetails.recordFromStart boolean
Ce paramètre indique si YouTube commence automatiquement à enregistrer la diffusion une fois que l'état de l'événement est défini sur "En direct".

La valeur par défaut de cette propriété est true. Elle ne peut être définie sur false que si la chaîne de diffusion est autorisée à désactiver les enregistrements pour les diffusions en direct.

Si votre chaîne n'est pas autorisée à désactiver les enregistrements et que vous essayez d'insérer une diffusion avec la propriété recordFromStart définie sur false, l'API renvoie une erreur Forbidden. De plus, si votre chaîne ne dispose pas de cette autorisation et que vous essayez de mettre à jour une diffusion pour définir la propriété recordFromStart sur false, l'API renvoie une erreur modificationNotAllowed.

Lorsque vous update a broadcast, cette propriété doit être définie si votre requête API inclut la partie contentDetails dans la valeur du paramètre part. Toutefois, lorsque vous insert a broadcast, la propriété est facultative et sa valeur par défaut est true.

Important:Vous devez également définir la valeur de la propriété enableDvr sur true si vous souhaitez que la lecture soit disponible immédiatement après la fin de la diffusion. Si vous définissez la valeur de cette propriété sur true, mais que vous ne définissez pas également la propriété enableDvr sur true, un délai d'environ un jour peut s'écouler avant que la vidéo archivée ne soit disponible à la lecture.

Remarque:Cette propriété ne peut pas être mise à jour une fois que la diffusion est dans l'état testing ou live.
contentDetails.enableClosedCaptions boolean
Cette propriété est obsolète depuis le 17 décembre 2015. Utilisez plutôt la propriété contentDetails.closedCaptionsType.

Ce paramètre indique si le sous-titrage HTTP POST est activé pour cette diffusion. Pour les clients API qui utilisent déjà cette propriété:
  • Définir la valeur de la propriété sur true revient à définir la propriété contentDetails.closedCaptionsType sur closedCaptionsHttpPost.
  • Définir la valeur de la propriété sur false équivaut à définir la propriété contentDetails.closedCaptionsType sur closedCaptionsDisabled.
contentDetails.closedCaptionsType string
Remarque: Cette propriété remplace la propriété contentDetails.enableClosedCaptions.

Cette propriété indique si les sous-titres sont activés pour votre diffusion et, le cas échéant, le type de sous-titres que vous fournissez:
  • closedCaptionsDisabled: les sous-titres sont désactivés pour la diffusion en direct.
  • closedCaptionsHttpPost: vous envoyez les sous-titres, via HTTP POST, à une URL d'ingestion associée à votre diffusion en direct.
  • closedCaptionsEmbedded: les sous-titres sont encodés dans le flux vidéo au format EIA-608 et/ou CEA-708.
contentDetails.projection string
Format de projection de cette diffusion. La valeur par défaut de la propriété est rectangular.

Les valeurs acceptées pour cette propriété sont les suivantes :
  • 360
  • rectangular
contentDetails.enableLowLatency boolean
Indique si cette diffusion doit être encodée pour une diffusion à faible latence. Un flux à faible latence peut réduire le temps nécessaire pour que la vidéo soit visible par les utilisateurs qui regardent une diffusion, mais il peut également avoir un impact sur la résolution pour les spectateurs du flux.
contentDetails.latencyPreference string
Indique le paramètre de latence à utiliser pour cette diffusion. Cette propriété peut être utilisée à la place de enableLowLatency, qui n'est pas compatible avec ultraLow.

Un flux à faible latence peut réduire le temps nécessaire pour que la vidéo soit visible par les utilisateurs qui regardent une diffusion, mais cela peut aussi affecter la fluidité de la lecture.

Un flux à très faible latence réduit encore le temps nécessaire pour que la vidéo soit visible pour les spectateurs, ce qui facilite les interactions avec les spectateurs, mais une latence ultra-faible n'est pas compatible avec les valeurs de sous-titres codés sur 0,
    une latence ultra-faible n'est pas compatible avec les valeurs 0.

  • normal
  • low
  • ultraLow
contentDetails.enableAutoStart boolean
Indique si cette diffusion doit démarrer automatiquement lorsque vous commencez à diffuser une vidéo sur l'live stream associé.
contentDetails.enableAutoStop boolean
Indique si cette diffusion doit s'arrêter automatiquement environ une minute après que le propriétaire de la chaîne a cessé de diffuser des vidéos sur le flux vidéo associé.
statistics object
L'objet statistics contient des statistiques sur une diffusion en direct. Les valeurs de ces statistiques peuvent changer pendant la diffusion et ne peuvent être récupérées que pendant la diffusion.
statistics.totalChatCount unsigned long
Nombre total de messages envoyés sur le chat en direct associés à la diffusion. Cette propriété et sa valeur sont présentes si la diffusion est visible par l'utilisateur, si la fonctionnalité de chat en direct est activée et si elle contient au moins un message. Notez que cette propriété ne spécifiera pas de valeur une fois la diffusion terminée. Par conséquent, cette propriété n'identifie pas le nombre de messages du chat pour une vidéo archivée d'une diffusion en direct terminée.
monetizationDetails object
L'objet monetizationDetails contient des informations sur les détails de monétisation du flux, par exemple si l'automatiseur d'annonces est activé ou si l'insertion d'annonces midroll est retardée.

monetizationDetails.cuepointSchedule object
L'objet cuepointSchedule spécifie les paramètres d'automatisation des annonces pour la diffusion.
monetizationDetails.cuepointSchedule.enabled boolean
Cette valeur détermine si les annonces sont automatiquement insérées dans la diffusion. Si la valeur est true, YouTube insérera automatiquement des annonces mid-roll dans la diffusion. Le calendrier de diffusion des annonces sera déterminé par la valeur des autres champs de l'objet monetizationDetails.cuepointSchedule.
monetizationDetails.cuepointSchedule.pauseAdsUntil datetime
Cette valeur indique que YouTube ne doit pas insérer d'annonces mid-roll dans la diffusion avant la date et l'heure spécifiées. La valeur est spécifiée au format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). La valeur doit être définie sur une date et une heure futures pour suspendre les annonces. La valeur du champ peut également être définie sur une date et une heure proches pour réactiver les annonces au fil du temps.
monetizationDetails.cuepointSchedule.scheduleStrategy string
Cette valeur spécifie la stratégie que YouTube doit suivre pour planifier les repères. Les valeurs possibles sont les suivantes :
  • CONCURRENT: les repères sont programmés en même temps pour tous les spectateurs
  • NON_CONCURRENT: les repères sont programmés à des heures différentes pour différents spectateurs. Cette approche permet de diffuser les annonces à un rythme plus élevé, ce qui permet aux spectateurs de recevoir des repères lorsqu'ils y sont éligibles.
monetizationDetails.cuepointSchedule.repeatIntervalSecs unsigned integer
Cette valeur spécifie l'intervalle, en secondes, entre l'insertion automatique d'annonces pendant une diffusion. Par exemple, si la valeur est 300, YouTube peut insérer des repères d'annonces mid-roll toutes les cinq minutes.

Notez que la valeur spécifie le temps écoulé entre le début de deux repères successifs. Autrement dit, l'intervalle n'est pas mesuré de la fin d'un point de repère au début du suivant.