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,
          "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 برای شناسایی منحصر به فرد پیام اختصاص می دهد.
snippet object
شی snippet حاوی جزئیات اصلی در مورد پیام چت است.
snippet. type string
نوع پیام این ویژگی همیشه وجود دارد و مقدار آن تعیین می کند که کدام فیلدها در منبع وجود دارند.

مقادیر معتبر برای این ویژگی عبارتند از:
  • chatEndedEvent - چت به پایان رسیده است و بعد از این پیام دیگر نمی توان درج کرد. این به طور طبیعی مدتی پس از پایان پخش اتفاق می افتد. این نوع پیام برای چت زنده در پخش پیش فرض کانال ارسال نمی شود.
  • messageDeletedEvent - یک پیام توسط مدیر حذف شده است. فیلد author حاوی جزئیات ناظر است. این رویداد هیچ محتوای نمایشی ندارد.
  • sponsorOnlyModeEndedEvent – ​​گپ دیگر در حالت فقط حامیان مالی نیست، به این معنی که کاربرانی که حامی مالی نیستند اکنون می توانند پیام ارسال کنند. این رویداد هیچ محتوای نمایشی ندارد.
  • sponsorOnlyModeStartedEvent – ​​چت وارد حالت فقط حامیان مالی شده است، به این معنی که فقط حامیان مالی قادر به ارسال پیام هستند. این رویداد محتوای نمایشی ندارد.
  • newSponsorEvent - یک کاربر جدید از کانالی که صاحب چت زنده است حمایت مالی کرده است. فیلدهای author حاوی جزئیات حامی جدید است.
  • memberMilestoneChatEvent – ​​کاربر یک عضو Milestone Chat ارسال کرده است.
  • superChatEvent - یک کاربر یک Super Chat خریداری کرده است.
  • superStickerEvent - یک کاربر یک Super Sticker خریداری کرده است.
  • textMessageEvent - یک کاربر یک پیام متنی ارسال کرده است.
  • tombstone - سنگ قبر نشان می دهد که قبلاً پیامی با این شناسه و زمان انتشار وجود داشته است، اما از آن زمان حذف شده است. پس از حذف پیام ارسال نمی شود، بلکه نشان داده می شود که قبل از حذف در کجا قرار داشته است. فقط فیلدهای snippet.liveChatId ، snippet.type و snippet.publishedAt در این نوع پیام وجود دارد.
  • userBannedEvent – ​​یک کاربر توسط ناظم ممنوع شده است. فیلد author حاوی جزئیات ناظر است.
  • membershipGiftingEvent - یک کاربر برای سایر بینندگان عضویت خریداری کرده است.
  • giftMembershipReceivedEvent - یک کاربر عضویت هدیه دریافت کرده است.
  • pollDetails - یک کاربر یک نظرسنجی زنده ایجاد کرده است.
snippet. liveChatId string
شناسه ای که به طور منحصر به فرد چت زنده ای را که پیام با آن مرتبط است مشخص می کند. شناسه چت زنده مرتبط با پخش در ویژگی snippet.liveChatId منبع liveBroadcast برگردانده می شود.
snippet. authorChannelId string
شناسه کاربری که پیام را نوشته است. این فیلد فقط برای انواع پیام های زیر پر می شود:
  • اگر نوع پیام textMessageEvent باشد، مقدار ویژگی کاربری که پیام را نوشته است را مشخص می کند.
  • اگر نوع پیام fanFundingEvent باشد، مقدار ویژگی کاربری را که بودجه پخش را تامین کرده است، مشخص می کند.
  • اگر نوع پیام messageDeletedEvent باشد، مقدار ویژگی ناظری را که پیام را حذف کرده است مشخص می کند.
  • اگر نوع پیام newSponsorEvent باشد، مقدار ویژگی کاربری را مشخص می کند که به تازگی حامی مالی شده است.
  • اگر نوع پیام memberMilestoneChatEvent باشد، مقدار مشخصه عضوی را که پیام را ارسال کرده است مشخص می کند.
  • اگر نوع پیام userBannedEvent باشد، مقدار ویژگی ناظری را که کاربر را ممنوع کرده است مشخص می کند.
  • اگر نوع پیام membershipGiftingEvent باشد، مقدار ویژگی کاربری را مشخص می کند که خرید هدیه عضویت را انجام داده است.
  • اگر نوع پیام giftMembershipReceivedEvent باشد، مقدار ویژگی کاربری را مشخص می کند که عضویت هدیه را دریافت کرده است.
  • اگر نوع پیام pollEvent باشد، مقدار ویژگی کاربری را که یک نظرسنجی زنده ایجاد کرده است، مشخص می کند.
snippet. publishedAt datetime
تاریخ و زمانی که پیام در ابتدا منتشر شد. مقدار در قالب ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) مشخص شده است.
snippet. hasDisplayContent boolean
نشان می دهد که آیا پیام دارای محتوای نمایشی است که باید برای کاربران نمایش داده شود.
snippet. displayMessage string
شامل رشته ای است که به کاربران نمایش داده می شود. اگر نوع پیام chatEndedEvent یا tombstone باشد، این فیلد وجود ندارد.
snippet. fanFundingEventDetails object
توجه: این شی و ویژگی های فرزند آن منسوخ شده اند. از 28 فوریه 2017، منابع 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 پیام متنی اصلی است. به عنوان مثال، اگر یک textMessageEvent دارای مقدار ویژگی id 123 باشد و آن پیام متعاقبا حذف شود، مقدار snippet.messageDeletedDetails.deletedMessageId برای آن پیام 123 خواهد بود.

اگر پیام‌های چت را پس از بازیابی حافظه پنهان ذخیره می‌کنید، از مقدار این ویژگی برای شناسایی پیامی استفاده کنید که دیگر نباید نمایش داده شود.
snippet. userBannedDetails object
این شی حاوی جزئیاتی در مورد کاربری است که از چت منع شده است. همچنین حاوی جزئیاتی در مورد خود ممنوعیت است. کاربران می توانند به طور دائم یا موقت از چت محروم شوند.
snippet.userBannedDetails. bannedUserDetails object
این شی حاوی اطلاعاتی در مورد کاربر ممنوع شده است.
snippet.userBannedDetails.bannedUserDetails. channelId string
شناسه کانال یوتیوب کاربر ممنوعه.
snippet.userBannedDetails.bannedUserDetails. channelUrl string
نشانی اینترنتی کانال یوتیوب کاربر ممنوعه.
snippet.userBannedDetails.bannedUserDetails. displayName string
نام نمایشی کانال یوتیوب کاربر ممنوعه.
snippet.userBannedDetails.bannedUserDetails. profileImageUrl string
آواتار کانال یوتیوب کاربر ممنوعه.
snippet.userBannedDetails. banType string
نوع ممنوعیت. مقادیر معتبر برای این ویژگی عبارتند از:
  • دائمی
  • موقت
snippet.userBannedDetails. banDurationSeconds unsigned long
مدت زمان ممنوعیت. این ویژگی فقط در صورتی وجود دارد که مقدار ویژگی snippet.userBannedDetails.banType temporary باشد.
snippet. memberMilestoneChatDetails object
این شی حاوی جزئیاتی درباره رویداد Milestone عضو است. فقط در صورتی وجود دارد که نوع پیام memberMilestoneChatEvent باشد.
snippet.memberMilestoneChatDetails. userComment string
نظر اضافه شده توسط عضو به این عضو Milestone Chat. این فیلد برای پیام‌های بدون نظر عضو خالی است.
snippet.memberMilestoneChatDetails. memberMonth unsigned integer
مجموع ماه‌ها (گردش‌شده) بیننده عضوی بوده است که این چت Milestone را به آنها اعطا کرده است. این همان تعداد ماه هایی است که به کاربران 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
مبلغ خرید، بر حسب میکرو ارز خرید. به عنوان مثال، اگر مبلغ خرید یک دلار باشد، ارزش دارایی 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 حاوی این مقدار است.

این ردیف بر اساس مقدار پولی است که برای خرید پیام صرف شده است. همچنین رنگ مورد استفاده برای برجسته کردن پیام در رابط کاربری چت زنده، حداکثر طول پیام، و مدت زمانی که پیام پین می‌شود را تعیین می‌کند.

سطوح Super Chat در مرکز راهنمای YouTube مستند شده است. (به بخش قابل ارتقا درباره جزئیات خرید Super Chat مراجعه کنید.) در آن لیست، ردیفی که کمترین مقدار خرید را دارد، ردیف 1، کمترین مقدار بعدی، ردیف 2 و غیره است.
snippet. superStickerDetails object
این شی حاوی جزئیاتی درباره یک رویداد Super Sticker است. فقط در صورتی وجود دارد که نوع پیام superStickerEvent باشد.
snippet.superStickerDetails. superStickerMetadata object
جزئیات در مورد Super Sticker.
snippet.superStickerDetails.superStickerMetadata. stickerId string
یک شناسه منحصر به فرد که تصویر برچسب را مشخص می کند. توجه داشته باشید که زمانی که کاربران پنجره چت را در یوتیوب مشاهده می کنند، تصویر تنها به عنوان بخشی از پیام Super Sticker نمایش داده می شود. با این حال، URL تصویر با استفاده از API در دسترس نیست. فقط برای مرجع، می‌توانید شناسه‌های برچسب مربوط به کدام Super Sticker را در این فایل 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
مبلغ خرید، بر حسب میکرو ارز خرید. به عنوان مثال، اگر مبلغ خرید یک دلار باشد، ارزش دارایی snippet.amountMicros 1000000 است.
snippet.superStickerDetails. currency string
ارزی که خرید با آن انجام شده است. مقدار یک کد ارز ISO 4217 است.
snippet.superStickerDetails. amountDisplayString string
رشته ای مانند $1.00 که حاوی مقدار خرید و ارز است. رشته برای نمایش به کاربر در نظر گرفته شده است.
snippet.superStickerDetails. tier unsigned integer
ردیف برای پیام پولی. توجه داشته باشید که در یک منبع superChatEvent ، ویژگی snippet.messageType حاوی این مقدار است.

این ردیف بر اساس مقدار پولی است که برای خرید پیام صرف شده است. همچنین رنگ مورد استفاده برای برجسته کردن پیام در رابط کاربری چت زنده، حداکثر طول پیام، و مدت زمانی که پیام پین می‌شود را تعیین می‌کند.

سطوح 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
شناسه کاربری که خرید هدیه عضویت را انجام داده است. این با snippet.authorChannelId پیام هدیه عضویت مرتبط مطابقت دارد.
snippet.giftMembershipReceivedDetails. associatedMembershipGiftingMessageId string
شناسه پیام هدیه عضویت که مربوط به این عضویت هدیه است. این شناسه همیشه به پیامی اشاره دارد که type آن membershipGiftingEvent است.
authorDetails object
شی authorDetails حاوی جزئیات بیشتری در مورد کاربری است که این پیام را ارسال کرده است.
authorDetails. channelId string
شناسه کانال یوتیوب نویسنده.
authorDetails. channelUrl string
آدرس کانال یوتیوب نویسنده.
authorDetails. displayName string
نام نمایشی کانال یوتیوب نویسنده.
authorDetails. profileImageUrl string
آدرس آواتار کانال یوتیوب نویسنده.
authorDetails. isVerified boolean
این مقدار نشان می دهد که آیا هویت نویسنده توسط YouTube تأیید شده است یا خیر.
authorDetails. isChatOwner boolean
این مقدار نشان می دهد که آیا نویسنده مالک چت زنده است یا خیر.
authorDetails. isChatSponsor boolean
این مقدار نشان می دهد که آیا نویسنده حامی چت زنده است یا خیر.
authorDetails. isChatModerator boolean
این مقدار نشان می دهد که آیا نویسنده ناظر چت زنده است یا خیر.