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
    },
    "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
  },
}

プロパティ

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

プロパティ
kind string
API リソースのタイプを識別します。値は youtube#liveChatMessage になります。
etag etag
このリソースの Etag。
id string
YouTube がメッセージを一意に識別するために割り当てる ID。
注: giftEvents の場合、同じ ID を再利用してコンボ数を更新できます。
snippet object
`snippet` オブジェクトには、チャット メッセージに関する重要な詳細が含まれます。
snippet.type string
メッセージのタイプ。このプロパティは常に存在し、その値によってリソースに存在するフィールドが決まります。

このプロパティの有効な値は次のとおりです。
  • chatEndedEvent – チャットが終了し、これ以降メッセージを挿入できなくなりました。これは、ブロードキャストが終了してからしばらくすると自然に発生します。このタイプのメッセージは、チャンネルのデフォルトのブロードキャストのチャットには送信されません。
  • sponsorOnlyModeEndedEvent – チャットがスポンサー限定モードではなくなり、スポンサー以外のユーザーもメッセージを送信できるようになりました。このイベントには表示コンテンツはありません。
  • sponsorOnlyModeStartedEvent – チャットがスポンサー限定モードになり、スポンサーのみがメッセージを送信できるようになりました。このイベントには表示コンテンツはありません。
  • newSponsorEvent – 新規ユーザーが、チャットを所有するチャンネルのスポンサーになりました。author フィールドには、新しいスポンサーの詳細が含まれます。
  • memberMilestoneChatEvent – ユーザーがメンバー マイルストーン チャットを送信しました。
  • superChatEvent – ユーザーが Super Chat を購入しました。
  • superStickerEvent – ユーザーが Super Stickers を購入しました。
  • textMessageEvent – ユーザーがテキスト メッセージを送信しました。
  • tombstone – 墓石は、この ID と公開時刻でメッセージが存在していたが、その後削除されたことを示します。メッセージの削除時に送信されるのではなく、削除前にメッセージが存在していた場所を示すために表示されます。このタイプのメッセージには、snippet.liveChatId、snippet.type、snippet.publishedAt フィールドのみが含まれます。
  • userBannedEvent – ユーザーがモデレーターによって禁止されました。author フィールドには、モデレーターの詳細が含まれます。
  • membershipGiftingEvent – ユーザーが他の視聴者向けにメンバーシップを購入しました。
  • giftMembershipReceivedEvent – ユーザーがメンバーシップ ギフトを受け取りました。
  • pollDetails – ユーザーがライブ投票を作成しました。
  • giftEvent – ユーザーがジュエルをギフトと交換しました。
snippet.liveChatId string
メッセージが関連付けられているチャットを一意に識別する ID。ブロードキャストに関連付けられたチャット ID は、liveBroadcast リソースの snippet.liveChatId プロパティで返されます。
snippet.authorChannelId string
メッセージを作成したユーザーの ID。このフィールドは、次のメッセージ タイプの場合にのみ入力されます。
  • メッセージ タイプが textMessageEvent の場合、プロパティ値はメッセージを作成したユーザーを識別します。
  • メッセージ タイプが fanFundingEvent の場合、プロパティ値はブロードキャストに資金を提供したユーザーを識別します。
  • メッセージ タイプが newSponsorEvent の場合、プロパティ値はスポンサーになったばかりのユーザーを識別します。
  • メッセージ タイプが memberMilestoneChatEvent の場合、プロパティ値はメッセージを送信したメンバーを識別します。
  • メッセージ タイプが userBannedEvent の場合、プロパティ値はユーザーを禁止したモデレーターを識別します。
  • メッセージ タイプが membershipGiftingEvent の場合、プロパティ値はメンバーシップ ギフト購入を行ったユーザーを識別します。
  • メッセージ タイプが giftMembershipReceivedEvent の場合、プロパティ値はメンバーシップ ギフトを受け取ったユーザーを識別します。
  • メッセージ タイプが pollEvent の場合、プロパティ値はライブ投票を作成したユーザーを識別します。
  • メッセージ タイプが giftEvent の場合、プロパティ値はギフトを送信したユーザーを識別します。
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.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
購入金額(購入通貨のマイクロ単位)。たとえば、購入金額が 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 Stickers の詳細。
snippet.superStickerDetails.superStickerMetadata.stickerId string
ステッカー画像を識別する一意の ID。画像は、ユーザーが YouTube でチャット ウィンドウを表示したときにのみ、Super Stickers メッセージの一部として表示されます。ただし、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.tally string
ライブ投票の選択肢の集計。集計は、API リクエストがチャンネル所有者によって承認されている場合にのみ表示されます。
snippet.pollDetails.metadata.questionText string
ライブ投票の質問のテキスト。
snippet.pollDetails.metadata.status enum
ライブ投票イベントのステータス。このプロパティの有効な値は次のとおりです。
  • unknown
  • active
  • closed
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 のメッセージを参照します。
snippet.giftDetails object
このオブジェクトには、ギフト イベントの詳細が含まれます。message type が giftEvent の場合にのみ存在します。
snippet.giftDetails.jewelsAmount integer
ギフトと交換したジュエルの数。
snippet.giftDetails.giftName string
ギフトの名前。
snippet.giftDetails.giftUrl string
ギフト アセットの URL。
snippet.giftDetails.giftDuration object
ギフト URL を表示する期間。
snippet.giftDetails.giftDuration.seconds integer
ギフト URL を表示する秒数。
snippet.giftDetails.giftDuration.nanos integer
ギフト URL を表示するナノ秒数。
snippet.giftDetails.hasVisualEffect boolean
ギフトに視覚効果があるかどうか。
snippet.giftDetails.comboCount integer
ギフトのコンボ数。コンボでない場合は 0。
snippet.giftDetails.altText string
ギフトを説明するテキスト文字列。
snippet.giftDetails.language string
altText プロパティの値の言語。
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
この値は、作成者がチャットのモデレーターであるかどうかを示します。