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 l'historique des révisions des Conditions d'utilisation 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 accepte les méthodes suivantes pour les ressources liveBroadcasts :
- liste
- Renvoie une liste des diffusions YouTube correspondant aux paramètres de la requête 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
contentDetailsde la ressourceliveBroadcast. Essayez-le 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.streamStatusdu flux lié à votre diffusion estactive. Essayez-le 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 de la ressource
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,
"availabilityConfig": {
"globalConfig": {
"excludedRegionCodes": [
string
],
"interval": {
"startTime": datetime,
"endTime": datetime
}
},
"regionsConfig": {
"regionIntervals": [
{
"regionCode": string,
"interval": {
"startTime": datetime,
"endTime": datetime
}
}
]
}
}
},
"statistics": {
"totalChatCount": unsigned long
},
"monetizationDetails": {
"adsMonetizationStatus": string,
"eligibleForAdsMonetization": boolean,
"cuepointSchedule": {
"enabled": boolean,
"pauseAdsUntil": datetime,
"ytOptimizedCuepointConfig": string,
"creatorCuepointConfig": {
"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 |
stringIdentifie le type de ressource de l'API. La valeur sera youtube#liveBroadcast. |
etag |
etagEtag de cette ressource. |
id |
stringID attribué par YouTube pour identifier de manière unique la diffusion. |
snippet |
objectL'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 |
datetimeDate et heure auxquelles la diffusion a été ajoutée à la programmation des diffusions en direct de YouTube. La valeur est spécifiée au format ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
snippet.channelId |
stringID utilisé par YouTube pour identifier de manière unique la chaîne qui diffuse l'événement. |
snippet.title |
stringTitre 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 |
stringDescription 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 |
objectCarte des miniatures associées à la diffusion. Pour chaque objet imbriqué dans cet objet, la clé correspond au nom de l'image miniature et la valeur est un objet contenant d'autres informations sur la miniature. |
snippet.thumbnails.(key) |
objectLes valeurs de clé valides sont les suivantes :
|
snippet.thumbnails.(key).url |
stringURL de l'image. |
snippet.thumbnails.(key).width |
unsigned integerLargeur de l'image. |
snippet.thumbnails.(key).height |
unsigned integerHauteur de l'image. |
snippet.scheduledStartTime |
datetimeDate 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 programmer d'heure de début. Dans ce cas, la diffusion commence dès que le propriétaire de la chaîne lance le streaming. Pour ces diffusions, la valeur datetime correspond à l'heure zéro de l'époque Unix. Cette valeur ne peut pas être modifiée à l'aide de l'API ni dans YouTube Creator Studio. |
snippet.scheduledEndTime |
datetimeDate et heure de fin de la diffusion. 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 programmée pour continuer 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 |
datetimeDate et heure de début de la diffusion. Ces informations ne sont disponibles que lorsque l'état de la diffusion est live. La valeur est spécifiée au format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). |
snippet.actualEndTime |
datetimeDate et heure de fin 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 obsolète à partir du 1er septembre 2020. À ce moment-là, YouTube cessera de créer un flux 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 Lorsqu'une chaîne YouTube est activée pour le streaming en direct, YouTube crée un flux et une diffusion par défaut pour la chaîne. Le flux définit la façon dont le propriétaire de la chaîne envoie des vidéos en direct à YouTube, et la diffusion correspond à la façon dont les spectateurs peuvent voir le flux 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 en streaming sur son flux par défaut, la vidéo est visible sur la diffusion par défaut de la chaîne. Lorsque la diffusion est terminée, YouTube la convertit 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 sur 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 dépend de la durée réelle de la diffusion. |
snippet.liveChatId |
stringID du chat en direct YouTube de la diffusion. Cet ID vous permet d'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 de chat, interdire à des utilisateurs de participer aux chats en direct ou supprimer des exclusions existantes. |
status |
objectL'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 :
|
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 disponibles pour les vidéos. Vous pouvez également 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 :
|
status.recordingStatus |
stringÉtat d'enregistrement de la diffusion. Les valeurs valides pour cette propriété sont les suivantes :
|
status.madeForKids |
booleanCette valeur indique si la diffusion est désignée comme étant destinée aux enfants. La valeur de cette propriété est en lecture seule. |
status.selfDeclaredMadeForKids |
booleanDans une requête 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 API. |
contentDetails |
objectL'objet contentDetails contient des informations sur le contenu vidéo de l'événement, par exemple s'il peut être affiché dans un lecteur vidéo intégré ou s'il sera archivé et donc disponible après la fin de l'événement. |
contentDetails.boundStreamId |
stringCette valeur identifie de manière unique le live stream lié à la diffusion. |
contentDetails.boundStreamLastUpdateTimeMs |
datetimeDate et heure de la dernière mise à jour du flux en direct référencé par boundStreamId. |
contentDetails.monitorStream |
objectL'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 visible publiquement. |
contentDetails.monitorStream.enableMonitorStream |
booleanCette valeur détermine si le flux de surveillance est activé pour la diffusion. Si le flux de contrôle est activé, YouTube diffusera le contenu de l'événement sur un flux spécial destiné uniquement à l'organisateur. Le diffuseur peut utiliser le flux pour examiner le contenu de l'événement et identifier les moments optimaux pour insérer des points de repère. Vous devez définir cette valeur sur true si vous prévoyez d'avoir une phase testing pour votre diffusion ou si vous souhaitez avoir un différé de diffusion pour votre événement. De plus, si la valeur de cette propriété est true, vous devez faire passer votre diffusion à l'état testing avant de pouvoir la faire passer à l'état live. (Si la valeur de la propriété est false, votre diffusion ne peut pas avoir d'état testing. Vous pouvez donc la faire 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 : Une fois la diffusion à l'état testing ou live, vous ne pouvez plus modifier cette propriété. |
contentDetails.monitorStream.broadcastStreamDelayMs |
unsigned integerSi vous avez défini la propriété enableMonitorStream sur true, cette propriété détermine la durée du délai de diffusion en direct.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 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 à l'état testing ou live. |
contentDetails.monitorStream.embedHtml |
stringCode HTML qui intègre un lecteur qui lit le flux du moniteur. |
contentDetails.enableEmbed |
booleanCe paramètre indique si la vidéo de la diffusion 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 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 à l'état testing ou live. |
contentDetails.enableDvr |
booleanCe paramètre détermine si les spectateurs peuvent accéder aux commandes DVR lorsqu'ils regardent la vidéo. Les commandes DVR permettent au spectateur de contrôler la lecture de la vidéo en mettant en pause, en rembobinant ou en avançant le contenu. La valeur par défaut de cette propriété est true. 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 définir la valeur sur true et définir également la valeur de la propriété enableArchive sur true si vous souhaitez que la lecture soit disponible immédiatement après la fin de la diffusion. De plus, cette propriété ne peut pas être modifiée une fois que la diffusion est à l'état testing ou live. |
contentDetails.recordFromStart |
booleanCe paramètre indique si YouTube commencera automatiquement à enregistrer la diffusion une fois que l'état de l'événement passera à "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 tentez 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 tentez de modifier une diffusion pour définir la propriété recordFromStart sur false, l'API renverra 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, la vidéo archivée peut être disponible pour la lecture avec un délai d'environ un jour.Remarque : Cette propriété ne peut pas être mise à jour une fois que la diffusion est à l'état testing ou live. |
contentDetails.enableClosedCaptions |
booleanCette propriété est obsolète depuis le 17 décembre 2015. Utilisez plutôt la propriété contentDetails.closedCaptionsType.Ce paramètre indique si les sous-titres HTTP POST sont activés pour cette diffusion. Pour les clients API qui utilisent déjà cette propriété :
|
contentDetails.closedCaptionsType |
stringRemarque : 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 :
|
contentDetails.projection |
stringFormat de projection de cette diffusion. La valeur par défaut de la propriété est rectangular.Les valeurs valides pour cette propriété sont les suivantes :
|
contentDetails.enableLowLatency |
booleanIndique si cette diffusion doit être encodée pour le streaming à 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 |
stringIndique 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 il peut également affecter la fluidité de la lecture. Un flux à latence ultra-faible réduit encore le temps nécessaire pour que la vidéo soit visible par les spectateurs, ce qui facilite l'interaction avec eux. Toutefois, la latence ultra-faible n'est pas compatible avec les sous-titres ni avec les résolutions supérieures à 1080p. Les valeurs valides pour cette propriété sont les suivantes :
|
contentDetails.enableAutoStart |
booleanIndique si cette diffusion doit démarrer automatiquement lorsque vous commencez à diffuser une vidéo sur le live stream associé. |
contentDetails.enableAutoStop |
booleanIndique si cette diffusion doit s'arrêter automatiquement environ une minute après que le propriétaire de la chaîne a arrêté de diffuser la vidéo sur le flux vidéo associé. |
contentDetails.availabilityConfig |
objectConfiguration de la disponibilité de la diffusion. Permet de définir la disponibilité dans des régions spécifiques ou de bloquer des régions spécifiques. Cette option est facultative. Si vous ne la définissez pas, elle ne sera pas appliquée. |
contentDetails.availabilityConfig.globalConfig |
objectConfiguration de la disponibilité mondiale de la diffusion. La vidéo est disponible dans toutes les régions, à l'exception de celles spécifiées dans la liste excludedRegionCodes. |
contentDetails.availabilityConfig.globalConfig.excludedRegionCodes |
list (string)Liste des régions dans lesquelles la vidéo est bloquée. |
contentDetails.availabilityConfig.globalConfig.interval |
objectIntervalle de temps par défaut pendant lequel la vidéo est disponible pour toutes les régions non bloquées. Remarque : Cette propriété n'est pas acceptée pour les diffusions en direct à venir ou en cours. |
contentDetails.availabilityConfig.globalConfig.interval.startTime |
datetimeDate et heure auxquelles la vidéo devient disponible. Si aucune valeur n'est indiquée, la vidéo est déjà disponible. La valeur est spécifiée au format ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
contentDetails.availabilityConfig.globalConfig.interval.endTime |
datetimeDate et heure auxquelles la vidéo ne sera plus disponible. Si aucune date n'est spécifiée, la vidéo est disponible indéfiniment. Les codes temporels de début et de fin spécifiés ne peuvent pas être postérieurs de plus de cinq ans. La valeur est spécifiée au format ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
contentDetails.availabilityConfig.regionsConfig |
objectConfiguration de la disponibilité régionale de la diffusion. La vidéo n'est disponible que dans les régions spécifiées. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals |
list (object)Liste des régions et des plages horaires où la vidéo est disponible. Si une région est spécifiée plusieurs fois, l'union de tous les intervalles est utilisée. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.regionCode |
stringRégion dans laquelle la vidéo est disponible. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval |
objectPériode pendant laquelle la vidéo est disponible pour la région spécifiée. Remarque : Cette propriété n'est pas acceptée pour les diffusions en direct à venir ou en cours. |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval.startTime |
datetimeDate et heure auxquelles la vidéo devient disponible dans la région spécifiée. Si aucune valeur n'est indiquée, la vidéo est déjà disponible. La valeur est spécifiée au format ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
contentDetails.availabilityConfig.regionsConfig.regionIntervals.interval.endTime |
datetimeDate et heure auxquelles la vidéo ne sera plus disponible dans la région spécifiée. Si aucune date n'est spécifiée, la vidéo est disponible indéfiniment. Les codes temporels de début et de fin spécifiés ne peuvent pas être postérieurs de plus de cinq ans. La valeur est spécifiée au format ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). |
statistics |
objectL'objet statistics contient des statistiques liées à 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 en direct. |
statistics.totalChatCount |
unsigned longNombre total de messages sur le chat en direct associés à la diffusion. La 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 comporte au moins un message. Notez que cette propriété ne spécifie pas de valeur une fois la diffusion terminée. Par conséquent, cette propriété n'identifierait pas le nombre de messages de chat pour une vidéo archivée d'une diffusion en direct terminée. |
monetizationDetails |
objectL'objet monetizationDetails contient des informations sur les détails de monétisation du flux, par exemple si l'outil d'automatisation des annonces est activé ou si l'insertion d'annonces mid-roll est retardée. |
monetizationDetails.adsMonetizationStatus |
stringCette propriété indique si les annonces mid-roll sont activées pour une diffusion vidéo. Les valeurs valides sont on et off. |
monetizationDetails.eligibleForAdsMonetization |
stringCette propriété indique si une diffusion vidéo est éligible aux annonces vidéo mid-roll. Une diffusion peut être inéligible pour diverses raisons, par exemple en raison d'une revendication existante ou si la chaîne n'est pas configurée pour la monétisation. |
monetizationDetails.cuepointSchedule |
objectL'objet cuepointSchedule spécifie les paramètres d'automatisation des annonces pour la diffusion. |
monetizationDetails.cuepointSchedule.enabled |
booleanCette valeur détermine si des annonces sont insérées automatiquement dans la diffusion. Si la valeur est true, YouTube insère automatiquement des mid-rolls 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 |
datetimeCette 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 heure futures pour mettre les annonces en veille. La valeur du champ peut également être définie sur une date et heure passées ou sur une valeur vide pour réactiver les annonces. |
monetizationDetails.cuepointSchedule.ytOptimizedCuepointConfig |
stringCe champ indique l'option sélectionnée pour les repères publicitaires insérés automatiquement. Le champ peut spécifier l'un des trois modes suivants :
|
monetizationDetails.cuepointSchedule.creatorCuepointConfig |
objectL'objet creatorCuepointConfig spécifie l'option d'automatisation des annonces, qui permet au créateur de choisir comment les midrolls s'affichent. |
monetizationDetails.cuepointSchedule.creatorCuepointConfig.scheduleStrategy |
stringCette valeur spécifie la stratégie que YouTube doit suivre pour planifier les cue points. Les valeurs possibles sont les suivantes :
|
monetizationDetails.cuepointSchedule.creatorCuepointConfig.repeatIntervalSecs |
unsigned integerCette valeur spécifie l'intervalle, en secondes, entre les insertions automatiques d'annonces pendant une diffusion. Par exemple, si la valeur est 360, YouTube peut insérer des repères de mid-roll toutes les six minutes.Remarque :
|