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 SMS 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 tant que l'événement en direct est actif. (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
Répertorie les messages d'un chat en direct. Essayer
insérer
Ajoute un message ou un sondage à un chat en direct. Essayer
transition
Permet de transformer l'état d'un message actif. Essayer
supprimer
Supprime un message de chat. La demande d'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
    },
    "messageDeletedDetails": {
      "deletedMessageId": 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,
          "questionText": string,
        },
        "status": enum
      },
    },
    "membershipGiftingDetails": {
      "giftMembershipsCount": integer,
      "giftMembershipsLevelName": string
    },
    "giftMembershipReceivedDetails": {
      "memberLevelName": string,
      "gifterChannelId": string,
      "associatedMembershipGiftingMessageId": 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 ressource d'API. La valeur sera youtube#liveChatMessage.
etag etag
ETag de cette ressource.
id string
ID attribué par YouTube pour identifier de façon unique le message.
snippet object
L'objet snippet contient les principales informations 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 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 produira naturellement peu de temps après la fin de la diffusion. Ce type de message n'est pas envoyé pour les chats en direct sur la diffusion par défaut d'une chaîne.
  • messageDeletedEvent : un message a été supprimé par un modérateur. Le champ author contient les informations sur le modérateur. Cet événement n'a aucun contenu à afficher.
  • sponsorOnlyModeEndedEvent : le chat n'est plus en mode Sponsors, ce qui signifie que les autres utilisateurs peuvent désormais envoyer des messages. Cet événement n'a aucun contenu à afficher.
  • sponsorOnlyModeStartedEvent : le chat est passé en mode Sponsors, ce qui signifie que seuls les sponsors peuvent envoyer des messages. Cet événement n'a aucun contenu à afficher.
  • newSponsorEvent : un nouvel utilisateur a parrainé 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 SMS.
  • tombstone : un tombstone signifie qu'un message existait auparavant avec cet ID et cette heure de publication, mais qu'il a depuis été supprimé. Elle n'est pas envoyée lors de la suppression d'un message, mais indique où se trouvait le 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é exclu par un modérateur. Le champ author contient les informations sur le modérateur.
  • membershipGiftingEvent : un utilisateur a souscrit une souscription pour d'autres spectateurs.
  • giftMembershipReceivedEvent : un utilisateur a reçu une souscription sans frais.
  • pollDetails : un utilisateur a créé un sondage en direct.
snippet.liveChatId string
ID qui identifie de manière unique le chat en direct auquel le message est associé. L'ID de 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 créé le message. Ce champ n'est rempli 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 rédigé 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 messageDeletedEvent, la valeur de la propriété identifie le modérateur qui a supprimé le message.
  • Si le type de message est newSponsorEvent, la valeur de la propriété identifie l'utilisateur qui vient de devenir un 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 exclu l'utilisateur.
  • Si le type de message est membershipGiftingEvent, la valeur de la propriété identifie l'utilisateur qui a acheté une souscription.
  • Si le type de message est giftMembershipReceivedEvent, la valeur de la propriété identifie l'utilisateur qui a reçu la souscription sans frais.
  • Si le type de message est pollEvent, la valeur de la propriété identifie l'utilisateur qui a créé le sondage en direct.
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 qui doit être présenté aux utilisateurs.
snippet.displayMessage string
Contient une chaîne présentée aux 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 sont obsolètes. À 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é est obsolète.

Chaîne affichée qui affiche le montant du fonds et la devise à 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 SMS. Il n'est présent que si le type de message est textMessageEvent.
snippet.textMessageDetails.messageText string
Message de l'utilisateur.
snippet.messageDeletedDetails object
Cet objet contient les détails d'un message supprimé par un modérateur du chat ou par le propriétaire de la chaîne de la diffusion en direct. Il n'est présent que si le type de message est messageDeletedEvent.
snippet.messageDeletedDetails.deletedMessageId string
Identifiant unique du message supprimé. Cette valeur est identique à celle de la propriété id du message textuel d'origine. Par exemple, si la propriété id d'un textMessageEvent est 123 et que ce message est ensuite supprimé, la valeur snippet.messageDeletedDetails.deletedMessageId de ce message sera 123.

Si vous mettez en cache les messages de chat après les avoir récupérés, utilisez la valeur de cette propriété pour identifier le message qui ne doit plus être affiché.
snippet.userBannedDetails object
Cet objet contient des informations sur un utilisateur qui a été exclu du chat. Il contient également des informations sur l'exclusion. Un utilisateur peut être exclu d'un chat de manière permanente ou temporaire.
snippet.userBannedDetails.bannedUserDetails object
Cet objet contient des informations sur l'utilisateur exclu.
snippet.userBannedDetails.bannedUserDetails.channelId string
ID de la chaîne YouTube de l'utilisateur exclu.
snippet.userBannedDetails.bannedUserDetails.channelUrl string
URL de la chaîne YouTube de l'utilisateur exclu
snippet.userBannedDetails.bannedUserDetails.displayName string
Nom à afficher de la chaîne YouTube de l'utilisateur exclu
snippet.userBannedDetails.bannedUserDetails.profileImageUrl string
Avatar de la chaîne YouTube de l'utilisateur exclu.
snippet.userBannedDetails.banType string
Type d'exclusion. 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 les détails d'un événement de fidélité pour les membres. Il n'est présent que si le type de message est memberMilestoneChatEvent.
snippet.memberMilestoneChatDetails.userComment string
Commentaire ajouté à ce chat de fidélité par le membre. Ce champ est vide pour les messages sans commentaire de la part du membre.
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
Nombre total de mois (arrondi du nombre de membres) que le spectateur a souscrits pour l'avoir accordé à ce chat de fidélité. Il s'agit du même nombre de mois que celui affiché pour les utilisateurs YouTube.
snippet.memberMilestoneChatDetails.memberLevelName string
Nom du niveau auquel le lecteur est membre. Les noms des niveaux sont définis par la chaîne YouTube proposant les souscriptions. Dans certains cas, ce champ n'est pas renseigné.
snippet.newSponsorDetails object
Cet objet contient des détails sur l'événement Annonce d'un nouveau membre. Il n'est défini que si le type est newSponsorEvent. "Membre" est le terme pour « commanditaire ».
snippet.newSponsorDetails.memberLevelName string
Nom du niveau auquel le lecteur est membre. Les noms des niveaux sont définis par la chaîne YouTube proposant les souscriptions. Dans certains cas, ce champ n'est pas renseigné.
snippet.newSponsorDetails.isUpgrade bool
Indique si le spectateur vient de passer à un niveau infé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 unités de la devise d'achat. Par exemple, si le montant de l'achat est d'un dollar, la valeur de la propriété snippet.amountMicros est 1000000.
snippet.superChatDetails.currency string
Devise dans laquelle l'achat a été effectué. La valeur indiquée est un code de devise ISO 4217.
snippet.superChatDetails.amountDisplayString string
Chaîne, comme $1.00, qui contient le montant de l'achat et la devise. La chaîne est destinée à être présentée à 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. Elle détermine également la couleur utilisée pour mettre le message en surbrillance dans l'interface utilisateur du chat en direct, sa longueur maximale et la durée pendant laquelle le message est épinglé sur le bandeau.

Pour en savoir plus sur les différentes catégories de Super Chat, consultez le Centre d'aide YouTube. Consultez la section à développer concernant les détails de l'achat de Super Chat. Dans cette liste, le niveau d'achat le plus faible correspond au niveau 1, le niveau suivant le plus bas correspond au niveau 2, 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 qui identifie l'image de l'autocollant. Notez que l'image ne s'affiche que dans le message Super Sticker lorsque les utilisateurs affichent la fenêtre de chat sur YouTube. Toutefois, l'URL de l'image n'est pas disponible avec l'API. À titre indicatif uniquement, vous trouverez les ID d'autocollants 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 unités de la devise d'achat. Par exemple, si le montant de l'achat est d'un dollar, la valeur de la propriété snippet.amountMicros est 1000000.
snippet.superStickerDetails.currency string
Devise dans laquelle l'achat a été effectué. La valeur indiquée est un code de devise ISO 4217.
snippet.superStickerDetails.amountDisplayString string
Chaîne, comme $1.00, qui contient le montant de l'achat et la devise. La chaîne est destinée à être présentée à 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. Elle détermine également la couleur utilisée pour mettre le message en surbrillance dans l'interface utilisateur du chat en direct, sa longueur maximale et la durée pendant laquelle le message est épinglé sur le bandeau.

Pour en savoir plus sur les niveaux Super Chat, qui couvrent également les Super Stickers, consultez le Centre d'aide YouTube. Consultez la section à développer concernant les détails de l'achat de Super Chat. Dans cette liste, le niveau d'achat le plus faible correspond au niveau 1, le niveau suivant le plus bas correspond au niveau 2, et ainsi de suite.
snippet.pollDetails object
Cet objet contient des informations 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 de sondage en direct.
snippet.pollDetails.metadata.options.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 détails sur un événement Offrir une souscription. Il n'est présent que si message type est défini sur membershipGiftingEvent.
snippet.membershipGiftingDetails.giftMembershipsCount integer
Nombre de souscriptions offertes par l'utilisateur.
snippet.membershipGiftingDetails.giftMembershipsLevelName string
Nom du niveau des souscriptions offertes par l'utilisateur. Les noms de niveau sont définis par la chaîne YouTube proposant les souscriptions. Dans certains cas, ce champ n'est pas renseigné.
snippet.giftMembershipReceivedDetails object
Cet objet contient des détails sur un événement de type "Souscription sans frais". Il n'est présent que si message type est défini sur giftMembershipReceivedEvent.
snippet.giftMembershipReceivedDetails.memberLevelName string
Nom du niveau auquel le lecteur est membre. Il correspond au snippet.membershipGiftingDetails.giftMembershipsLevelName du message associé pour offrir une souscription. Les noms de niveau sont définis par la chaîne YouTube proposant les souscriptions. Dans certains cas, ce champ n'est pas renseigné.
snippet.giftMembershipReceivedDetails.gifterChannelId string
ID de l'utilisateur ayant effectué l'achat d'une souscription à offrir. Il correspond au snippet.authorChannelId du message associé pour offrir une souscription.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
ID du message d'offre de souscriptions associé à cette souscription sans frais. Cet ID fait toujours référence à un message dont le champ type est membershipGiftingEvent.
authorDetails object
L'objet authorDetails contient des informations supplémentaires sur l'utilisateur qui a publié 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 sponsorise le chat en direct.
authorDetails.isChatModerator boolean
Cette valeur indique si l'auteur est un modérateur du chat en direct.