LiveChatMessages

liveChatMessage リソースは、YouTube チャットのチャット メッセージを表します。リソースには、新しく投稿されたテキスト メッセージや視聴者ファンディング イベントなど、複数の種類のメッセージに関する詳細を含めることができます。

チャット機能はライブ配信ではデフォルトで有効になっており、ライブイベントが行われている間利用できます。(イベントが終了すると、そのイベントのチャットは使用できなくなります)。

メソッド

API は、liveChatMessages リソースに対して次のメソッドをサポートしています。

list
特定のチャットのチャット メッセージを一覧表示します。 今すぐ試す
insert
チャットにメッセージを追加します。こちらから今すぐお試しください。
delete
チャット メッセージを削除します。API リクエストは、チャンネルの所有者またはチャットのモデレーターが承認する必要があります。 今すぐ試す

リソース表現

次の JSON 構造は、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
    },
    "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
  },
}

プロパティ

次の表は、このリソースで使用されているプロパティの定義を示したものです。

プロパティ
kind string
API リソースのタイプを識別します。値は youtube#liveChatMessage です。
etag etag
このリソースの Etag。
id string
メッセージを一意に識別するために YouTube が割り当てる ID。
snippet object
snippet オブジェクトには、チャット メッセージに関する主要な詳細情報が含まれます。
snippet.type string
メッセージのタイプ。このプロパティは常に存在し、その値によってリソースに存在するフィールドが決まります。

このプロパティで有効な値は次のとおりです。
  • chatEndedEvent – チャットが終了し、このチャットの後にメッセージを挿入できなくなります。これは、配信が終了してからしばらくすると自然に行われます。このタイプのメッセージは、チャンネルのデフォルトのブロードキャストでのチャットに対しては送信されません。
  • messageDeletedEvent – メッセージがモデレーターによって削除されました。author フィールドには、モデレーターの詳細が含まれます。このイベントには表示コンテンツがありません。
  • sponsorOnlyModeEndedEvent – チャットがスポンサー専用モードではなくなったため、スポンサー以外のユーザーもメッセージを送信できるようになりました。このイベントには表示コンテンツがありません。
  • sponsorOnlyModeStartedEvent – チャットがスポンサー専用モードになりました。つまり、スポンサーのみがメッセージを送信できます。このイベントには表示コンテンツがありません。
  • newSponsorEvent – 新しいユーザーが、チャットを所有するチャンネルのスポンサーになりました。author フィールドには、新しいスポンサーの詳細が含まれます。
  • memberMilestoneChatEvent – ユーザーがメンバー マイルストーン チャットを送信しました。
  • superChatEvent – ユーザーが Super Chat を購入しました。
  • superStickerEvent – ユーザーが Super Sticker を購入した。
  • textMessageEvent – ユーザーがテキスト メッセージを送信しました。
  • tombstone – tombstone は、以前にこの ID と公開時刻のメッセージが存在していたものの、その後削除されたことを示します。メッセージの削除時に送信されるのではなく、削除される前のメッセージがどこに存在していたかを示すために表示されます。このタイプのメッセージには、snippet.liveChatIdsnippet.typesnippet.publishedAt フィールドのみが含まれます。
  • userBannedEvent – ユーザーはモデレーターによって参加禁止になっています。author フィールドには、モデレーターの詳細が含まれます。
  • membershipGiftingEvent – ユーザーが他の視聴者のメンバーシップを購入しました。
  • giftMembershipReceivedEvent – ユーザーがメンバーシップ ギフトを受け取りました。
snippet.liveChatId string
メッセージが関連付けられているチャットを一意に識別する ID。ブロードキャストに関連付けられたチャット ID は、liveBroadcast リソースの snippet.liveChatId プロパティで返されます。
snippet.authorChannelId string
メッセージを作成したユーザーの ID。このフィールドは、次のメッセージ タイプの場合にのみ入力されます。
  • メッセージ タイプが textMessageEvent の場合、このプロパティ値はメッセージを作成したユーザーを示します。
  • メッセージ タイプが fanFundingEvent の場合、このプロパティ値はブロードキャストの資金を提供したユーザーを識別します。
  • メッセージの種類が messageDeletedEvent の場合、このプロパティの値は、メッセージを削除したモデレーターを示します。
  • メッセージ タイプが newSponsorEvent の場合は、スポンサーになったばかりのユーザーがプロパティ値に識別されます。
  • メッセージ タイプが memberMilestoneChatEvent の場合、このプロパティ値はメッセージを送信したメンバーを識別します。
  • メッセージ タイプが userBannedEvent の場合、このプロパティの値は、ユーザーを参加禁止にしたモデレーターを示します。
  • メッセージ タイプが membershipGiftingEvent の場合は、メンバーシップ ギフトの購入を行ったユーザーがプロパティ値に識別されます。
  • メッセージ タイプが giftMembershipReceivedEvent の場合、プロパティ値はメンバーシップ ギフトを受け取ったユーザーを識別します。
snippet.publishedAt datetime
メッセージが最初に公開された日時。値は ISO 8601YYYY-MM-DDThh:mm:ss.sZ)形式で指定します。
snippet.hasDisplayContent boolean
メッセージに、ユーザーに表示する必要がある表示コンテンツがあるかどうかを示します。
snippet.displayMessage string
ユーザーに表示される文字列が含まれます。メッセージ タイプchatEndedEvent または tombstone の場合、このフィールドはありません。
snippet.fanFundingEventDetails object
注: このオブジェクトとその子プロパティは非推奨になりました。2017 年 2 月 28 日以降、liveChatMessage リソースは視聴者ファンディング イベントの詳細を返さなくなります。

このオブジェクトには、ファンディング イベントの詳細が含まれます。メッセージ タイプfanFundingEvent の場合にのみ存在します。
snippet.fanFundingEventDetails.amountMicros unsigned long
注: このプロパティは非推奨になりました。

ファンドの金額。
snippet.fanFundingEventDetails.currency string
注: このプロパティは非推奨になりました。

ファンドが行われた通貨。
snippet.fanFundingEventDetails.amountDisplayString string
注: このプロパティは非推奨になりました。

ユーザーに資金の金額と通貨を表示するレンダリングされた文字列。
snippet.fanFundingEventDetails.userComment string
注: このプロパティは非推奨になりました。

この視聴者ファンディング イベントにユーザーが追加したコメント。
snippet.textMessageDetails object
このオブジェクトには、テキスト メッセージに関する詳細が含まれます。メッセージ タイプtextMessageEvent の場合にのみ存在します。
snippet.textMessageDetails.messageText string
ユーザーのメッセージ。
snippet.messageDeletedDetails object
このオブジェクトには、チャット モデレーターまたはライブ配信のチャンネルの所有者によって削除されたメッセージの詳細が含まれます。メッセージ タイプmessageDeletedEvent の場合にのみ存在します。
snippet.messageDeletedDetails.deletedMessageId string
削除されたメッセージを一意に識別する ID。この値は、元のテキスト メッセージの id プロパティ値と同じです。たとえば、textMessageEventid プロパティ値が 123 で、その後そのメッセージが削除された場合、そのメッセージの snippet.messageDeletedDetails.deletedMessageId 値は 123 になります。

チャット メッセージの取得後にキャッシュに保存する場合は、このプロパティの値を使用して、今後表示されないメッセージを特定します。
snippet.userBannedDetails object
このオブジェクトには、チャットへの参加が禁止されたユーザーの詳細が含まれます。禁止自体に関する詳細も含まれます。ユーザーをチャットから恒久的または一時的に参加禁止にすることができます。
snippet.userBannedDetails.bannedUserDetails object
このオブジェクトには、禁止されたユーザーに関する情報が含まれます。
snippet.userBannedDetails.bannedUserDetails.channelId string
禁止されたユーザーの YouTube チャンネル ID。
snippet.userBannedDetails.bannedUserDetails.channelUrl string
禁止されたユーザーの YouTube チャンネルの URL。
snippet.userBannedDetails.bannedUserDetails.displayName string
禁止されたユーザーの YouTube チャンネルの表示名。
snippet.userBannedDetails.bannedUserDetails.profileImageUrl string
禁止されたユーザーの YouTube チャンネルのアバター。
snippet.userBannedDetails.banType string
禁止のタイプ。このプロパティの有効な値は次のとおりです。
  • ずっと
  • temporary
snippet.userBannedDetails.banDurationSeconds unsigned long
禁止期間。このプロパティは、snippet.userBannedDetails.banType プロパティ値が temporary の場合にのみ存在します。
snippet.memberMilestoneChatDetails object
このオブジェクトには、メンバー マイルストーン イベントの詳細が含まれます。メッセージ タイプmemberMilestoneChatEvent の場合にのみ存在します。
snippet.memberMilestoneChatDetails.userComment string
メンバーがこのメンバー マイルストーン チャットに追加したコメント。メンバーからのコメントがないメッセージの場合、このフィールドは空になります。
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
視聴者がメンバーになってこのメンバー マイルストーン チャットを付与した月の合計(切り上げ)。YouTube ユーザーに表示される月数と同じです。
snippet.memberMilestoneChatDetails.memberLevelName string
閲覧者がメンバーであるレベルの名前。レベル名は、メンバーシップを提供している YouTube チャンネルによって定義されます。このフィールドに値が表示されないこともあります。
snippet.newSponsorDetails object
このオブジェクトには、新しいメンバーのお知らせイベントの詳細が含まれます。これは、タイプが newSponsorEvent の場合にのみ設定されます。「メンバー」は「スポンサー」という用語です。
snippet.newSponsorDetails.memberLevelName string
閲覧者がメンバーであるレベルの名前。レベル名は、メンバーシップを提供している YouTube チャンネルによって定義されます。このフィールドに値が表示されないこともあります。
snippet.newSponsorDetails.isUpgrade bool
閲覧者が下位レベルからアップグレードした直後かどうかを示します。購入時にメンバーではなかった閲覧者の場合、フィールドの値は false になります。
snippet.superChatDetails object
このオブジェクトには、Super Chat イベントの詳細が含まれます。メッセージ タイプsuperChatEvent の場合にのみ存在します。
snippet.superChatDetails.amountMicros unsigned long
購入金額(購入通貨のマイクロ単位)。たとえば、購入金額が 1 ドルの場合、snippet.amountMicros プロパティの値は 1000000 です。
snippet.superChatDetails.currency string
購入に使用された通貨。値は ISO 4217 通貨コードです。
snippet.superChatDetails.amountDisplayString string
購入金額と通貨を含む文字列($1.00 など)。この文字列はユーザーに表示されることを目的としています。
snippet.superChatDetails.userComment string
ユーザーがこの Super Chat イベントに追加したコメント。
snippet.superChatDetails.tier unsigned integer
有料メッセージの階層。superChatEvent リソースでは、snippet.messageType プロパティにこの値が含まれます。

階層は、メッセージの購入に費やされた金額に基づきます。また、チャット UI でメッセージを目立たせる色、メッセージの最大長、メッセージがティッカーに固定される時間も決まります。

Super Chat の階層について詳しくは、YouTube ヘルプセンターをご覧ください。(Super Chat の購入の詳細については、展開可能なセクションをご覧ください)。このリストで、購入額が最も低い階層は階層 1、その次に低い額は階層 2、というように続きます。
snippet.superStickerDetails object
このオブジェクトには、Super Sticker イベントの詳細が含まれます。メッセージ タイプsuperStickerEvent の場合にのみ存在します。
snippet.superStickerDetails.superStickerMetadata object
Super Sticker の詳細。
snippet.superStickerDetails.superStickerMetadata.stickerId string
ステッカー画像を識別する一意の ID。この画像は、ユーザーが YouTube でチャット ウィンドウを表示したときに Super Sticker メッセージの一部としてのみ表示されます。ただし、API を使用して画像の URL を取得することはできません。ご参考までに、ステッカー ID と Super Stickers との関係を、こちらの CSV ファイルでご確認ください。
snippet.superStickerDetails.superStickerMetadata.altText string
ステッカーを説明するテキスト文字列。snippet.superStickerDetails.superStickerMetadata.language フィールドは、テキストの言語を指定します。liveChatMessages.list メソッドを呼び出すときは、hl パラメータ値をテキストに選択した言語に設定します。
snippet.superStickerDetails.superStickerMetadata.language string
snippet.superStickerDetails.superStickerMetadata.altText プロパティ値の言語。
snippet.superStickerDetails.amountMicros unsigned long
購入金額(購入通貨のマイクロ単位)。たとえば、購入金額が 1 ドルの場合、snippet.amountMicros プロパティの値は 1000000 です。
snippet.superStickerDetails.currency string
購入に使用された通貨。値は ISO 4217 通貨コードです。
snippet.superStickerDetails.amountDisplayString string
購入金額と通貨を含む文字列($1.00 など)。この文字列はユーザーに表示されることを目的としています。
snippet.superStickerDetails.tier unsigned integer
有料メッセージの階層。superChatEvent リソースでは、snippet.messageType プロパティにこの値が含まれます。

階層は、メッセージの購入に費やされた金額に基づきます。また、チャット UI でメッセージを目立たせる色、メッセージの最大長、メッセージがティッカーに固定される時間も決まります。

Super Chat の階層(Super Stickers も対象)については、YouTube ヘルプセンターをご覧ください。(Super Chat の購入の詳細については、展開可能なセクションをご覧ください)。このリストで、購入額が最も低い階層は階層 1、その次に低い額は階層 2、というように続きます。
snippet.pollDetails object
このオブジェクトには、アンケート イベントの詳細が含まれます。メッセージ タイプpollEvent の場合にのみ存在します。
snippet.pollDetails.metadata object
アンケート イベントの詳細。
snippet.pollDetails.metadata.options object
ライブ アンケートのオプション。
snippet.pollDetails.metadata.options.optionText string
ライブ アンケートのオプションのテキスト。
snippet.pollDetails.metadata.options.questionText string
ライブ アンケートの質問のテキスト。
snippet.pollDetails.metadata.status enum
ライブ アンケート イベントのステータス。このプロパティの有効な値は次のとおりです。
  • unknown
  • active
  • closed
snippet.membershipGiftingDetails object
このオブジェクトには、メンバーシップ ギフト イベントの詳細が含まれます。message typemembershipGiftingEvent の場合にのみ存在します。
snippet.membershipGiftingDetails.giftMembershipsCount integer
ユーザーが購入したメンバーシップ ギフトの数。
snippet.membershipGiftingDetails.giftMembershipsLevelName string
ユーザーが購入したメンバーシップ ギフトのレベルの名前。レベル名は、メンバーシップを提供している YouTube チャンネルによって定義されます。このフィールドに値が表示されないこともあります。
snippet.giftMembershipReceivedDetails object
このオブジェクトには、メンバーシップ ギフトの受け取りイベントの詳細が含まれます。message typegiftMembershipReceivedEvent の場合にのみ存在します。
snippet.giftMembershipReceivedDetails.memberLevelName string
閲覧者がメンバーであるレベルの名前。これは、関連するメンバーシップ ギフト メッセージの snippet.membershipGiftingDetails.giftMembershipsLevelName と一致します。レベル名は、メンバーシップを提供している YouTube チャンネルによって定義されます。このフィールドに値が表示されないこともあります。
snippet.giftMembershipReceivedDetails.gifterChannelId string
メンバーシップ ギフトの購入を行ったユーザーの ID。これは、関連するメンバーシップ ギフト メッセージの snippet.authorChannelId と一致します。
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
このメンバーシップ ギフトに関連するメンバーシップ ギフト メッセージの ID。この ID は、typemembershipGiftingEvent であるメッセージを常に参照します。
authorDetails object
authorDetails オブジェクトには、このメッセージを投稿したユーザーに関する追加情報が含まれます。
authorDetails.channelId string
作成者の YouTube チャンネル ID。
authorDetails.channelUrl string
作成者の YouTube チャンネルの URL。
authorDetails.displayName string
作成者の YouTube チャンネルの表示名。
authorDetails.profileImageUrl string
作成者の YouTube チャンネルのアバターの URL。
authorDetails.isVerified boolean
この値は、作成者の身元が YouTube によって確認済みかどうかを示します。
authorDetails.isChatOwner boolean
この値は、投稿者がチャットのオーナーかどうかを示します。
authorDetails.isChatSponsor boolean
この値は、投稿者がチャットのスポンサーかどうかを示します。
authorDetails.isChatModerator boolean
この値は、投稿者がチャットのモデレーターかどうかを示します。