LiveChatMessages: streamList

Metode ini membuat koneksi streaming server yang memungkinkan Anda menerima pesan live chat untuk chat tertentu dengan latensi rendah. Ini adalah cara paling efisien untuk menggunakan pesan live chat, karena pesan baru akan dikirim ke klien Anda segera setelah tersedia, dan Anda tidak perlu melakukan polling untuk mendapatkan update.

Saat pertama kali terhubung, API akan mengirim serangkaian pesan yang berisi histori chat terbaru. Saat pesan baru diposting, server akan terus mengirimkannya melalui koneksi yang terbuka.

Pesan dalam setiap respons server diurutkan dari yang terlama hingga terbaru. Setiap respons juga menyertakan nextPageToken. Jika klien Anda terputus, Anda dapat menggunakan token ini untuk melanjutkan streaming. Untuk melakukannya, berikan nextPageToken terakhir yang Anda terima sebagai nilai untuk parameter pageToken dalam permintaan koneksi baru Anda. API kemudian akan melanjutkan pengiriman pesan dari titik terakhir Anda.

Dampak kuota: Panggilan ke metode ini memiliki biaya kuota sebesar 5 unit.

Demo

Untuk demo Python dari endpoint ini, lihat panduan Streaming Live Chat.

Permintaan

Parameter

Tabel berikut mencantumkan parameter yang didukung kueri ini. Semua parameter yang tercantum adalah parameter kueri.

Parameter
Parameter yang diperlukan
liveChatId string
Parameter liveChatId menentukan ID chat yang pesannya akan ditampilkan. ID live chat yang terkait dengan siaran ditampilkan dalam properti snippet.liveChatId resource liveBroadcast.
part string
Parameter part menentukan bagian resource liveChatMessage yang akan disertakan dalam respons API. Nilai yang didukung adalah id, snippet, dan authorDetails.
Parameter opsional
hl string
Parameter hl menginstruksikan API untuk mengambil string tampilan mata uang yang dilokalkan untuk bahasa aplikasi tertentu yang didukung situs YouTube. Misalnya, dalam bahasa Inggris, mata uang akan ditampilkan sebagai $1.50, tetapi dalam bahasa Prancis, mata uang akan ditampilkan sebagai 1,50$.

Nilai parameter harus berupa kode bahasa yang disertakan dalam daftar yang ditampilkan oleh metode i18nLanguages.list.
maxResults unsigned integer

Parameter maxResults menentukan jumlah maksimum pesan yang akan ditampilkan dalam kumpulan hasil. Nilai yang dapat diterima adalah 200 hingga 2000, inklusif. Nilai default-nya adalah 500.

Permintaan awal yang dibuat tanpa token kelanjutan hanya akan berisi peristiwa terbaru. Nilai ini mungkin lebih kecil dari maxResults, jika disediakan.

API tidak mengambil peristiwa yang lebih lama dari peristiwa yang ditampilkan oleh permintaan awal yang dibuat tanpa token kelanjutan.

pageToken string
Parameter pageToken mengidentifikasi halaman tertentu dalam kumpulan hasil yang akan ditampilkan. Dalam respons API, properti nextPageToken mengidentifikasi halaman lain yang dapat diambil.
profileImageSize unsigned integer
Parameter profileImageSize menentukan ukuran foto profil pengguna yang akan ditampilkan dalam kumpulan hasil. Gambar berbentuk persegi. Nilai default-nya adalah 88, yang berarti gambar akan berukuran 88 piksel x 88 piksel. Nilai yang dapat diterima berada dalam rentang 16 hingga 720, inklusif.

Isi permintaan

Jangan berikan isi permintaan saat memanggil metode ini.

Respons

Jika berhasil, metode ini akan menampilkan isi respons dengan struktur berikut:

{
  "kind": "youtube#liveChatMessageListResponse",
  "etag": etag,
  "nextPageToken": string,
  "pollingIntervalMillis": unsigned integer,
  "offlineAt": datetime,
  "pageInfo": {
    "totalResults": integer,
    "resultsPerPage": integer
  },
  "items": [
    liveChatMessage Resource
  ],
  "activePollItem": liveChatMessage Resource
}

Properti

Tabel berikut menentukan properti yang muncul dalam resource ini:

Properti
kind string
Mengidentifikasi jenis resource API. Nilainya adalah youtube#liveChatMessageListResponse.
etag etag
Etag resource ini.
nextPageToken string
Token yang dapat digunakan sebagai nilai parameter pageToken untuk mengambil halaman berikutnya dalam kumpulan hasil.
offlineAt datetime
Tanggal dan waktu saat livestream yang mendasarinya offline. Properti ini hanya ada jika streaming sudah offline. Nilai ditentukan dalam format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
pageInfo object
Objek pageInfo merangkum informasi penomoran halaman untuk kumpulan hasil.
pageInfo.totalResults integer
Jumlah total hasil dalam kumpulan hasil.
pageInfo.resultsPerPage integer
Jumlah hasil yang disertakan dalam respons API.
items[] list
Daftar pesan. Setiap item dalam daftar adalah resource liveChatMessage.
activePollItem object
Data polling dalam pesan. Setiap polling adalah resource liveChatMessage dengan jenis pollEvent, yang mewakili polling aktif. Hanya boleh ada satu polling per chat.

Error

Tabel berikut mengidentifikasi pesan error yang dapat ditampilkan API sebagai respons terhadap panggilan ke metode ini. Lihat dokumentasi pesan error untuk mengetahui detail selengkapnya.

Saat menggunakan gRPC untuk terhubung:

Kode Error gRPC Detail error Deskripsi
PERMISSION_DENIED (7) The caller does not have permission Anda tidak memiliki izin yang diperlukan untuk mengambil pesan untuk live chat yang ditentukan.
INVALID_ARGUMENT (3) Request contains an invalid argument Gagal mengurai parameter yang diberikan. Pastikan liveChatId dan parameter lainnya dalam format yang benar.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_DISABLED. Live chat yang ditentukan dinonaktifkan.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_ENDED. Anda tidak dapat mengambil pesan untuk live chat yang telah berakhir.
NOT_FOUND (5) Requested entity was not found Live chat yang ingin Anda ambil tidak dapat ditemukan. Periksa nilai parameter liveChatId permintaan untuk memastikan nilai tersebut benar.
RESOURCE_EXHAUSTED (8) Resource has been exhausted (e.g. check quota) Permintaan dikirim terlalu cepat setelah permintaan sebelumnya. Error ini terjadi saat permintaan API untuk mengambil pesan dikirim lebih sering daripada frekuensi refresh YouTube, yang menyebabkan bandwidth terbuang sia-sia.

* Karena batasan gRPC, tidak mungkin membedakan berdasarkan kode error antara kasus LIVE_CHAT_DISABLED dan kasus LIVE_CHAT_ENDED. YouTube sedang berupaya mencari solusi untuk mengatasi masalah ini.

Saat menggunakan traffic web untuk terhubung:

Jenis Error Detail error Deskripsi
HttpStatus.FORBIDDEN (403) forbidden Anda tidak memiliki izin yang diperlukan untuk mengambil pesan untuk live chat yang ditentukan.
HttpStatus.BAD_REQUEST (400) Reason for invalid request, e.g. pageTokenInvalid Gagal mengurai parameter yang diberikan. Pastikan liveChatId dan parameter lainnya dalam format yang benar.
HttpStatus.FORBIDDEN (403) liveChatDisabled LIVE_CHAT_DISABLED. Live chat yang ditentukan dinonaktifkan.
HttpStatus.FORBIDDEN (403) liveChatEnded LIVE_CHAT_ENDED. Anda tidak dapat mengambil pesan untuk live chat yang telah berakhir.
HttpStatus.NOT_FOUND (404) liveChatNotFound Live chat yang ingin Anda ambil tidak dapat ditemukan. Periksa nilai parameter liveChatId permintaan untuk memastikan nilai tersebut benar.
HttpStatus.FORBIDDEN (403) rateLimitExceeded Permintaan dikirim terlalu cepat setelah permintaan sebelumnya. Error ini terjadi saat permintaan API untuk mengambil pesan dikirim lebih sering daripada frekuensi refresh YouTube, yang menyebabkan bandwidth terbuang sia-sia.