LiveBroadcasts

API ini kini mendukung kemampuan untuk menandai live streaming sebagai "Dibuat untuk Anak-Anak", dan resource liveBroadcast kini berisi properti yang mengidentifikasi status "Dibuat untuk Anak-Anak" dari live streaming tersebut. Persyaratan Layanan dan Kebijakan Developer untuk Layanan YouTube API juga diperbarui pada 10 Januari 2020. Untuk mengetahui informasi selengkapnya, lihat histori revisi untuk Layanan YouTube Live Streaming API dan Persyaratan Layanan untuk Layanan YouTube API.

Referensi liveBroadcast mewakili acara yang akan di-streaming, melalui video live, di YouTube.

Metode

API ini mendukung metode berikut untuk resource liveBroadcasts:

list
Menampilkan daftar siaran YouTube yang cocok dengan parameter permintaan API. Coba sekarang.
sisipkan
Membuat siaran. Coba sekarang.
pembaruan
Memperbarui siaran. Misalnya, Anda dapat mengubah setelan siaran yang ditentukan dalam objek contentDetails resource liveBroadcast. Coba sekarang.
hapus
Menghapus siaran. Coba sekarang.
ikat
Mengikat siaran YouTube ke streaming atau menghapus binding yang ada antara siaran dan streaming. Siaran hanya dapat dikaitkan dengan satu streaming video, meskipun streaming video dapat dikaitkan dengan lebih dari satu siaran. Coba sekarang.
transition
Mengubah status live streaming YouTube dan memulai proses apa pun yang terkait dengan status baru. Misalnya, saat Anda mentransisikan status siaran ke testing, YouTube akan mulai mentransmisikan video ke streaming monitor siaran tersebut. Sebelum memanggil metode ini, pastikan nilai properti status.streamStatus untuk streaming yang terikat dengan siaran Anda adalah active. Coba sekarang.
titik tanda
Menyisipkan titik tanda ke live streaming. Titik tanda dapat memicu jeda iklan.

Representasi resource

Struktur JSON berikut menunjukkan format resource liveBroadcasts:

{
  "kind": "youtube#liveBroadcast",
  "etag": etag,
  "id": string,
  "snippet": {
    "publishedAt": datetime,
    "channelId": string,
    "title": string,
    "description": string,
    "thumbnails": {
      (key): {
        "url": string,
        "width": unsigned integer,
        "height": unsigned integer
      }
    },
    "scheduledStartTime": datetime,
    "scheduledEndTime": datetime,
    "actualStartTime": datetime,
    "actualEndTime": datetime,
    "isDefaultBroadcast": boolean,
    "liveChatId": string
  },
  "status": {
    "lifeCycleStatus": string,
    "privacyStatus": string,
    "recordingStatus": string,
    "madeForKids": string,
    "selfDeclaredMadeForKids": string,
  },
  "contentDetails": {
    "boundStreamId": string,
    "boundStreamLastUpdateTimeMs": datetime,
    "monitorStream": {
      "enableMonitorStream": boolean,
      "broadcastStreamDelayMs": unsigned integer,
      "embedHtml": string
    },
    "enableEmbed": boolean,
    "enableDvr": boolean,
    "recordFromStart": boolean,
    "enableClosedCaptions": boolean,
    "closedCaptionsType": string,
    "projection": string,
    "enableLowLatency": boolean,
    "latencyPreference": boolean,
    "enableAutoStart": boolean,
    "enableAutoStop": boolean
  },
  "statistics": {
    "totalChatCount": unsigned long
  },
  "monetizationDetails": {
    "cuepointSchedule": {
      "enabled": boolean,
      "pauseAdsUntil": datetime,
      "scheduleStrategy": string,
      "repeatIntervalSecs": unsigned integer,
    }
  }
}

Properti

Tabel berikut menentukan properti yang muncul di resource ini:

Properti
kind string
Mengidentifikasi jenis resource API. Nilainya akan berupa youtube#liveBroadcast.
etag etag
Etag referensi ini.
id string
ID yang ditetapkan YouTube untuk mengidentifikasi siaran secara unik.
snippet object
Objek snippet berisi detail dasar tentang acara, termasuk judul, deskripsi, waktu mulai, dan waktu berakhir.
snippet.publishedAt datetime
Tanggal dan waktu siaran ditambahkan ke jadwal live streaming YouTube. Nilai ditentukan dalam format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.channelId string
ID yang digunakan YouTube untuk mengidentifikasi secara unik channel yang memublikasikan siaran.
snippet.title string
Judul siaran. Perhatikan bahwa siaran tersebut mewakili satu video YouTube saja. Anda dapat menyetel kolom ini dengan mengubah resource siaran atau dengan menyetel kolom title resource video yang sesuai.
snippet.description string
Deskripsi siaran. Seperti halnya title, Anda dapat menetapkan kolom ini dengan mengubah resource siaran atau dengan menetapkan kolom description untuk resource video yang sesuai.
snippet.thumbnails object
Peta gambar thumbnail yang terkait dengan siaran. Untuk setiap objek bertingkat dalam objek ini, kuncinya adalah nama gambar thumbnail, dan nilainya adalah objek yang berisi informasi lain tentang thumbnail.
snippet.thumbnails.(key) object
Nilai kunci yang valid adalah:
  • default – Gambar thumbnail default. Thumbnail default untuk video – atau resource yang merujuk ke video, misalnya item playlist atau hasil penelusuran – memiliki lebar 120 piksel dan tinggi 90 piksel. Thumbnail default untuk saluran adalah lebar 88 piksel dan tinggi 88 piksel.
  • medium – Versi gambar thumbnail beresolusi lebih tinggi. Untuk video (atau sumber daya yang merujuk ke video), gambar ini memiliki lebar 320 px dan tinggi 180 px. Untuk channel, gambar ini memiliki lebar 240 piksel dan tinggi 240 piksel.
  • high – Versi gambar thumbnail beresolusi tinggi. Untuk video (atau sumber daya yang merujuk ke video), gambar ini memiliki lebar 480 px dan tinggi 360 px. Untuk channel, gambar ini memiliki lebar 800 piksel dan tinggi 800 piksel.
snippet.thumbnails.(key).url string
URL gambar.
snippet.thumbnails.(key).width unsigned integer
Lebar gambar.
snippet.thumbnails.(key).height unsigned integer
Tinggi gambar.
snippet.scheduledStartTime datetime
Tanggal dan waktu siaran dijadwalkan untuk dimulai. Nilai ditentukan dalam format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). Creator Studio mendukung kemampuan untuk membuat siaran tanpa menjadwalkan waktu mulai. Dalam hal ini, siaran dimulai setiap kali pemilik channel memulai streaming. Untuk siaran ini, nilai datetime sesuai dengan waktu nol UNIX, dan nilai ini tidak dapat diubah melalui API atau di Creator Studio.
snippet.scheduledEndTime datetime
Tanggal dan waktu siaran dijadwalkan untuk berakhir. Nilai ditentukan dalam format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). Jika resource liveBroadcast tidak menentukan nilai untuk properti ini, siaran akan dijadwalkan untuk berlanjut tanpa batas. Demikian pula, jika Anda tidak menentukan nilai untuk properti ini, YouTube akan memperlakukan siaran seolah-olah akan terus berlanjut tanpa batas.
snippet.actualStartTime datetime
Tanggal dan waktu siaran benar-benar dimulai. Informasi ini hanya tersedia setelah status siaran adalah live. Nilai ditentukan dalam format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.actualEndTime datetime
Tanggal dan waktu siaran benar-benar berakhir. Informasi ini hanya tersedia setelah status siaran adalah complete. Nilai ditentukan dalam format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.isDefaultBroadcast boolean
Properti ini tidak akan digunakan lagi pada atau setelah 1 September 2020. Pada saat itu, YouTube akan berhenti membuat streaming default dan siaran default saat channel diaktifkan untuk live streaming. Lihat pengumuman penghentian untuk detail selengkapnya.
Properti ini menunjukkan apakah siaran ini merupakan siaran default.

Cara kerja siaran default

Jika channel YouTube diaktifkan untuk live streaming, YouTube akan membuat streaming default dan siaran default untuk channel tersebut. Streaming menentukan cara pemilik channel mengirimkan video live ke YouTube, dan siaran adalah cara penonton melihat streaming default. Pemilik channel dapat menggunakan metode liveStreams.list dan liveBroadcasts.list untuk mengidentifikasi resource ini.

Saat channel memulai streaming video ke streaming default-nya, video tersebut akan terlihat di siaran default channel. Saat streaming berakhir, YouTube mengonversi siaran yang sudah selesai menjadi video YouTube dan menetapkan ID video YouTube pada video tersebut.

Setelah konversi selesai, video akan disertakan dalam daftar video yang diupload di channel. Video tidak langsung tersedia setelah siaran selesai, dan durasi penundaan terkait dengan durasi siaran yang sebenarnya.
snippet.liveChatId string
ID untuk live chat YouTube siaran. Dengan ID ini, Anda dapat menggunakan metode resource liveChatMessage untuk mengambil, menyisipkan, atau menghapus pesan chat. Anda juga dapat menambahkan atau menghapus moderator chat, memblokir pengguna agar tidak berpartisipasi dalam live chat, atau menghapus pemblokiran yang ada.
status object
Objek status berisi informasi tentang status peristiwa.
status.lifeCycleStatus string
Status siaran. Status dapat diperbarui menggunakan metode liveBroadcasts.transition API.

Nilai yang valid untuk properti ini adalah:
  • complete – Siaran selesai.
  • created – Siaran memiliki setelan yang belum selesai, sehingga belum siap untuk ditransisikan ke status live atau testing, tetapi telah dibuat dan valid.
  • live – Siaran aktif.
  • liveStarting – Siaran sedang dalam proses bertransisi ke status live.
  • ready – Setelan siaran selesai dan siaran dapat ditransisikan ke status live atau testing.
  • revoked – Siaran ini dihapus oleh tindakan admin.
  • testStarting – Siaran sedang dalam proses bertransisi ke status testing.
  • testing – Siaran hanya dapat dilihat oleh partner.
status.privacyStatus string
Status privasi siaran. Perhatikan bahwa siaran tersebut mewakili hanya satu video YouTube, sehingga setelan privasinya sama dengan setelan privasi yang didukung untuk video. Selain itu, Anda dapat menetapkan kolom ini dengan mengubah aset siaran atau dengan menetapkan kolom privacyStatus di aset video yang sesuai.

Nilai yang valid untuk properti ini adalah:
  • private
  • public
  • unlisted
status.recordingStatus string
Status perekaman siaran.

Nilai yang valid untuk properti ini adalah:
  • notRecording
  • recorded
  • recording
status.madeForKids boolean
Nilai ini menunjukkan apakah siaran ditetapkan sebagai ditujukan untuk anak-anak. Nilai properti ini bersifat hanya baca.
status.selfDeclaredMadeForKids boolean
Dalam permintaan liveBroadcasts.insert, properti ini memungkinkan pemilik channel menetapkan siaran sebagai ditujukan untuk anak-anak. Dalam permintaan liveBroadcasts.list, nilai properti hanya ditampilkan jika pemilik saluran mengizinkan permintaan API.
contentDetails object
Objek contentDetails berisi informasi tentang konten video acara, seperti apakah konten dapat ditampilkan di pemutar video sematan atau apakah konten akan diarsipkan dan dapat ditonton setelah acara selesai.
contentDetails.boundStreamId string
Nilai ini secara unik mengidentifikasi live stream yang terikat pada siaran.
contentDetails.boundStreamLastUpdateTimeMs datetime
Tanggal dan waktu live stream yang dirujuk oleh boundStreamId terakhir diperbarui.
contentDetails.monitorStream object
Objek monitorStream berisi informasi tentang streaming pemantauan, yang dapat digunakan penyiar untuk meninjau konten acara sebelum streaming siaran ditampilkan secara publik.
contentDetails.monitorStream.enableMonitorStream boolean
Nilai ini menentukan apakah streaming monitor diaktifkan untuk siaran. Jika streaming monitor diaktifkan, YouTube akan menyiarkan konten acara pada streaming khusus yang hanya ditujukan untuk konsumsi penyiar. Penyiar dapat menggunakan streaming untuk meninjau konten acara dan juga mengidentifikasi waktu yang optimal untuk menyisipkan titik tanda.

Anda harus menetapkan nilai ini ke true jika ingin memiliki panggung testing untuk siaran atau jika Anda ingin menunda siaran untuk acara. Selain itu, jika nilai properti ini adalah true, Anda harus mentransisikan siaran ke status testing sebelum dapat mentransisikannya ke status live. (Jika nilai properti adalah false, siaran tidak boleh memiliki tahapan testing, sehingga Anda dapat mentransisikan siaran langsung ke status live.)

Saat Anda melakukan update a broadcast, properti ini harus ditetapkan jika permintaan API Anda menyertakan bagian contentDetails dalam nilai parameter part. Namun, jika Anda melakukan insert a broadcast, properti tersebut bersifat opsional dan memiliki nilai default true.

Penting: Properti ini tidak dapat diperbarui setelah siaran berada dalam status testing atau live.
contentDetails.monitorStream.broadcastStreamDelayMs unsigned integer
Jika Anda telah menyetel properti enableMonitorStream ke true, properti ini akan menentukan durasi penundaan live streaming.

Saat Anda melakukan update a broadcast, properti ini harus ditetapkan jika permintaan API Anda menyertakan bagian contentDetails dalam nilai parameter part. Namun, jika Anda melakukan insert a broadcast, properti tersebut bersifat opsional dan memiliki nilai default 0. Nilai ini menunjukkan bahwa siaran tidak memiliki penundaan siaran. Catatan: Properti ini tidak dapat diperbarui setelah siaran berada dalam status testing atau live.
contentDetails.monitorStream.embedHtml string
Kode HTML yang menyematkan pemutar yang memutar streaming monitor.
contentDetails.enableEmbed boolean
Setelan ini menunjukkan apakah video siaran dapat diputar di pemutar tersemat. Jika Anda memilih untuk mengarsipkan video (menggunakan properti enableArchive), setelan ini juga akan berlaku untuk video yang diarsipkan.

Saat Anda melakukan update a broadcast, properti ini harus ditetapkan jika permintaan API Anda menyertakan bagian contentDetails dalam nilai parameter part. Namun, jika Anda melakukan insert a broadcast, properti tersebut bersifat opsional dan memiliki nilai default true.

Catatan: Properti ini tidak dapat diperbarui setelah siaran dalam status testing atau live.
contentDetails.enableDvr boolean
Setelan ini menentukan apakah penonton dapat mengakses kontrol DVR sambil menonton video. Kontrol DVR memungkinkan penonton mengontrol pengalaman pemutaran video dengan menjeda, memutar ulang, atau meneruskan cepat konten. Nilai default untuk properti ini adalah true.

Saat Anda melakukan update a broadcast, properti ini harus ditetapkan jika permintaan API Anda menyertakan bagian contentDetails dalam nilai parameter part. Namun, jika Anda melakukan insert a broadcast, properti tersebut bersifat opsional dan memiliki nilai default true.

Penting: Anda harus menetapkan nilai ke true dan juga menetapkan nilai properti enableArchive ke true jika ingin menyediakan pemutaran segera setelah siaran berakhir. Selain itu, properti ini tidak dapat diperbarui setelah siaran berada dalam status testing atau live.
contentDetails.recordFromStart boolean
Setelan ini menunjukkan apakah YouTube akan otomatis mulai merekam siaran setelah status acara berubah menjadi live.

Nilai default properti ini adalah true, dan hanya dapat disetel ke false jika saluran penyiaran diizinkan untuk menonaktifkan perekaman untuk live streaming.

Jika channel Anda tidak memiliki izin untuk menonaktifkan perekaman, dan Anda mencoba menyisipkan siaran dengan properti recordFromStart yang disetel ke false, API akan menampilkan error Forbidden. Selain itu, jika channel tidak memiliki izin tersebut dan Anda mencoba memperbarui siaran untuk menyetel properti recordFromStart ke false, API akan menampilkan error modificationNotAllowed.

Saat Anda melakukan update a broadcast, properti ini harus ditetapkan jika permintaan API Anda menyertakan bagian contentDetails dalam nilai parameter part. Namun, jika Anda melakukan insert a broadcast, properti tersebut bersifat opsional dan memiliki nilai default true.

Penting: Anda juga harus menyetel nilai properti enableDvr ke true jika ingin pemutaran tersedia segera setelah siaran berakhir. Jika Anda menetapkan nilai properti ini ke true, tetapi tidak menetapkan properti enableDvr ke true, mungkin akan terjadi keterlambatan sekitar satu hari sebelum video yang diarsipkan dapat diputar.

Catatan: Properti ini tidak dapat diperbarui setelah siaran dalam status testing atau live.
contentDetails.enableClosedCaptions boolean
Properti ini tidak digunakan lagi mulai 17 Desember 2015. Gunakan properti contentDetails.closedCaptionsType sebagai gantinya.

Setelan ini menunjukkan apakah teks tertutup HTTP POST diaktifkan untuk siaran ini atau tidak. Untuk klien API yang sudah menggunakan properti ini:
  • Menetapkan nilai properti ke true sama dengan menetapkan properti contentDetails.closedCaptionsType ke closedCaptionsHttpPost.
  • Menetapkan nilai properti ke false sama dengan menetapkan properti contentDetails.closedCaptionsType ke closedCaptionsDisabled.
contentDetails.closedCaptionsType string
Catatan: Properti ini menggantikan properti contentDetails.enableClosedCaptions.

Properti ini menunjukkan apakah teks tertutup diaktifkan untuk siaran Anda dan, jika ya, jenis teks tertutup apa yang Anda berikan:
  • closedCaptionsDisabled: Teks tertutup dinonaktifkan untuk live streaming.
  • closedCaptionsHttpPost: Anda akan mengirim teks, melalui HTTP POST, ke URL penyerapan yang terkait dengan live stream Anda.
  • closedCaptionsEmbedded: Teks akan dienkode dalam streaming video menggunakan format EIA-608 dan/atau CEA-708.
contentDetails.projection string
Format proyeksi siaran ini. Nilai default properti adalah rectangular.

Nilai yang valid untuk properti ini adalah:
  • 360
  • rectangular
contentDetails.enableLowLatency boolean
Menunjukkan apakah siaran ini harus dienkode untuk streaming latensi rendah. Streaming berlatensi rendah dapat mengurangi jumlah waktu yang diperlukan video agar terlihat oleh pengguna yang menonton siaran, meskipun juga dapat memengaruhi resolusi bagi penonton streaming.
contentDetails.latencyPreference string
Menunjukkan setelan latensi yang akan digunakan untuk siaran ini. Properti ini dapat digunakan sebagai pengganti enableLowLatency, yang tidak mendukung ultraLow.

Streaming berlatensi rendah dapat mengurangi jumlah waktu yang diperlukan agar video dapat dilihat oleh pengguna yang menonton siaran, meskipun juga dapat memengaruhi kelancaran pemutaran.

Streaming berlatensi ultra-rendah makin mengurangi waktu yang diperlukan agar video dapat dilihat penonton, sehingga interaksi dengan penonton menjadi lebih mudah. Namun, nilai latensi ultra-rendah ini tidak mendukung teks tertutup1, atau resolusi lebih tinggi
0.
  • normal
  • low
  • ultraLow
contentDetails.enableAutoStart boolean
Menunjukkan apakah siaran ini akan dimulai otomatis saat Anda memulai streaming video di live stream terikat.
contentDetails.enableAutoStop boolean
Menunjukkan apakah siaran ini akan otomatis berhenti sekitar satu menit setelah pemilik channel menghentikan streaming video pada streaming video terikat.
statistics object
Objek statistics berisi statistik yang terkait dengan live streaming. Nilai untuk statistik ini dapat berubah selama siaran dan hanya dapat diambil saat siaran sedang berlangsung.
statistics.totalChatCount unsigned long
Jumlah total pesan live chat yang dikaitkan dengan siaran. Properti dan nilainya muncul jika siaran dapat dilihat oleh pengguna, mengaktifkan fitur live chat, dan memiliki setidaknya satu pesan. Perhatikan bahwa properti ini tidak akan menentukan nilai setelah siaran berakhir. Jadi, properti ini tidak akan mengidentifikasi jumlah pesan chat untuk video yang diarsipkan dari live streaming yang telah selesai.
monetizationDetails object
Objek monetizationDetails berisi informasi tentang detail monetisasi streaming, seperti apakah iklan otomatis diaktifkan atau jika penyisipan iklan mid-roll tertunda.

monetizationDetails.cuepointSchedule object
Objek cuepointSchedule menentukan setelan otomatisasi iklan untuk siaran.
monetizationDetails.cuepointSchedule.enabled boolean
Nilai ini menentukan apakah iklan disisipkan secara otomatis dalam siaran. Jika nilainya adalah true, YouTube akan otomatis menyisipkan iklan mid-roll ke dalam siaran. Jadwal untuk menjalankan iklan akan ditentukan oleh nilai kolom lain di objek monetizationDetails.cuepointSchedule.
monetizationDetails.cuepointSchedule.pauseAdsUntil datetime
Nilai ini menentukan bahwa YouTube tidak boleh menyisipkan iklan mid-roll ke dalam siaran hingga tanggal dan waktu yang ditentukan. Nilai ini ditentukan dalam format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). Nilainya harus ditetapkan ke tanggal dan waktu mendatang untuk menjeda iklan; nilai kolom juga dapat ditetapkan ke tanggal dan waktu dekat mendatang untuk membatalkan jeda iklan setelah waktu habis.
monetizationDetails.cuepointSchedule.scheduleStrategy string
Nilai ini menentukan strategi yang harus diikuti YouTube untuk menjadwalkan titik tanda. Nilai yang valid adalah:
  • CONCURRENT: Titik tanda dijadwalkan secara bersamaan untuk semua penonton
  • NON_CONCURRENT: Titik tanda dijadwalkan pada waktu yang berbeda untuk penonton yang berbeda. Dengan pendekatan ini, iklan dapat ditampilkan dengan frekuensi yang lebih tinggi sehingga penonton dapat menerima titik tanda jika memenuhi syarat.
monetizationDetails.cuepointSchedule.repeatIntervalSecs unsigned integer
Nilai ini menentukan interval, dalam detik, antara penyisipan iklan otomatis selama siaran. Misalnya, jika nilainya 300, YouTube dapat menyisipkan titik tanda iklan mid-roll dalam interval lima menit.

Perhatikan bahwa nilai ini menentukan waktu antara awal titik tanda yang berurutan. Artinya, interval tidak diukur dari akhir satu titik tanda ke awal yang berikutnya.