LiveChatMessages

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 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 - トゥームストーンは、この ID と公開時間でメッセージが存在していたが、その後削除されたことを示します。メッセージの削除時に送信されるのではなく、削除前にメッセージがあった場所を示すために表示されます。このタイプのメッセージには、snippet.liveChatIdsnippet.typesnippet.publishedAt のフィールドのみが含まれます。
  • userBannedEvent - ユーザーが管理者に禁止されました。author フィールドには、モデレーターの詳細が含まれます。
  • membershipGiftingEvent - ユーザーが他の視聴者のためにメンバーシップを購入しました。
  • giftMembershipReceivedEvent - ユーザーがメンバーシップ ギフトを受け取りました。
  • pollDetails - ユーザーがライブ アンケートを作成しました。
snippet.liveChatId string
メッセージが関連付けられているライブチャットを一意に識別する ID。ブロードキャストに関連付けられたライブチャット ID は、liveBroadcast リソースの snippet.liveChatId プロパティで返されます。
snippet.authorChannelId string
メッセージを作成したユーザーの ID。このフィールドは、次のメッセージ タイプでのみ入力されます。
  • メッセージ タイプが textMessageEvent の場合、プロパティ値はメッセージを作成したユーザーを識別します。
  • メッセージ タイプが fanFundingEvent の場合、プロパティ値はブロードキャストの資金を提供したユーザーを識別します。
  • メッセージ タイプが messageDeletedEvent の場合、プロパティ値はメッセージを削除したモデレーターを識別します。
  • メッセージ タイプが newSponsorEvent の場合、プロパティ値はスポンサーになったばかりのユーザーを識別します。
  • メッセージ タイプが memberMilestoneChatEvent の場合、プロパティ値はメッセージを送信したメンバーを識別します。
  • メッセージ タイプが userBannedEvent の場合、プロパティ値はユーザーを禁止したモデレーターを識別します。
  • メッセージ タイプが membershipGiftingEvent の場合、プロパティ値はメンバーシップのギフト購入を行ったユーザーを識別します。
  • メッセージ タイプが giftMembershipReceivedEvent の場合、プロパティ値はギフト メンバーシップを受け取ったユーザーを識別します。
  • メッセージ タイプが pollEvent の場合、プロパティ値はライブ投票を作成したユーザーを識別します。
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
禁止の種類。このプロパティの有効な値は
です。
  • 永続的
  • 一時的
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 object
Super 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 string
snippet.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
ライブ投票イベントのステータス。このプロパティの有効な値は次のとおりです。
  • 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
この値は、投稿者がライブチャットのモデレーターかどうかを示します。