liveChatMessage リソースは、YouTube ライブチャットのチャット メッセージを表します。このリソースには、新しく投稿されたテキスト メッセージやファン ファンド イベントなど、さまざまな種類のメッセージに関する詳細情報が含まれます。
ライブ配信では、チャット機能がデフォルトで有効になっており、ライブイベントがアクティブな間は利用できます。(イベント終了後は、そのイベントのライブチャットは利用できなくなります)。
メソッド
この API は、liveChatMessages リソースに対して次のメソッドをサポートしています。
- list
- 特定のチャットのチャット メッセージの一覧を取得します。今すぐ試す
- streamList
- 低遅延で特定のチャットのチャット メッセージを受信するためのサーバー ストリーミング接続を有効にします。今すぐ試す
- insert
- チャットにメッセージまたはアンケートを追加します。今すぐ試す
- transition
- ライブ メッセージの状態を移行します。今すぐ試す
- 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
    },
    "pollDetails": {
      "metadata": {
        "options": {
          "optionText": string,
          "tally": 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
  },
}プロパティ
次の表は、このリソースで使用されているプロパティの定義を示したものです。
| プロパティ | |
|---|---|
| kind | stringAPI リソースのタイプを識別します。値は youtube#liveChatMessageになります。 | 
| etag | etagこのリソースの Etag。 | 
| id | stringYouTube がメッセージを一意に識別するために割り当てる ID。 | 
| snippet | objectsnippetオブジェクトには、チャット メッセージに関するコアの詳細が含まれます。 | 
| snippet.type | stringメッセージのタイプ。このプロパティは常に存在し、その値によってリソースに存在するフィールドが決まります。 このプロパティの有効な値は次のとおりです。 
 | 
| snippet.liveChatId | stringメッセージが関連付けられているライブチャットを一意に識別する ID。ブロードキャストに関連付けられたライブチャット ID は、 liveBroadcastリソースのsnippet.liveChatIdプロパティで返されます。 | 
| snippet.authorChannelId | stringメッセージを作成したユーザーの ID。このフィールドは、次のメッセージ タイプでのみ入力されます。 
 | 
| snippet.publishedAt | datetimeメッセージが最初に公開された日時。値は ISO 8601( YYYY-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プロパティ値と同じです。たとえば、textMessageEventのidプロパティの値が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禁止の種類。このプロパティの有効な値は です。 
 | 
| 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購入金額(購入通貨の 100 万分の 1 の単位で表記)。たとえば、購入金額が 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 Stickers イベントに関する詳細が含まれます。メッセージ タイプが superStickerEventの場合にのみ存在します。 | 
| snippet.superStickerDetails.superStickerMetadata | objectSuper Sticker の詳細。 | 
| snippet.superStickerDetails.superStickerMetadata.stickerId | stringステッカー画像を識別する一意の ID。なお、画像は、ユーザーが YouTube でチャット ウィンドウを表示したときにのみ、Super Sticker メッセージの一部として表示されます。ただし、API を使用して画像 URL を取得することはできません。参考までに、どのステッカー ID がどのスーパーステッカーに関連しているかは、こちらの CSV ファイルで確認できます。 | 
| snippet.superStickerDetails.superStickerMetadata.altText | stringステッカーを説明するテキスト文字列。 snippet.superStickerDetails.superStickerMetadata.languageフィールドは、テキストの言語を識別します。liveChatMessages.listメソッドを呼び出すときは、hl パラメータの値をテキストに選択した言語に設定します。 | 
| snippet.superStickerDetails.superStickerMetadata.language | stringsnippet.superStickerDetails.superStickerMetadata.altTextプロパティ値の言語。 | 
| snippet.superStickerDetails.amountMicros | unsigned long購入金額(購入通貨の 100 万分の 1 の単位で表記)。たとえば、購入金額が 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.tally | stringライブ アンケートの選択肢の集計。集計は、API リクエストがチャンネル所有者によって承認された場合にのみ表示されます。 | 
| snippet.pollDetails.metadata.questionText | stringライブ アンケートの質問のテキスト。 | 
| snippet.pollDetails.metadata.status | enumライブ投票イベントのステータス。このプロパティの有効な値は次のとおりです。 
 | 
| snippet.membershipGiftingDetails | objectこのオブジェクトには、メンバーシップのギフトイベントに関する詳細が含まれます。 message typeがmembershipGiftingEventの場合にのみ存在します。 | 
| snippet.membershipGiftingDetails.giftMembershipsCount | integerユーザーが購入したメンバーシップ ギフトの数。 | 
| snippet.membershipGiftingDetails.giftMembershipsLevelName | stringユーザーが購入したギフト メンバーシップのレベルの名前。レベル名は、メンバーシップを提供している YouTube チャンネルによって定義されます。このフィールドは、状況によっては入力されません。 | 
| snippet.giftMembershipReceivedDetails | objectこのオブジェクトには、ギフト メンバーシップの受け取りイベントに関する詳細が含まれます。 message typeがgiftMembershipReceivedEventの場合にのみ存在します。 | 
| snippet.giftMembershipReceivedDetails.memberLevelName | string視聴者がメンバーになっているレベルの名前。これは、関連付けられたメンバーシップ ギフト メッセージの snippet.membershipGiftingDetails.giftMembershipsLevelNameと一致します。レベル名は、メンバーシップを提供している YouTube チャンネルによって定義されます。このフィールドは、状況によっては入力されません。 | 
| snippet.giftMembershipReceivedDetails.gifterChannelId | stringメンバーシップのギフト購入を行ったユーザーの ID。これは、関連付けられたメンバーシップ ギフト メッセージの snippet.authorChannelIdと一致します。 | 
| snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId | stringこのギフト メンバーシップに関連するメンバーシップ ギフト メッセージの ID。この ID は、常に typeがmembershipGiftingEventのメッセージを参照します。 | 
| authorDetails | objectauthorDetailsオブジェクトには、このメッセージを投稿したユーザーに関する追加の詳細情報が含まれます。 | 
| 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この値は、投稿者がライブチャットのモデレーターかどうかを示します。 |