LiveChatMessages

Resource liveChatMessage mewakili pesan chat di live chat YouTube. Resource dapat berisi detail tentang beberapa jenis pesan, termasuk pesan teks yang baru diposting atau acara fan funding.

Fitur Live Chat diaktifkan secara default untuk live streaming dan tersedia saat acara live aktif. (Setelah acara berakhir, live chat tidak lagi tersedia untuk acara tersebut.)

Metode

API ini mendukung metode berikut untuk resource liveChatMessages:

list
Mencantumkan pesan live chat untuk chat tertentu. Coba sekarang.
streamList
Mengaktifkan koneksi streaming server untuk menerima pesan live chat untuk chat tertentu dalam latensi rendah. Coba sekarang.
insert
Menambahkan pesan atau polling ke live chat. Coba sekarang.
transition
Mengubah status pesan live. Coba sekarang.
hapus
Menghapus pesan chat. Permintaan API harus diizinkan oleh pemilik channel atau moderator live chat. Coba sekarang.

Representasi resource

Struktur JSON berikut menunjukkan format resource 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
  },
}

Properti

Tabel berikut menentukan properti yang muncul dalam resource ini:

Properti
kind string
Mengidentifikasi jenis resource API. Nilainya adalah youtube#liveChatMessage.
etag etag
ETag resource ini.
id string
ID yang ditetapkan YouTube untuk mengidentifikasi pesan secara unik.
Catatan: Untuk giftEvents, ID yang sama dapat digunakan kembali untuk memperbarui jumlah kombo.
snippet object
Objek snippet berisi detail inti tentang pesan chat.
snippet.type string
Jenis pesan. Properti ini selalu ada, dan nilainya menentukan kolom mana yang ada dalam resource.

Nilai yang valid untuk properti ini adalah:
  • chatEndedEvent – Percakapan telah berakhir dan tidak ada lagi pesan yang dapat disisipkan setelah pesan ini. Hal ini akan terjadi secara alami beberapa saat setelah siaran berakhir. Jenis pesan ini tidak dikirim untuk live chat di siaran default channel.
  • sponsorOnlyModeEndedEvent – Chat tidak lagi dalam mode khusus sponsor, yang berarti pengguna yang bukan sponsor kini dapat mengirim pesan. Acara ini tidak memiliki konten tampilan apa pun.
  • sponsorOnlyModeStartedEvent – Chat telah memasuki mode khusus sponsor, yang berarti hanya sponsor yang dapat mengirim pesan. Acara ini tidak memiliki konten tampilan.
  • newSponsorEvent – Pengguna baru telah mensponsori channel yang memiliki live chat. Kolom author berisi detail sponsor baru.
  • memberMilestoneChatEvent – Pengguna telah mengirim Chat Pencapaian Pelanggan.
  • superChatEvent – Pengguna telah membeli Super Chat.
  • superStickerEvent – Pengguna telah membeli Super Stickers.
  • textMessageEvent – Pengguna telah mengirim pesan teks.
  • tombstone – Tombstone menandakan bahwa pesan pernah ada dengan ID dan waktu publikasi ini, tetapi telah dihapus. Pesan ini tidak dikirim saat penghapusan pesan, tetapi ditampilkan untuk menandakan lokasi pesan sebelum dihapus. Hanya kolom snippet.liveChatId, snippet.type, dan snippet.publishedAt yang ada dalam jenis pesan ini.
  • userBannedEvent – Pengguna telah dilarang oleh moderator. Kolom author berisi detail moderator.
  • membershipGiftingEvent – Pengguna telah membeli langganan untuk penonton lain.
  • giftMembershipReceivedEvent – Pengguna telah menerima hadiah langganan.
  • pollDetails – Pengguna telah membuat polling live.
  • giftEvent – Pengguna telah menukarkan Kristal dengan hadiah.
snippet.liveChatId string
ID yang secara unik mengidentifikasi live chat yang terkait dengan pesan. ID live chat yang terkait dengan siaran ditampilkan di properti snippet.liveChatId resource liveBroadcast.
snippet.authorChannelId string
ID pengguna yang menulis pesan. Kolom ini hanya diisi untuk jenis pesan berikut:
  • Jika jenis pesan adalah textMessageEvent, nilai properti akan mengidentifikasi pengguna yang menulis pesan.
  • Jika jenis pesan adalah fanFundingEvent, nilai properti mengidentifikasi pengguna yang mendanai siaran.
  • Jika jenis pesan adalah newSponsorEvent, nilai properti mengidentifikasi pengguna yang baru saja menjadi sponsor.
  • Jika jenis pesan adalah memberMilestoneChatEvent, nilai properti mengidentifikasi anggota yang mengirim pesan.
  • Jika jenis pesan adalah userBannedEvent, nilai properti mengidentifikasi moderator yang memblokir pengguna.
  • Jika jenis pesan adalah membershipGiftingEvent, nilai properti akan mengidentifikasi pengguna yang melakukan pembelian hadiah langganan.
  • Jika jenis pesan adalah giftMembershipReceivedEvent, nilai properti akan mengidentifikasi pengguna yang menerima hadiah langganan.
  • Jika jenis pesan adalah pollEvent, nilai properti mengidentifikasi pengguna yang membuat polling langsung.
  • Jika jenis pesan adalah giftEvent, nilai properti akan mengidentifikasi pengguna yang mengirim hadiah.
snippet.publishedAt datetime
Tanggal dan waktu saat pesan pertama kali dipublikasikan. Nilai ditentukan dalam format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.hasDisplayContent boolean
Menunjukkan apakah pesan memiliki konten tampilan yang harus ditampilkan kepada pengguna.
snippet.displayMessage string
Berisi string yang ditampilkan kepada pengguna. Kolom ini tidak ada jika jenis pesan adalah chatEndedEvent atau tombstone.
snippet.fanFundingEventDetails object
Catatan: Objek ini dan properti turunannya tidak digunakan lagi. Mulai 28 Februari 2017, resource liveChatMessage tidak akan lagi menampilkan detail untuk acara Fan Funding.

Objek ini berisi detail tentang acara pendanaan. Informasi ini hanya ada jika jenis pesan adalah fanFundingEvent.
snippet.fanFundingEventDetails.amountMicros unsigned long
Catatan: Properti ini tidak digunakan lagi.

Jumlah dana.
snippet.fanFundingEventDetails.currency string
Catatan: Properti ini tidak digunakan lagi.

Mata uang yang digunakan untuk membuat dana.
snippet.fanFundingEventDetails.amountDisplayString string
Catatan: Properti ini tidak digunakan lagi.

String yang dirender yang menampilkan jumlah dan mata uang dana kepada pengguna.
snippet.fanFundingEventDetails.userComment string
Catatan: Properti ini tidak digunakan lagi.

Komentar yang ditambahkan oleh pengguna ke acara fan funding ini.
snippet.textMessageDetails object
Objek ini berisi detail tentang pesan teks. Informasi ini hanya ada jika jenis pesan adalah textMessageEvent.
snippet.textMessageDetails.messageText string
Pesan pengguna.
snippet.userBannedDetails object
Objek ini berisi detail tentang pengguna yang telah dilarang dari chat. Halaman ini juga berisi detail tentang larangan itu sendiri. Pengguna dapat dilarang dari chat secara permanen atau sementara.
snippet.userBannedDetails.bannedUserDetails object
Objek ini berisi informasi tentang pengguna yang dilarang.
snippet.userBannedDetails.bannedUserDetails.channelId string
ID channel YouTube pengguna yang dilarang.
snippet.userBannedDetails.bannedUserDetails.channelUrl string
URL channel YouTube pengguna yang dilarang.
snippet.userBannedDetails.bannedUserDetails.displayName string
Nama tampilan channel YouTube pengguna yang diblokir.
snippet.userBannedDetails.bannedUserDetails.profileImageUrl string
Avatar channel YouTube pengguna yang dilarang.
snippet.userBannedDetails.banType string
Jenis larangan. Nilai yang valid untuk properti ini adalah:
  • permanen
  • sementara
snippet.userBannedDetails.banDurationSeconds unsigned long
Durasi larangan. Properti ini hanya ada jika nilai properti snippet.userBannedDetails.banType adalah temporary.
snippet.memberMilestoneChatDetails object
Objek ini berisi detail tentang peristiwa Pencapaian Pelanggan. Informasi ini hanya ada jika jenis pesan adalah memberMilestoneChatEvent.
snippet.memberMilestoneChatDetails.userComment string
Komentar yang ditambahkan oleh pelanggan ke Chat Pencapaian Pelanggan ini. Kolom ini kosong untuk pesan tanpa komentar dari anggota.
snippet.memberMilestoneChatDetails.memberMonth unsigned integer
Total bulan (dibulatkan ke atas) penonton telah menjadi pelanggan yang memberinya Chat Pencapaian Pelanggan ini. Jumlah bulan ini sama dengan yang ditampilkan kepada pengguna YouTube.
snippet.memberMilestoneChatDetails.memberLevelName string
Nama Level tempat penonton menjadi pelanggan. Nama Level ditentukan oleh channel YouTube yang menawarkan Langganan. Dalam beberapa situasi, kolom ini tidak diisi.
snippet.newSponsorDetails object
Objek ini berisi detail tentang peristiwa Pengumuman Pelanggan Baru. Ini hanya disetel jika jenisnya adalah newSponsorEvent. "Anggota" adalah istilah untuk "sponsor".
snippet.newSponsorDetails.memberLevelName string
Nama Level tempat penonton menjadi anggota. Nama Level ditentukan oleh channel YouTube yang menawarkan Langganan. Dalam beberapa situasi, kolom ini tidak diisi.
snippet.newSponsorDetails.isUpgrade bool
Menunjukkan apakah penonton baru saja mengupgrade dari Level yang lebih rendah. Untuk penonton yang bukan pelanggan pada saat pembelian, nilai kolomnya adalah false.
snippet.superChatDetails object
Objek ini berisi detail tentang peristiwa Super Chat. Informasi ini hanya ada jika jenis pesan adalah superChatEvent.
snippet.superChatDetails.amountMicros unsigned long
Jumlah pembelian, dalam mikro mata uang pembelian. Misalnya, jika jumlah pembelian adalah satu dolar, nilai properti snippet.amountMicros adalah 1000000.
snippet.superChatDetails.currency string
Mata uang yang digunakan untuk melakukan pembelian. Nilainya adalah kode mata uang ISO 4217.
snippet.superChatDetails.amountDisplayString string
String, seperti $1.00, yang berisi jumlah pembelian dan mata uang. String ini dimaksudkan untuk ditampilkan kepada pengguna.
snippet.superChatDetails.userComment string
Komentar yang ditambahkan oleh pengguna ke peristiwa Super Chat ini.
snippet.superChatDetails.tier unsigned integer
Tingkatan untuk pesan berbayar. Perhatikan bahwa dalam resource superChatEvent, properti snippet.messageType berisi nilai ini.

Tingkatan didasarkan pada jumlah uang yang dibelanjakan untuk membeli pesan. Tingkatan ini juga menentukan warna yang digunakan untuk menandai pesan di UI live chat, panjang maksimum pesan, dan durasi waktu pesan disematkan di ticker.

Tingkatan Super Chat didokumentasikan di Pusat Bantuan YouTube. (Lihat bagian yang dapat diperluas tentang detail pembelian Super Chat.) Dalam daftar tersebut, tingkat dengan jumlah pembelian terendah adalah tingkat 1, jumlah terendah berikutnya adalah tingkat 2, dan seterusnya.
snippet.superStickerDetails object
Objek ini berisi detail tentang peristiwa Super Stickers. Informasi ini hanya ada jika jenis pesan adalah superStickerEvent.
snippet.superStickerDetails.superStickerMetadata object
Detail tentang Super Stickers.
snippet.superStickerDetails.superStickerMetadata.stickerId string
ID unik yang mengidentifikasi gambar stiker. Perhatikan bahwa gambar hanya ditampilkan sebagai bagian dari pesan Super Stickers saat pengguna melihat jendela chat di YouTube. Namun, URL gambar tidak tersedia menggunakan API. Sebagai referensi saja, Anda dapat menemukan ID Stiker yang terkait dengan Super Stickers tertentu dalam file CSV ini.
snippet.superStickerDetails.superStickerMetadata.altText string
String teks yang mendeskripsikan stiker. Kolom snippet.superStickerDetails.superStickerMetadata.language mengidentifikasi bahasa teks. Saat memanggil metode liveChatMessages.list, tetapkan nilai parameter hl ke bahasa yang dipilih untuk teks.
snippet.superStickerDetails.superStickerMetadata.language string
Bahasa nilai properti snippet.superStickerDetails.superStickerMetadata.altText.
snippet.superStickerDetails.amountMicros unsigned long
Jumlah pembelian, dalam mikro mata uang pembelian. Misalnya, jika jumlah pembelian adalah satu dolar, nilai properti snippet.amountMicros adalah 1000000.
snippet.superStickerDetails.currency string
Mata uang yang digunakan untuk melakukan pembelian. Nilainya adalah kode mata uang ISO 4217.
snippet.superStickerDetails.amountDisplayString string
String, seperti $1.00, yang berisi jumlah dan mata uang pembelian. String ini dimaksudkan untuk ditampilkan kepada pengguna.
snippet.superStickerDetails.tier unsigned integer
Tingkatan untuk pesan berbayar. Perhatikan bahwa dalam resource superChatEvent, properti snippet.messageType berisi nilai ini.

Tingkatan didasarkan pada jumlah uang yang dibelanjakan untuk membeli pesan. Tingkatan ini juga menentukan warna yang digunakan untuk menyoroti pesan di UI live chat, panjang pesan maksimum, dan durasi pesan disematkan di ticker.

Tingkatan Super Chat, yang juga mencakup Super Stickers, didokumentasikan di Pusat Bantuan YouTube. (Lihat bagian yang dapat diperluas tentang detail pembelian Super Chat.) Dalam daftar tersebut, tingkat dengan jumlah pembelian terendah adalah tingkat 1, jumlah terendah berikutnya adalah tingkat 2, dan seterusnya.
snippet.pollDetails object
Objek ini berisi detail tentang peristiwa polling. Informasi ini hanya ada jika jenis pesan adalah pollEvent.
snippet.pollDetails.metadata object
Detail tentang peristiwa polling.
snippet.pollDetails.metadata.options object
Opsi dalam polling live.
snippet.pollDetails.metadata.options.optionText string
Teks opsi polling live.
snippet.pollDetails.metadata.options.tally string
Jumlah suara opsi polling live. Jumlah hanya ada jika permintaan API diizinkan oleh pemilik channel.
snippet.pollDetails.metadata.questionText string
Teks pertanyaan polling live.
snippet.pollDetails.metadata.status enum
Status acara polling live. Nilai yang valid untuk properti ini adalah:
  • unknown
  • active
  • closed
snippet.membershipGiftingDetails object
Objek ini berisi detail tentang peristiwa Hadiah Langganan. Hanya ada jika message type adalah membershipGiftingEvent.
snippet.membershipGiftingDetails.giftMembershipsCount integer
Jumlah hadiah langganan yang dibeli oleh pengguna.
snippet.membershipGiftingDetails.giftMembershipsLevelName string
Nama Level langganan hadiah yang dibeli oleh pengguna. Nama level ditentukan oleh channel YouTube yang menawarkan Langganan. Dalam beberapa situasi, kolom ini tidak diisi.
snippet.giftMembershipReceivedDetails object
Objek ini berisi detail tentang peristiwa Hadiah Langganan yang Diterima. Ini hanya ada jika message type adalah giftMembershipReceivedEvent.
snippet.giftMembershipReceivedDetails.memberLevelName string
Nama Level tempat penonton menjadi pelanggan. Ini cocok dengan snippet.membershipGiftingDetails.giftMembershipsLevelName pesan pemberian hadiah langganan terkait. Nama level ditentukan oleh channel YouTube yang menawarkan Langganan. Dalam beberapa situasi, kolom ini tidak diisi.
snippet.giftMembershipReceivedDetails.gifterChannelId string
ID pengguna yang melakukan pembelian hadiah langganan. ID ini cocok dengan snippet.authorChannelId pesan hadiah langganan terkait.
snippet.giftMembershipReceivedDetails.associatedMembershipGiftingMessageId string
ID pesan pemberian hadiah langganan yang terkait dengan hadiah langganan ini. ID ini akan selalu merujuk ke pesan yang type-nya adalah membershipGiftingEvent.
snippet.giftDetails object
Objek ini berisi detail tentang acara pemberian hadiah. Hanya ada jika message type adalah giftEvent.
snippet.giftDetails.jewelsAmount integer
Jumlah Kristal yang ditukarkan untuk hadiah.
snippet.giftDetails.giftName string
Nama hadiah.
snippet.giftDetails.giftUrl string
URL aset hadiah.
snippet.giftDetails.giftDuration object
Durasi untuk menampilkan URL hadiah.
snippet.giftDetails.giftDuration.seconds integer
Jumlah detik untuk menampilkan URL hadiah.
snippet.giftDetails.giftDuration.nanos integer
Jumlah nanodetik untuk menampilkan URL hadiah.
snippet.giftDetails.hasVisualEffect boolean
Apakah hadiah memiliki efek visual.
snippet.giftDetails.comboCount integer
Jumlah kombo hadiah; 0 jika bukan kombo.
snippet.giftDetails.altText string
String teks yang menjelaskan hadiah.
snippet.giftDetails.language string
Bahasa nilai properti altText.
authorDetails object
Objek authorDetails berisi detail tambahan tentang pengguna yang memposting pesan ini.
authorDetails.channelId string
ID channel YouTube penulis.
authorDetails.channelUrl string
URL channel YouTube penulis.
authorDetails.displayName string
Nama tampilan channel YouTube penulis.
authorDetails.profileImageUrl string
URL avatar channel YouTube penulis.
authorDetails.isVerified boolean
Nilai ini menunjukkan apakah identitas penulis telah diverifikasi oleh YouTube.
authorDetails.isChatOwner boolean
Nilai ini menunjukkan apakah penulis adalah pemilik chat langsung.
authorDetails.isChatSponsor boolean
Nilai ini menunjukkan apakah penulis adalah sponsor live chat.
authorDetails.isChatModerator boolean
Nilai ini menunjukkan apakah penulis adalah moderator Live Chat.