LiveChatMessages

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

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

メソッド

この API では、liveChatMessages リソースについて次のメソッドがサポートされています。

list
特定のチャットのチャット メッセージを一覧表示します。 今すぐ試す
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,
          "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 – 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
このオブジェクトには、New Member Announcement イベントの詳細が含まれます。タイプが 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 の購入の詳細に関する展開可能なセクションをご覧ください)。このリストで、購入金額が最も低い階層が Tier 1、次に低い階層が Tier 2 というように続きます。
snippet.superStickerDetails object
このオブジェクトには、Super Sticker イベントの詳細が含まれます。メッセージ タイプsuperStickerEvent の場合にのみ存在します。
snippet.superStickerDetails.superStickerMetadata object
Super Sticker の詳細。
snippet.superStickerDetails.superStickerMetadata.stickerId string
ステッカー画像を識別する一意の ID。この画像は、ユーザーが YouTube でチャット ウィンドウを表示したときに Super Sticker のメッセージの一部としてのみ表示されます。ただし、API を使用して画像の URL を取得することはできません。参照用として、各 Super Stickers とどのステッカー 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
購入金額(購入通貨のマイクロ単位)。たとえば、購入金額が 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 の購入の詳細に関する展開可能なセクションをご覧ください)。このリストで、購入金額が最も低い階層が Tier 1、次に低い階層が Tier 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
この値は、作成者がチャットのモデレーターであるかどうかを示します。