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
    },
      "giftEventDetails": {
      "giftMetadata": {
        "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。
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 – ユーザーがライブ投票を作成しました。
  • giftEvent – ユーザーがジュエルをギフトと交換しました。
snippet.liveChatId string
メッセージが関連付けられているチャットを一意に識別する ID。配信に関連付けられたチャット ID は、liveBroadcast リソースの snippet.liveChatId プロパティで返されます。
snippet.authorChannelId string
メッセージを作成したユーザーの ID。このフィールドは、次のメッセージ タイプの場合にのみ入力されます。
  • メッセージ タイプが textMessageEvent の場合、プロパティ値はメッセージを作成したユーザーを識別します。
  • メッセージ タイプが fanFundingEvent の場合、プロパティ値は配信に資金を提供したユーザーを識別します。
  • メッセージ タイプが messageDeletedEvent の場合、プロパティ値はメッセージを削除したモデレーターを識別します。
  • メッセージ タイプが newSponsorEvent の場合、プロパティ値はスポンサーになったばかりのユーザーを識別します。
  • メッセージ タイプが memberMilestoneChatEvent の場合、プロパティ値はメッセージを送信したメンバーを識別します。
  • メッセージ タイプが userBannedEvent の場合、プロパティ値はユーザーを禁止したモデレーターを識別します。
  • メッセージ タイプが membershipGiftingEvent の場合、プロパティ値はメンバーシップのギフト購入を行ったユーザーを識別します。
  • メッセージ タイプが giftMembershipReceivedEvent の場合、プロパティ値はメンバーシップ ギフトを受け取ったユーザーを識別します。
  • メッセージ タイプが pollEvent の場合、プロパティ値はライブ投票を作成したユーザーを識別します。
  • メッセージ タイプが giftEvent の場合、プロパティ値はギフトを送信したユーザーを識別します。
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 Sticker イベントに関する詳細が含まれます。メッセージ タイプが superStickerEvent の場合にのみ存在します。
snippet.superStickerDetails.superStickerMetadata object
Super Sticker に関する詳細。
snippet.superStickerDetails.superStickerMetadata.stickerId string
ステッカー画像を識別する一意の ID。画像は、ユーザーが YouTube でチャット ウィンドウを表示している場合にのみ、Super Stickers メッセージの一部として表示されます。ただし、API を使用して画像 URL を取得することはできません。参考までに、この CSV ファイルで、どのステッカー ID がどの Super Sticker に関連しているかを確認できます。
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 Sticker も対象)については、YouTube ヘル 2 プセンターをご覧ください。(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 のメッセージを参照します。
snippet.giftEventDetails object
このオブジェクトには、ギフト イベントに関する詳細が含まれます。message typegiftEvent の場合にのみ存在します。
snippet.giftEventDetails.giftMetadata object
ギフト イベントの詳細。
snippet.giftEventDetails.giftMetadata.jewelsAmount integer
ギフトと交換したジュエルの数。
snippet.giftEventDetails.giftMetadata.giftName string
ギフトの名前。
snippet.giftEventDetails.giftMetadata.giftUrl string
ギフト アセットの URL。
snippet.giftEventDetails.giftMetadata.giftDuration object
ギフト URL を表示する期間。
snippet.giftEventDetails.giftMetadata.giftDuration.seconds integer
ギフト URL を表示する秒数。
snippet.giftEventDetails.giftMetadata.giftDuration.nanos integer
ギフト URL を表示するナノ秒数。
snippet.giftEventDetails.giftMetadata.hasVisualEffect boolean
ギフトに視覚効果があるかどうか。
snippet.giftEventDetails.giftMetadata.comboCount integer
ギフトのコンボ数。コンボでない場合は 0。
snippet.giftEventDetails.giftMetadata.altText string
ギフトを説明するテキスト文字列。
snippet.giftEventDetails.giftMetadata.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
この値は、投稿者がチャットのモデレーターであるかどうかを示します。