LiveChatMessages

Une ressource liveChatMessage représente un message de chat dans un chat en direct YouTube. La ressource peut contenir des informations sur plusieurs types de messages, y compris un message texte récemment publié ou un événement de financement par les fans.

La fonctionnalité de chat en direct est activée par défaut pour les diffusions en direct et est disponible pendant l'événement en direct. (Une fois l'événement terminé, le chat en direct n'est plus disponible pour cet événement.)

Méthodes

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

liste
Liste les messages de chat en direct pour un chat spécifique. Essayer
streamList
Active une connexion de streaming serveur pour recevoir les messages de chat en direct d'un chat spécifique avec une faible latence. Essayer
insérer
 Ajoute un message ou un sondage à un chat en direct. Essayer
transition
Modifie l'état d'un message en direct. Essayer
supprimer
Supprime un message de chat. La requête API doit être autorisée par le propriétaire de la chaîne ou un modérateur du chat en direct. Essayer

Représentation des ressources

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

{
  "kind": "youtube#liveChatMessage",
  "etag": etag,
  "id": string,
  "snippet": {
    "type": string,
    "liveChatId": string,
    "authorChannelId": string,
    "publishedAt": datetime,
    "hasDisplayContent": boolean,
    "displayMessage": string,
    "fanFundingEventDetails": {
      "amountMicros": unsigned long,
      "currency": string,
      "amountDisplayString": string,
      "userComment": string
    },
    "textMessageDetails": {
      "messageText": string
    },
    "userBannedDetails": {
      "bannedUserDetails": {
        "channelId": string,
        "channelUrl": string,
        "displayName": string,
        "profileImageUrl": string
      },
      "banType": string,
      "banDurationSeconds": unsigned long
    },
    "memberMilestoneChatDetails": {
      "userComment": string,
      "memberMonth": unsigned integer,
      "memberLevelName": string
    },
    "newSponsorDetails": {
      "memberLevelName": string,
      "isUpgrade": bool
    },
    "superChatDetails": {
      "amountMicros": unsigned long,
      "currency": string,
      "amountDisplayString": string,
      "userComment": string,
      "tier": unsigned integer
    },
    "superStickerDetails": {
      "superStickerMetadata": {
        "stickerId": string,
        "altText": string,
        "language": string
      },
      "amountMicros": unsigned long,
      "currency": string,
      "amountDisplayString": string,
      "tier": unsigned integer
    },
    "pollDetails": {
      "metadata": {
        "options": {
          "optionText": string,
          "tally": string,
        },
        "questionText": string,
        "status": enum
      },
    },
    "membershipGiftingDetails": {
      "giftMembershipsCount": integer,
      "giftMembershipsLevelName": string
    },
    "giftMembershipReceivedDetails": {
      "memberLevelName": string,
      "gifterChannelId": string,
      "associatedMembershipGiftingMessageId": string
    },
    "giftDetails": {
      "jewelsAmount": integer,
      "giftName": string,
      "giftUrl": string,
      "giftDuration": object,
      "seconds": integer,
      "nanos": integer,
      "hasVisualEffect": boolean,
      "comboCount": integer,
      "altText": string,
      "language": string
    },
  },
  "authorDetails": {
    "channelId": string,
    "channelUrl": string,
    "displayName": string,
    "profileImageUrl": string,
    "isVerified": boolean,
    "isChatOwner": boolean,
    "isChatSponsor": boolean,
    "isChatModerator": 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 la ressource d'API. La valeur sera youtube#liveChatMessage.
etag etag
Etag de cette ressource.
id string
ID que YouTube attribue pour identifier de manière unique le message.
Remarque : Pour les giftEvents, le même ID peut être réutilisé pour mettre à jour le nombre de combos.
snippet object
L'objet snippet contient des informations de base sur le message de chat.
snippet.type string
Type du message. Cette propriété est toujours présente et sa valeur détermine les champs qui sont présents dans la ressource.

Les valeurs valides pour cette propriété sont les suivantes :
  • chatEndedEvent : le chat est terminé et aucun autre message ne peut être inséré après celui-ci. Cela se produit naturellement peu de temps après la fin d'une diffusion. Ce type de message n'est pas envoyé pour les chats en direct sur la diffusion par défaut d'une chaîne.
  • sponsorOnlyModeEndedEvent : le chat n'est plus en mode "Sponsors uniquement", ce qui signifie que les utilisateurs qui ne sont pas sponsors peuvent désormais envoyer des messages. Cet événement n'a pas de contenu à afficher.
  • sponsorOnlyModeStartedEvent : le chat est passé en mode réservé aux sponsors, ce qui signifie que seuls les sponsors peuvent envoyer des messages. Cet événement ne contient aucun contenu à afficher.
  • newSponsorEvent : un nouvel utilisateur a sponsorisé la chaîne propriétaire du chat en direct. Les champs author contiennent les informations sur le nouveau sponsor.
  • memberMilestoneChatEvent : un utilisateur a envoyé un chat de fidélité pour les membres.
  • superChatEvent : un utilisateur a acheté un Super Chat.
  • superStickerEvent : un utilisateur a acheté un Super Sticker.
  • textMessageEvent : un utilisateur a envoyé un message.
  • tombstone : une pierre tombale signifie qu'un message existait avec cet ID et cette heure de publication, mais qu'il a depuis été supprimé. Il n'est pas envoyé lors de la suppression d'un message, mais indique plutôt l'emplacement du message avant sa suppression. Seuls les champs snippet.liveChatId, snippet.type et snippet.publishedAt sont présents dans ce type de message.
  • userBannedEvent : un utilisateur a été banni par un modérateur. Le champ author contient les informations sur le modérateur.
  • membershipGiftingEvent : un utilisateur a acheté des souscriptions pour d'autres spectateurs.
  • giftMembershipReceivedEvent : un utilisateur a reçu une souscription en cadeau.
  • pollDetails : un utilisateur a créé un sondage en direct.
  • giftEvent : un utilisateur a échangé des Joyaux contre un cadeau.
snippet.liveChatId string
ID qui identifie de manière unique le chat en direct auquel le message est associé. L'ID du chat en direct associé à une diffusion est renvoyé dans la propriété snippet.liveChatId de la ressource liveBroadcast.
snippet.authorChannelId string
ID de l'utilisateur qui a rédigé le message. Ce champ n'est renseigné que pour les types de messages suivants :
  • Si le type de message est textMessageEvent, la valeur de la propriété identifie l'utilisateur qui a écrit le message.
  • Si le type de message est fanFundingEvent, la valeur de la propriété identifie l'utilisateur qui a financé la diffusion.
  • Si le type de message est newSponsorEvent, la valeur de la propriété identifie l'utilisateur qui vient de devenir sponsor.
  • Si le type de message est memberMilestoneChatEvent, la valeur de la propriété identifie le membre qui a envoyé le message.
  • Si le type de message est userBannedEvent, la valeur de la propriété identifie le modérateur qui a banni l'utilisateur.
  • Si le type de message est membershipGiftingEvent, la valeur de la propriété identifie l'utilisateur qui a effectué l'achat de l'abonnement à offrir.
  • Si le type de message est giftMembershipReceivedEvent, la valeur de la propriété identifie l'utilisateur qui a reçu la souscription en cadeau.
  • Si le type de message est pollEvent, la valeur de la propriété identifie l'utilisateur qui a créé un sondage en direct.
  • Si le type de message est giftEvent, la valeur de la propriété identifie l'utilisateur qui a envoyé le cadeau.
snippet.publishedAt datetime
Date et heure de publication initiale du message. La valeur est spécifiée au format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.hasDisplayContent boolean
Indique si le message comporte du contenu à afficher pour les utilisateurs.
snippet.displayMessage string
Contient une chaîne qui s'affiche pour les utilisateurs. Ce champ n'est pas présent si le type de message est chatEndedEvent ou tombstone.
snippet.fanFundingEventDetails object
Remarque : Cet objet et ses propriétés enfants ont été abandonnés. À compter du 28 février 2017, les ressources liveChatMessage ne renverront plus d'informations sur les événements de financement par les fans.

Cet objet contient des informations sur l'événement de financement. Il n'est présent que si le type de message est fanFundingEvent.
snippet.fanFundingEventDetails.amountMicros unsigned long
Remarque : Cette propriété est obsolète.

Montant du fonds.
snippet.fanFundingEventDetails.currency string
Remarque : Cette propriété est obsolète.

Devise dans laquelle le fonds a été créé.
snippet.fanFundingEventDetails.amountDisplayString string
Remarque : Cette propriété a été abandonnée.

Chaîne affichée qui indique le montant et la devise du fonds à l'utilisateur.
snippet.fanFundingEventDetails.userComment string
Remarque : Cette propriété est obsolète.

Commentaire ajouté par l'utilisateur à cet événement de financement par les fans.
snippet.textMessageDetails object
Cet objet contient des informations sur le message. Il n'est présent que si le type de message est textMessageEvent.
snippet.textMessageDetails.messageText string
Message de l'utilisateur.
snippet.userBannedDetails object
Cet objet contient des informations sur un utilisateur exclu du chat. Il contient également des informations sur l'exclusion elle-même. Les utilisateurs peuvent être bannis d'un chat de manière permanente ou temporaire.
snippet.userBannedDetails.bannedUserDetails object
Cet objet contient des informations sur l'utilisateur banni.
snippet.userBannedDetails.bannedUserDetails.channelId string
ID de la chaîne YouTube de l'utilisateur banni.
snippet.userBannedDetails.bannedUserDetails.channelUrl string
URL de la chaîne YouTube de l'utilisateur banni.
snippet.userBannedDetails.bannedUserDetails.displayName string
Nom à afficher de la chaîne YouTube de l'utilisateur banni.
snippet.userBannedDetails.bannedUserDetails.profileImageUrl string
Avatar de la chaîne YouTube de l'utilisateur banni.
snippet.userBannedDetails.banType string
Type d'interdiction. Les valeurs valides pour cette propriété sont les suivantes :
  • permanente
  • Provisoire
snippet.userBannedDetails.banDurationSeconds unsigned long
Durée de l'exclusion. Cette propriété n'est présente que si la valeur de la propriété snippet.userBannedDetails.banType est temporary.
snippet.memberMilestoneChatDetails object
Cet objet contient des informations sur un événement de jalon de membre. Il n'est présent que si le type de message est memberMilestoneChatEvent.
snippet.memberMilestoneChatDetails.userComment string
Commentaire ajouté par le membre à ce chat de fidélité. Ce champ est vide pour les messages sans commentaire du membre.
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
Nombre total de mois (arrondi au chiffre supérieur) pendant lesquels le spectateur a été membre, ce qui lui a permis d'obtenir ce chat de fidélité pour les membres. Il s'agit du même nombre de mois que celui affiché pour les utilisateurs de YouTube.
snippet.memberMilestoneChatDetails.memberLevelName string
Nom du niveau auquel le spectateur est membre. Les noms des niveaux sont définis par la chaîne YouTube qui propose la souscription. Dans certains cas, ce champ n'est pas renseigné.
snippet.newSponsorDetails object
Cet objet contient des informations sur l'événement "Annonce d'un nouveau membre". Ce champ n'est défini que si le type est newSponsorEvent. Le terme "membre" désigne le sponsor.
snippet.newSponsorDetails.memberLevelName string
Nom du niveau auquel le spectateur est membre. Les noms des niveaux sont définis par la chaîne YouTube qui propose la souscription. Dans certains cas, ce champ n'est pas renseigné.
snippet.newSponsorDetails.isUpgrade bool
Indique si le spectateur vient de passer d'un niveau inférieur à un niveau supérieur. Pour les spectateurs qui n'étaient pas membres au moment de l'achat, la valeur du champ est false.
snippet.superChatDetails object
Cet objet contient des informations sur un événement Super Chat. Il n'est présent que si le type de message est superChatEvent.
snippet.superChatDetails.amountMicros unsigned long
Montant de l'achat, en micros de la devise de l'achat. Par exemple, si le montant de l'achat est de 1 €, la valeur de la propriété snippet.amountMicros est 1000000.
snippet.superChatDetails.currency string
Devise dans laquelle l'achat a été effectué. La valeur est un code de devise ISO 4217.
snippet.superChatDetails.amountDisplayString string
Chaîne, comme $1.00, contenant le montant et la devise de l'achat. La chaîne est destinée à être affichée pour l'utilisateur.
snippet.superChatDetails.userComment string
Commentaire ajouté par l'utilisateur à cet événement Super Chat.
snippet.superChatDetails.tier unsigned integer
Niveau du message payant. Notez que dans une ressource superChatEvent, la propriété snippet.messageType contient cette valeur.

Le niveau est basé sur le montant dépensé pour acheter le message. Il détermine également la couleur utilisée pour mettre en avant le message dans l'interface utilisateur du chat en direct, la longueur maximale du message et la durée pendant laquelle le message est épinglé au ticker.

Les niveaux de Super Chat sont décrits dans le Centre d'aide YouTube. (Consultez la section développable sur les informations d'achat de Super Chats.) Dans cette liste, le niveau 1 correspond au montant d'achat le plus bas, le niveau 2 au montant d'achat suivant, et ainsi de suite.
snippet.superStickerDetails object
Cet objet contient des informations sur un événement Super Sticker. Il n'est présent que si le type de message est superStickerEvent.
snippet.superStickerDetails.superStickerMetadata object
Informations sur le Super Sticker.
snippet.superStickerDetails.superStickerMetadata.stickerId string
Identifiant unique de l'image de l'autocollant. Notez que l'image ne s'affiche dans le message du Super Sticker que lorsque les utilisateurs consultent la fenêtre de chat sur YouTube. Toutefois, l'URL de l'image n'est pas disponible via l'API. Pour information uniquement, vous trouverez les ID de stickers associés aux Super Stickers dans ce fichier CSV.
snippet.superStickerDetails.superStickerMetadata.altText string
Chaîne de texte décrivant l'autocollant. Le champ snippet.superStickerDetails.superStickerMetadata.language identifie la langue du texte. Lorsque vous appelez la méthode liveChatMessages.list, définissez la valeur du paramètre hl sur la langue choisie pour le texte.
snippet.superStickerDetails.superStickerMetadata.language string
Langue de la valeur de la propriété snippet.superStickerDetails.superStickerMetadata.altText.
snippet.superStickerDetails.amountMicros unsigned long
Montant de l'achat, en micros de la devise de l'achat. Par exemple, si le montant de l'achat est de 1 €, la valeur de la propriété snippet.amountMicros est 1000000.
snippet.superStickerDetails.currency string
Devise dans laquelle l'achat a été effectué. La valeur est un code de devise ISO 4217.
snippet.superStickerDetails.amountDisplayString string
Chaîne, telle que $1.00, qui contient le montant de l'achat et la devise. Cette chaîne est destinée à être affichée pour l'utilisateur.
snippet.superStickerDetails.tier unsigned integer
Niveau du message payant. Notez que dans une ressource superChatEvent, la propriété snippet.messageType contient cette valeur.

Le niveau est basé sur le montant dépensé pour acheter le message. Il détermine également la couleur utilisée pour mettre en avant le message dans l'interface utilisateur du chat en direct, la longueur maximale du message et la durée pendant laquelle le message est épinglé dans le ticker.

Les niveaux de Super Chat, qui couvrent également les Super Stickers, sont décrits dans le Centre d'aide YouTube. (Consultez la section "Informations sur l'achat de Super Chats".) Dans cette liste, le niveau dont le montant de l'achat est le plus bas est le niveau 1, le niveau dont le montant de l'achat est le deuxième plus bas est le niveau 2, et ainsi de suite.
snippet.pollDetails object
Cet objet contient des détails sur un événement de sondage. Il n'est présent que si le type de message est pollEvent.
snippet.pollDetails.metadata object
Détails sur l'événement de sondage.
snippet.pollDetails.metadata.options object
Options du sondage en direct.
snippet.pollDetails.metadata.options.optionText string
Texte de l'option du sondage en direct.
snippet.pollDetails.metadata.options.tally string
Nombre de votes pour l'option du sondage en direct. Le décompte n'est présent que si la requête API est autorisée par le propriétaire de la chaîne.
snippet.pollDetails.metadata.questionText string
Texte de la question du sondage en direct.
snippet.pollDetails.metadata.status enum
État de l'événement de sondage en direct. Les valeurs valides pour cette propriété sont les suivantes :
  • unknown
  • active
  • closed
snippet.membershipGiftingDetails object
Cet objet contient des informations sur un événement Offrir une souscription. Elle n'est présente que si message type est défini sur membershipGiftingEvent.
snippet.membershipGiftingDetails.giftMembershipsCount integer
Nombre de souscriptions en cadeau achetées par l'utilisateur.
snippet.membershipGiftingDetails.giftMembershipsLevelName string
Nom du niveau des souscriptions en cadeau achetées par l'utilisateur. Les noms des niveaux sont définis par la chaîne YouTube qui propose la souscription. Dans certains cas, ce champ n'est pas rempli.
snippet.giftMembershipReceivedDetails object
Cet objet contient des informations sur un événement "Souscription en cadeau reçue". Il n'est présent que si message type est défini sur giftMembershipReceivedEvent.
snippet.giftMembershipReceivedDetails.memberLevelName string
Nom du niveau auquel le spectateur est membre. Il correspond à l'snippet.membershipGiftingDetails.giftMembershipsLevelName du message d'offre de souscription associé. Les noms des niveaux sont définis par la chaîne YouTube qui propose la souscription. Dans certains cas, ce champ n'est pas rempli.
snippet.giftMembershipReceivedDetails.gifterChannelId string
ID de l'utilisateur qui a acheté la souscription à offrir. Il correspond à l'snippet.authorChannelId du message d'offre de souscription associé.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId ID du message de cadeau d'abonnement associé à cet abonnement sans frais. Cet ID fera toujours référence à un message dont le type est membershipGiftingEvent.
snippet.giftDetails object
Cet objet contient des détails sur un événement de cadeau. Il n'est présent que si message type est défini sur giftEvent.
snippet.giftDetails.jewelsAmount integer
Nombre de Joyaux utilisés pour le cadeau.
snippet.giftDetails.giftName string
Nom du cadeau.
snippet.giftDetails.giftUrl string
URL de l'élément de cadeau.
snippet.giftDetails.giftDuration object
Durée d'affichage de l'URL du cadeau.
snippet.giftDetails.giftDuration.seconds integer
Nombre de secondes pendant lesquelles l'URL du cadeau doit s'afficher.
snippet.giftDetails.giftDuration.nanos integer
Nombre de nanosecondes pendant lesquelles l'URL du cadeau doit être affichée.
snippet.giftDetails.hasVisualEffect boolean
Indique si le cadeau a un effet visuel.
snippet.giftDetails.comboCount integer
Nombre de cadeaux dans le combo. La valeur est définie sur 0 si ce n'est pas un combo.
snippet.giftDetails.altText string
Chaîne de texte décrivant le cadeau.
snippet.giftDetails.language string
Langue de la valeur de la propriété altText.
authorDetails object
L'objet authorDetails contient des informations supplémentaires sur l'utilisateur qui a posté ce message.
authorDetails.channelId string
ID de la chaîne YouTube de l'auteur.
authorDetails.channelUrl string
URL de la chaîne YouTube de l'auteur.
authorDetails.displayName string
Nom à afficher de la chaîne YouTube de l'auteur.
authorDetails.profileImageUrl string
URL de l'avatar de la chaîne YouTube de l'auteur.
authorDetails.isVerified boolean
Cette valeur indique si l'identité de l'auteur a été validée par YouTube.
authorDetails.isChatOwner boolean
Cette valeur indique si l'auteur est le propriétaire du chat en direct.
authorDetails.isChatSponsor boolean
Cette valeur indique si l'auteur est un sponsor du chat en direct.
authorDetails.isChatModerator boolean
Cette valeur indique si l'auteur est un modérateur du chat en direct.