LiveStreams

Une ressource liveStream contient des informations sur le flux vidéo que vous transmettez à YouTube. Le flux fournit le contenu qui sera diffusé auprès des utilisateurs YouTube. Une fois créée, une ressource liveStream peut être associée à une ou plusieurs ressources liveBroadcast.

Méthodes

L'API accepte les méthodes suivantes pour les ressources liveStreams:

list
Renvoie une liste de flux vidéo correspondant aux paramètres de requête de l'API. Essayer
insérer
Crée un flux vidéo. Le flux vous permet d'envoyer votre vidéo à YouTube, qui peut alors la diffuser auprès de votre audience. Essayer
mettre à jour
Met à jour un flux vidéo. Si les propriétés que vous souhaitez modifier ne peuvent pas être mises à jour, vous devez créer un autre flux avec les paramètres appropriés. Essayer
supprimer
Supprime un flux vidéo. Essayer

Représentation des ressources

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

{
 
"kind": "youtube#liveStream",
 
"etag": etag,
 
"id": string,
 
"snippet": {
   
"publishedAt": datetime,
   
"channelId": string,
   
"title": string,
   
"description": string,
   
"isDefaultStream": boolean
 
},
 
"cdn": {
   
"ingestionType": string,
   
"ingestionInfo": {
     
"streamName": string,
     
"ingestionAddress": string,
     
"backupIngestionAddress": string
   
},
   
"resolution": string,
   
"frameRate": string
 
},
 
"status": {
   
"streamStatus": string,
   
"healthStatus": {
     
"status": string,
     
"lastUpdateTimeSeconds": unsigned long,
     
"configurationIssues": [
       
{
         
"type": string,
         
"severity": string,
         
"reason": string,
         
"description": string
       
}
     
]
   
}
 
},
 
"contentDetails": {
   
"closedCaptionsIngestionUrl": string,
   
"isReusable": boolean
 
}
}

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 ressource de l'API. La valeur sera youtube#liveStream.
etag etag
ETag de cette ressource.
id string
ID attribué par YouTube pour identifier le flux de manière unique.
snippet object
L'objet snippet contient des informations de base sur le flux, y compris sa chaîne, son titre et sa description.
snippet.publishedAt datetime
Date et heure de création du flux. La valeur est spécifiée au format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.channelId string
ID que YouTube utilise pour identifier de manière unique la chaîne qui diffuse le flux.
snippet.title string
Titre du flux. La valeur doit comporter entre 1 et 128 caractères.
snippet.description string
Description du flux. La valeur ne peut pas comporter plus de 10 000 caractères.
snippet.isDefaultStream boolean
Cette propriété sera obsolète le 1er septembre 2020 ou à une date ultérieure. À partir de cette date, YouTube cesse de créer une diffusion par défaut lorsqu'une chaîne est activée pour la diffusion en direct. Pour en savoir plus, consultez l'annonce de l'abandon.
Cette propriété indique si ce flux est le flux par défaut de la chaîne.

Fonctionnement des flux 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 cette chaîne. La diffusion définit la manière dont le propriétaire de la chaîne envoie la vidéo en direct à YouTube, et la diffusion permet aux spectateurs de voir la diffusion par défaut. Un propriétaire de chaîne peut utiliser les méthodes liveStreams.list et liveBroadcasts.list pour identifier ces ressources.

Le flux par défaut d'une chaîne existe indéfiniment, et n'est pas associé à une heure de début ou de fin, et ne peut pas être supprimé. Le propriétaire de la chaîne n'a besoin que de commencer à envoyer des bits vidéo, et la diffusion se poursuit automatiquement.

À la fin d'une diffusion, YouTube convertit la diffusion en vidéo YouTube et attribue à la vidéo 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 à la fin de la diffusion. La durée du décalage dépend de la durée réelle de la diffusion.
cdn object
L'objet cdn définit les paramètres du réseau de diffusion de contenu (CDN) de la diffusion en direct. Ces paramètres fournissent des informations sur la manière dont vous diffusez votre contenu sur YouTube.
cdn.format string
Cette propriété est obsolète depuis le 18 avril 2016 et ne sera plus disponible à partir du 17 août 2020. Les requêtes utilisant cette propriété à partir de cette date échoueront.

Utilisez plutôt les propriétés cdn.frameRate et cdn.resolution pour spécifier séparément la fréquence d'images et la résolution.
cdn.ingestionType string
Méthode ou protocole utilisé pour transmettre le flux vidéo.

Valeurs valides pour cette propriété :
  • dash
  • hls
  • rtmp (qui inclut RTMPS)
cdn.ingestionInfo object
L'objet ingestionInfo contient les informations que YouTube fournit pour que vous puissiez transmettre votre flux à YouTube.
cdn.ingestionInfo.streamName string
Nom de flux attribué par YouTube au flux vidéo.
cdn.ingestionInfo.ingestionAddress string
URL principale d'ingestion à utiliser pour diffuser la vidéo sur YouTube si vous utilisez RTMP, DASH ou HLS. Vous devez diffuser les vidéos vers cette URL.

Selon l'application ou l'outil que vous utilisez pour encoder votre flux vidéo, vous devrez peut-être saisir l'URL et le nom du flux séparément, ou les concaténer au format suivant :
cdn.ingestionInfo.backupIngestionAddress string
URL de sauvegarde secondaire à utiliser pour diffuser la vidéo en streaming sur YouTube si vous utilisez RTMP, DASH ou HLS. Vous avez la possibilité de diffuser simultanément le contenu que vous envoyez à ingestionAddress vers cette URL.
cdn.ingestionInfo.rtmpsIngestionAddress string
L'URL d'ingestion principale à utiliser pour diffuser une vidéo en streaming sur YouTube si vous utilisez RTMPS Vous devez diffuser les vidéos vers cette URL.

Selon l'application ou l'outil que vous utilisez pour encoder votre flux vidéo, vous devrez peut-être saisir l'URL et le nom du flux séparément, ou les concaténer au format suivant :
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.rtmpsBackupIngestionAddress string
URL de sauvegarde à utiliser pour diffuser de la vidéo en streaming sur YouTube si vous utilisez RTMPS.
cdn.resolution string
Résolution des données vidéo entrantes.

Les valeurs valides pour cette propriété sont les suivantes :
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable: utilisez ce paramètre pour indiquer à YouTube de détecter automatiquement la résolution de la vidéo diffusée en streaming. Vous devez également définir cdn.frameRate sur variable.
    Consultez le centre d'aide YouTube pour connaître les paramètres d'encodage recommandés.
cdn.frameRate string
Fréquence d'images des données vidéo entrantes.

Les valeurs valides pour cette propriété sont les suivantes :
  • 30fps
  • 60fps
  • variable: utilisez ce paramètre pour indiquer à YouTube de détecter automatiquement la fréquence d'images de votre vidéo diffusée en streaming. Vous devez également définir cdn.resolution sur variable.
    Consultez le centre d'aide YouTube pour connaître les paramètres d'encodage recommandés.
status object
L'objet status contient des informations sur l'état de la diffusion en direct.
status.streamStatus string
État du flux.

Les valeurs valides pour cette propriété sont les suivantes :
  • active : le flux est actif, ce qui signifie que l'utilisateur reçoit des données via le flux.
  • created : le flux a été créé, mais ses paramètres CDN ne sont pas valides.
  • error : une condition d'erreur existe dans le flux.
  • inactive : le flux est inactif, ce qui signifie que l'utilisateur ne reçoit pas de données via le flux.
  • ready : le flux comporte des paramètres CDN valides.
status.healthStatus object
Cet objet contient des informations sur l'état de la diffusion en direct, qui permet d'identifier, de diagnostiquer et de résoudre les problèmes de streaming.
status.healthStatus.status string
Code d'état de ce flux.

Les valeurs valides pour cette propriété sont les suivantes :
  • good – Il n'existe aucun problème de configuration selon lequel la gravité est warning ou pire.
  • ok : aucun problème de configuration n'est associé à la severity error.
  • bad : le flux présente certains problèmes dont la gravité est error.
  • noData : les serveurs backend de diffusion en direct de YouTube ne disposent d'aucune information sur l'état de la diffusion.
status.healthStatus.lastUpdateTimeSeconds unsigned long
Dernière fois que l'état du flux a été mis à jour. La valeur reflète un horodatage UNIX exprimé en secondes.
status.healthStatus.configurationIssues[] list
Cet objet contient la liste des problèmes de configuration qui affectent le flux.
status.healthStatus.configurationIssues[].type string
Identifie le type d'erreur qui affecte le flux.
Problèmes de configuration
audioBitrateHigh
Explication :Vérifiez les paramètres audio.
Description:Le débit actuel du flux audio (%(actual)) est supérieur au débit recommandé. Nous vous recommandons d'utiliser un débit audio de %(expected)s.
audioBitrateLow
Explication :Vérifiez les paramètres audio.
Description:Le débit actuel du flux audio (%(actual)s) est inférieur au débit recommandé. Nous vous recommandons d'utiliser un débit audio de %(expected)s.
audioBitrateMismatch
Explication :Vérifiez le flux secondaire.
Description:Dans la configuration actuelle, le flux principal et le flux secondaire de la vidéo ont des débits audio différents. Vous devez configurer les flux pour qu'ils aient le même débit audio.
audioCodec
Explication :Vérifiez les paramètres audio.
Description:Le flux audio est encodé à l'aide d'un codec non compatible. Veuillez définir le codec audio pour le flux sur un codec compatible (AAC ou MP3).
audioCodecMismatch
Explication :Flux secondaire incorrect.
Description:Dans la configuration actuelle, le flux principal et le flux secondaire de la vidéo utilisent des codecs audio différents. Vous devez configurer les flux pour utiliser le même codec audio.
audioSampleRate
Explication :Vérifiez les paramètres audio.
Description:Le taux d'échantillonnage actuel est de %(actual). Les taux d'échantillonnage recommandés sont 44,1 kHz et 48 kHz.
audioSampleRateMismatch
Explication :Flux secondaire incorrect.
Description:Dans votre configuration actuelle, le flux principal et le flux secondaire de la vidéo ont des taux d'échantillonnage audio différents. Vous devez configurer les flux pour qu'ils aient le même taux d'échantillonnage audio.
audioStereoMismatch
Explication :Flux secondaire incorrect.
Description:Dans la configuration actuelle, le flux principal et le flux secondaire de la vidéo utilisent des canaux audio différents. Vous devez définir le même canal audio pour ces flux.
audioTooManyChannels
Explication :Vérifiez les paramètres audio.
Description:L'audio comporte plus de deux canaux, mais un seul (mono) ou deux (canaux stéréo) sont acceptés. Veuillez corriger le nombre de chaînes audio.
badContainer
Explication :Paramètres vidéo incorrects.
Description:Veuillez modifier le format du conteneur de la vidéo. Le format actuel du conteneur n'est pas correct pour cette configuration.
bitrateHigh
Explication :Vérifiez les paramètres vidéo.
Description:Le débit actuel du flux (%(actual)s) est supérieur au débit recommandé. Nous vous recommandons d'utiliser un débit de flux de %(expected)s.
bitrateLow
Explication :Sortie vidéo faible.
Description:Le débit actuel du flux (%(actual)s) est inférieur au débit recommandé. Nous vous recommandons d'utiliser un débit de flux de %(expected)s.
framerateMismatch
Explication :Vérifiez le flux secondaire.
Description:Dans votre configuration actuelle, le flux principal et le flux secondaire de la vidéo ont des fréquences d'images différentes. Vous devez configurer les flux pour qu'ils aient la même fréquence d'images.
frameRateHigh
Explication :Fréquence d'images trop élevée.
Description:La fréquence d'images actuelle est trop élevée. Veuillez définir une fréquence d'images inférieure ou égale à %(framerate)s fps.
gopMismatch
Explication :Flux secondaire incorrect.
Description:Dans la configuration actuelle, le flux principal et le flux secondaire de la vidéo ont des fréquences d'images clés différentes. Vous devez configurer la même fréquence d'images clés pour les flux.
gopSizeLong
Explication :Paramètres vidéo incorrects.
Description:Veuillez définir une fréquence d'images clés de quatre secondes au maximum. Actuellement, les images clés sont envoyées en nombre insuffisant, ce qui peut provoquer des mises en mémoire tampon. La fréquence d'images clés actuelle est de %(actual_gop).1f secondes. Notez que les erreurs d'ingestion peuvent entraîner des GOP (groupe d'images) incorrects.
gopSizeOver
Explication :Vérifiez les paramètres vidéo.
Description:Veuillez définir une fréquence d'images clés de quatre secondes au maximum. Actuellement, les images clés ne sont pas envoyées assez régulièrement, ce qui peut provoquer des mises en mémoire tampon. La fréquence d'images clés actuelle est de %(actual_gop).1f secondes. Notez que les erreurs d'ingestion peuvent entraîner des GOP (groupe d'images) incorrects.
gopSizeShort
Explication :Vérifiez les paramètres vidéo.
Description:Le GOP (groupe d'images) est de très petite taille, ce qui peut réduire la qualité des images. La fréquence d'images clés recommandée est de quatre secondes. La fréquence d'images clés actuelle est de %(actual_gop).1f secondes. Notez que les erreurs d'ingestion peuvent entraîner des GOP incorrects.
multipleAudioStreams
Explication :Vérifiez les paramètres audio.
Description:Le flux d'ingestion contient plusieurs flux audio, mais il doit en contenir uniquement un.
multipleVideoStreams
Explication :Paramètres vidéo incorrects.
Description:Le flux d'ingestion contient plusieurs flux vidéo, mais il doit en contenir uniquement un.
noAudioStream
Explication :Aucune piste audio
Description:Le flux d'ingestion ne contient aucun flux audio, mais il doit en contenir exactement un.
noVideoStream
Explication :Aucune vidéo.
Description:Le flux d'ingestion ne contient aucun flux vidéo, mais il doit en contenir exactement un.
openGop
Explication :Paramètres vidéo incorrects.
Description:Veuillez modifier la configuration de votre encodeur vidéo sur "GOP fermé". Il semble être défini sur "Open GOP", qui n'est pas compatible avec YouTube.
resolutionMismatch
Explication :Flux secondaire incorrect.
Description:Dans la configuration actuelle, le flux principal et le flux secondaire de la vidéo ont des résolutions différentes. Vous devez configurer les flux pour qu'ils aient la même résolution.
videoBitrateMismatch
Explication :Vérifiez le flux secondaire.
Description:Dans la configuration actuelle, le flux principal et le flux secondaire de la vidéo ont des débits vidéo différents. Vous devez configurer le même débit vidéo pour les flux.
videoCodec
Explication :Paramètres vidéo incorrects.
Description:La vidéo est encodée à l'aide d'un codec non compatible. Veuillez définir le codec vidéo pour le flux sur un codec compatible (H.264).
videoCodecMismatch
Explication :Flux secondaire incorrect.
Description:Dans la configuration actuelle, le flux principal et le flux secondaire de la vidéo utilisent des codecs vidéo différents. Vous devez configurer les flux pour qu'ils aient les mêmes codecs vidéo.
videoIngestionStarved
Explication :Sortie vidéo faible.
Description:YouTube ne reçoit pas suffisamment de vidéos pour garantir une diffusion fluide. Par conséquent, les utilisateurs pourront le mettre en mémoire tampon.
videoInterlaceMismatch
Explication :Flux secondaire incorrect.
Description:Dans la configuration actuelle, le flux principal et le flux secondaire de la vidéo ont des entrelacements différents. Vous devez configurer les flux pour qu'ils aient le même entrelacement.
videoProfileMismatch
Explication :Flux secondaire incorrect.
Description:Dans la configuration actuelle, le flux principal et le flux secondaire de la vidéo ont des profils différents. Vous devez configurer les flux pour qu'ils aient le même profil.
videoResolutionSuboptimal
Explication :Vérifiez la résolution.
Description:Veuillez vérifier la résolution de la vidéo. La résolution actuelle ((%(actual_w)dx%(actual_h)d)) n'est pas optimale.
videoResolutionUnsupported
Explication :Résolution non compatible.
Description:Il faut changer la résolution vidéo. La résolution actuelle ((%(actual_w)dx%(actual_h)d)) n'est pas compatible avec cette configuration. La résolution vidéo attendue est de (%(expected_w)dx%(expected_h)d).
status.healthStatus.configurationIssues[].severity string
Indique l'importance du problème dans le flux.

Les valeurs valides pour cette propriété sont les suivantes :
  • info : la vidéo est diffusée aux spectateurs sans impact négatif sur les performances.
  • warning : la vidéo est diffusée aux spectateurs, mais les performances ne sont pas optimales.
  • error : la vidéo ne peut pas être diffusée auprès des spectateurs.
status.healthStatus.configurationIssues[].reason string
Brève description du problème. Le document Problèmes de configuration pour les ressources LiveStream identifie la raison associée à chaque type de problème de configuration.
status.healthStatus.configurationIssues[].description string
Description détaillée du problème. Si possible, la description indique comment résoudre le problème. Le document Problèmes de configuration pour les ressources LiveStream répertorie tous les types de problèmes de configuration et leur description.
contentDetails object
L'objet content_details contient des informations sur le flux, y compris l'URL d'ingestion des sous-titres.
contentDetails.closedCaptionsIngestionUrl string
URL d'ingestion vers laquelle sont envoyés les sous-titres de ce flux.
contentDetails.isReusable boolean
Indique si le flux est réutilisable, ce qui signifie qu'il peut être associé à plusieurs diffusions. Il est courant que les diffuseurs réutilisent le même flux pour de nombreuses diffusions différentes si celles-ci ont lieu à des moments différents.

Si vous définissez cette valeur sur false, le flux ne sera pas réutilisable, ce qui signifie qu'il ne peut être associé qu'à une seule diffusion. Voici les différences entre les flux non réutilisables et les flux réutilisables:
  • Un flux non réutilisable ne peut être associé qu'à une seule diffusion.
  • Un flux non réutilisable peut être supprimé par un processus automatisé une fois la diffusion terminée.
  • La méthode liveStreams.list ne répertorie pas les flux non réutilisables si vous appelez la méthode et définissez le paramètre mine sur true. Le seul moyen d'utiliser cette méthode pour récupérer la ressource d'un flux non réutilisable consiste à identifier le flux à l'aide du paramètre id.