LiveChatMessages

یک منبع liveChatMessage نشان‌دهنده یک پیام چت در یک گفتگوی زنده یوتیوب است. این منبع می‌تواند شامل جزئیاتی در مورد انواع مختلف پیام‌ها، از جمله یک پیام متنی تازه منتشر شده یا یک رویداد تأمین مالی طرفداران باشد.

قابلیت چت زنده به طور پیش‌فرض برای پخش زنده فعال است و تا زمانی که رویداد زنده فعال باشد، در دسترس است. (پس از پایان رویداد، چت زنده دیگر برای آن رویداد در دسترس نیست.)

روش‌ها

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

مقادیر معتبر برای این ویژگی عبارتند از:
  • chatEndedEvent - چت پایان یافته است و پس از این پیام، دیگر نمی‌توان پیام دیگری ارسال کرد. این اتفاق به طور طبیعی کمی پس از پایان پخش رخ می‌دهد. این نوع پیام برای چت‌های زنده در پخش پیش‌فرض کانال ارسال نمی‌شود.
  • messageDeletedEvent - پیامی توسط مدیر حذف شده است. فیلد author شامل جزئیات مدیر است. این رویداد هیچ محتوای نمایشی ندارد.
  • sponsorOnlyModeEndedEvent - چت دیگر در حالت فقط حامیان مالی نیست، به این معنی که کاربرانی که حامی مالی نیستند اکنون می‌توانند پیام ارسال کنند. این رویداد هیچ محتوای نمایشی ندارد.
  • sponsorOnlyModeStartedEvent - چت وارد حالت فقط حامیان مالی شده است، به این معنی که فقط حامیان مالی قادر به ارسال پیام هستند. این رویداد هیچ محتوای نمایشی ندارد.
  • newSponsorEvent - یک کاربر جدید، کانالی را که مالک گفتگوی زنده است، حمایت مالی کرده است. فیلدهای author حاوی جزئیات حمایت مالی جدید هستند.
  • memberMilestoneChatEvent - یک کاربر یک گفتگوی Member Milestone ارسال کرده است.
  • superChatEvent – ​​یک کاربر یک Super Chat خریداری کرده است.
  • superStickerEvent – ​​یک کاربر یک سوپر استیکر خریداری کرده است.
  • 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
توجه: این شیء و ویژگی‌های فرزند آن منسوخ شده‌اند. از تاریخ ۲۸ فوریه ۲۰۱۷، منابع liveChatMessage دیگر جزئیات رویدادهای Fan Funding را برنمی‌گردانند.

این شیء شامل جزئیاتی در مورد رویداد تأمین مالی است. این شیء فقط در صورتی وجود دارد که نوع پیام 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 خواهد بود.

اگر پیام‌های چت را پس از بازیابی، در حافظه پنهان (cache) ذخیره می‌کنید، از مقدار این ویژگی برای شناسایی پیامی که دیگر نباید نمایش داده شود، استفاده کنید.
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
این شیء حاوی جزئیاتی در مورد رویداد Member Milestone است. این شیء فقط در صورتی نمایش داده می‌شود که نوع پیام memberMilestoneChatEvent باشد.
snippet.memberMilestoneChatDetails. userComment string
نظری که توسط عضو به این گفتگوی ویژه اعضا اضافه شده است. این فیلد برای پیام‌های بدون نظر از طرف عضو خالی است.
snippet.memberMilestoneChatDetails. memberMonth unsigned integer
تعداد کل ماه‌هایی (گرد شده به بالا) که بیننده عضو بوده و این گفتگوی ویژه اعضا را به او اعطا کرده است. این همان تعداد ماه‌هایی است که برای کاربران یوتیوب نمایش داده می‌شود.
snippet.memberMilestoneChatDetails. memberLevelName string
نام سطحی که بیننده در آن عضو است. نام سطوح توسط کانال یوتیوبی که عضویت را ارائه می‌دهد تعریف می‌شود. در برخی شرایط، این فیلد پر نمی‌شود.
snippet. newSponsorDetails object
این شیء حاوی جزئیاتی در مورد رویداد «اعلان عضو جدید» است. این جزئیات فقط در صورتی تنظیم می‌شوند که نوع آن newSponsorEvent باشد. «عضو» اصطلاحی برای «حامی» است.
snippet.newSponsorDetails. memberLevelName string
نام سطحی که بیننده در آن عضو است. نام سطوح توسط کانال یوتیوبی که عضویت را ارائه می‌دهد تعریف می‌شود. در برخی موارد، این فیلد پر نمی‌شود.
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
نظری که توسط کاربر به این رویداد سوپر چت اضافه شده است.
snippet.superChatDetails. tier unsigned integer
ردیف مربوط به پیام پرداخت شده. توجه داشته باشید که در یک منبع superChatEvent ، ویژگی snippet.messageType حاوی این مقدار است.

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

سطوح سوپر چت در مرکز راهنمای یوتیوب مستند شده‌اند. (به بخش قابل بسط در مورد جزئیات خرید سوپر چت مراجعه کنید.) در آن لیست، سطحی که کمترین مبلغ خرید را دارد، سطح ۱ است، سطح بعدی که کمترین مبلغ را دارد، سطح ۲ است و به همین ترتیب ادامه دارد.
snippet. superStickerDetails object
این شیء حاوی جزئیاتی در مورد رویداد Super Sticker است. این جزئیات فقط در صورتی نمایش داده می‌شوند که نوع پیام superStickerEvent باشد.
snippet.superStickerDetails. superStickerMetadata object
جزئیات مربوط به سوپر استیکر.
snippet.superStickerDetails.superStickerMetadata. stickerId string
یک شناسه منحصر به فرد که تصویر استیکر را مشخص می‌کند. توجه داشته باشید که این تصویر فقط به عنوان بخشی از پیام سوپر استیکر هنگام مشاهده پنجره چت در یوتیوب نمایش داده می‌شود. با این حال، URL تصویر با استفاده از API در دسترس نیست. فقط برای مرجع، می‌توانید شناسه‌های استیکر مربوط به سوپر استیکرها را در این فایل 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 حاوی این مقدار است.

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

رده‌های سوپر چت، که سوپر استیکرها را نیز پوشش می‌دهند، در مرکز راهنمای یوتیوب مستند شده‌اند. (به بخش قابل بسط در مورد جزئیات خرید سوپر چت مراجعه کنید.) در آن لیست، رده‌ای که کمترین مبلغ خرید را دارد، رده ۱، کمترین مبلغ بعدی، رده ۲ و به همین ترتیب است.
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
نام سطح عضویت‌های هدیه خریداری شده توسط کاربر. نام سطوح توسط کانال یوتیوب ارائه دهنده عضویت تعریف می‌شود. در برخی شرایط، این فیلد پر نمی‌شود.
snippet. giftMembershipReceivedDetails object
این شیء حاوی جزئیاتی درباره رویداد Gift Membership Received است. این رویداد فقط در صورتی نمایش داده می‌شود که message type giftMembershipReceivedEvent باشد.
snippet.giftMembershipReceivedDetails. memberLevelName string
نام سطحی که بیننده در آن عضو است. این با snippet.membershipGiftingDetails.giftMembershipsLevelName پیام اهدای عضویت مرتبط مطابقت دارد. نام سطوح توسط کانال یوتیوبی که عضویت را ارائه می‌دهد تعریف می‌شود. در برخی شرایط، این فیلد پر نمی‌شود.
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
این مقدار نشان می‌دهد که آیا هویت نویسنده توسط یوتیوب تأیید شده است یا خیر.
authorDetails. isChatOwner boolean
این مقدار نشان می‌دهد که آیا نویسنده، مالک چت زنده است یا خیر.
authorDetails. isChatSponsor boolean
این مقدار نشان می‌دهد که آیا نویسنده، حامی مالی گفتگوی زنده است یا خیر.
authorDetails. isChatModerator boolean
این مقدار نشان می‌دهد که آیا نویسنده، مدیر چت زنده است یا خیر.