LiveBroadcasts

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

Resource 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.
insert
Membuat siaran. Coba sekarang.
update
Memperbarui siaran. Misalnya, Anda dapat mengubah setelan siaran yang ditentukan dalam objek contentDetails resource liveBroadcast. Coba sekarang.
hapus
Menghapus siaran. Coba sekarang.
bind
Mengikat siaran YouTube ke streaming atau menghapus binding yang ada antara siaran dan streaming. Siaran hanya dapat terikat dengan satu streaming video, meskipun streaming video dapat terikat dengan lebih dari satu siaran. Coba sekarang.
transition
Mengubah status siaran live YouTube dan memulai proses apa pun yang terkait dengan status baru. Misalnya, saat Anda mengubah status siaran ke testing, YouTube akan mulai mengirimkan video ke streaming monitor siaran tersebut. Sebelum memanggil metode ini, Anda harus mengonfirmasi bahwa nilai properti status.streamStatus untuk streaming yang terikat ke siaran Anda adalah active. Coba sekarang.
titik referensi
Menyisipkan titik tanda ke live streaming. Titik tanda mungkin 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 dalam resource ini:

Properti
kind string
Mengidentifikasi jenis resource API. Nilainya akan menjadi youtube#liveBroadcast.
etag etag
Etag resource ini.
id string
ID yang ditetapkan YouTube untuk mengidentifikasi siaran secara unik.
snippet object
Objek snippet berisi detail dasar tentang peristiwa, termasuk judul, deskripsi, waktu mulai, dan waktu berakhir.
snippet.publishedAt datetime
Tanggal dan waktu siaran ditambahkan ke jadwal siaran live 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 mewakili tepat satu video YouTube. Anda dapat menetapkan kolom ini dengan mengubah resource siaran atau dengan menetapkan kolom title dari resource video yang sesuai.
snippet.description string
Deskripsi siaran. Seperti title, Anda dapat menetapkan kolom ini dengan mengubah resource siaran atau dengan menetapkan kolom description dari 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, seperti item playlist atau hasil penelusuran – memiliki lebar 120 piksel dan tinggi 90 piksel. Thumbnail default untuk saluran memiliki lebar 88 piksel dan tinggi 88 piksel.
  • medium – Versi gambar thumbnail dengan resolusi lebih tinggi. Untuk video (atau referensi yang merujuk pada video), gambar ini memiliki lebar 320 piksel dan tinggi 180 piksel. Untuk channel, gambar ini berukuran lebar 240 piksel dan tinggi 240 piksel.
  • high – Versi gambar thumbnail beresolusi tinggi. Untuk video (atau referensi yang merujuk ke video), gambar ini memiliki lebar 480 px dan tinggi 360 px. Untuk channel, gambar ini berukuran 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 UNIX nol, dan nilai ini tidak dapat diubah melalui API atau di Creator Studio.
snippet.scheduledEndTime datetime
Tanggal dan waktu berakhirnya siaran yang dijadwalkan. Nilai ditentukan dalam format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). Jika resource liveBroadcast tidak menentukan nilai untuk properti ini, siaran dijadwalkan untuk berlanjut tanpa batas waktu. Demikian pula, jika Anda tidak menentukan nilai untuk properti ini, YouTube akan memperlakukan siaran seolah-olah akan berlangsung tanpa batas waktu.
snippet.actualStartTime datetime
Tanggal dan waktu siaran sebenarnya 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 menjadi complete. Nilai ditentukan dalam format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.isDefaultBroadcast boolean
Properti ini tidak akan digunakan lagi mulai 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 penggunaan untuk detail selengkapnya.
Properti ini menunjukkan apakah siaran ini adalah siaran default.

Cara kerja siaran default

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

Saat channel mulai melakukan streaming video ke streaming default-nya, video tersebut akan terlihat di siaran default channel. Saat streaming berakhir, YouTube akan mengonversi siaran yang telah selesai menjadi video YouTube dan menetapkan ID video YouTube untuk video tersebut.

Setelah konversi selesai, video akan disertakan dalam daftar video yang diupload di channel. Video tidak langsung tersedia setelah siaran berakhir, 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, melarang pengguna berpartisipasi dalam live chat, atau menghapus larangan 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 tersebut memiliki setelan yang belum lengkap, sehingga belum siap untuk ditransisikan ke status live atau testing, tetapi telah dibuat dan valid.
  • live – Siaran aktif.
  • liveStarting – Siaran sedang dalam proses transisi ke status live.
  • ready – Setelan siaran sudah selesai dan siaran dapat bertransisi ke status live atau testing.
  • revoked – Siaran ini dihapus oleh tindakan admin.
  • testStarting – Siaran sedang dalam proses transisi ke status testing.
  • testing – Siaran hanya dapat dilihat oleh partner.
status.privacyStatus string
Status privasi siaran. Perhatikan bahwa siaran tersebut mewakili satu video YouTube, sehingga setelan privasinya sama dengan yang didukung untuk video. Selain itu, Anda dapat menetapkan kolom ini dengan mengubah resource siaran atau dengan menetapkan kolom privacyStatus di resource 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 untuk menetapkan siaran sebagai ditujukan untuk anak-anak. Dalam permintaan liveBroadcasts.list, nilai properti hanya ditampilkan jika pemilik channel mengizinkan permintaan API.
contentDetails object
Objek contentDetails berisi informasi tentang konten video acara, seperti apakah konten dapat ditampilkan di pemutar video tersemat atau apakah konten akan diarsipkan sehingga tersedia untuk ditonton setelah acara selesai.
contentDetails.boundStreamId string
Nilai ini secara unik mengidentifikasi live stream yang terikat ke siaran.
contentDetails.boundStreamLastUpdateTimeMs datetime
Tanggal dan waktu live stream yang dirujuk oleh boundStreamId terakhir diperbarui.
contentDetails.monitorStream object
Objek monitorStream berisi informasi tentang streaming monitor, 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 di streaming khusus yang hanya ditujukan untuk konsumsi penyiar. Penyiar dapat menggunakan streaming untuk meninjau konten acara dan juga untuk mengidentifikasi waktu yang optimal untuk menyisipkan titik tanda.

Anda harus menyetel nilai ini ke true jika Anda ingin memiliki stage testing untuk siaran Anda atau jika Anda ingin memiliki penundaan siaran untuk acara Anda. Selain itu, jika nilai properti ini adalah true, Anda harus mentransisikan siaran ke status testing sebelum dapat mentransisikan ke status live. (Jika nilai properti adalah false, siaran Anda tidak dapat memiliki tahap testing, sehingga Anda dapat mentransisikan siaran langsung ke status live secara langsung.)

Saat Anda update a broadcast, properti ini harus ditetapkan jika permintaan API Anda menyertakan bagian contentDetails dalam nilai parameter part. Namun, saat Anda insert a broadcast, properti 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 menetapkan properti enableMonitorStream ke true, properti ini akan menentukan durasi penundaan siaran langsung.

Saat Anda update a broadcast, properti ini harus ditetapkan jika permintaan API Anda menyertakan bagian contentDetails dalam nilai parameter part. Namun, saat Anda insert a broadcast, properti 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 update a broadcast, properti ini harus ditetapkan jika permintaan API Anda menyertakan bagian contentDetails dalam nilai parameter part. Namun, saat Anda insert a broadcast, properti bersifat opsional dan memiliki nilai default true.

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

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

Penting: Anda harus menetapkan nilai ke true dan juga menetapkan nilai properti enableArchive ke true jika ingin pemutaran tersedia 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 ditetapkan ke false jika saluran siaran diizinkan untuk menonaktifkan rekaman untuk siaran live.

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 Anda tidak memiliki izin tersebut dan Anda mencoba memperbarui siaran untuk menyetel properti recordFromStart ke false, API akan menampilkan error modificationNotAllowed.

Saat Anda update a broadcast, properti ini harus ditetapkan jika permintaan API Anda menyertakan bagian contentDetails dalam nilai parameter part. Namun, saat Anda insert a broadcast, properti 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 ada penundaan sekitar satu hari sebelum video yang diarsipkan tersedia untuk diputar.

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

Setelan ini menunjukkan apakah pemberian teks tertutup POST HTTP 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 yang Anda berikan:
  • closedCaptionsDisabled: Teks tertutup dinonaktifkan untuk live streaming.
  • closedCaptionsHttpPost: Anda akan mengirim teks, melalui HTTP POST, ke URL transfer 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 dengan latensi rendah dapat mengurangi waktu yang diperlukan agar video dapat dilihat oleh pengguna yang menonton siaran, meskipun hal ini juga dapat memengaruhi resolusi untuk 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 dengan latensi rendah dapat mengurangi waktu yang diperlukan agar video dapat dilihat oleh pengguna yang menonton siaran, meskipun hal ini juga dapat memengaruhi kelancaran pemutaran.

Streaming dengan latensi sangat rendah lebih lanjut mengurangi waktu yang diperlukan agar video dapat dilihat oleh penonton, sehingga interaksi dengan penonton menjadi lebih mudah, tetapi latensi sangat rendah tidak mendukung teks tertutup, atau resolusi yang lebih tinggi dari 1080p.

Nilai yang valid untuk properti ini adalah:
  • normal
  • low
  • ultraLow
contentDetails.enableAutoStart boolean
Menunjukkan apakah siaran ini harus dimulai secara otomatis saat Anda mulai melakukan streaming video di live stream terikat.
contentDetails.enableAutoStop boolean
Menunjukkan apakah siaran ini harus berhenti secara otomatis sekitar satu menit setelah pemilik channel berhenti melakukan streaming video di streaming video terikat.
statistics object
Objek statistics berisi statistik yang terkait dengan siaran live. 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 terkait dengan siaran. Properti dan nilainya akan ada 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 arsip video live streaming yang telah selesai.
monetizationDetails object
Objek monetizationDetails berisi informasi tentang detail monetisasi streaming, seperti apakah otomatisasi iklan 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 midroll ke dalam siaran. Jadwal untuk menjalankan iklan akan ditentukan oleh nilai kolom lain dalam objek monetizationDetails.cuepointSchedule.
monetizationDetails.cuepointSchedule.pauseAdsUntil datetime
Nilai ini menentukan bahwa YouTube tidak boleh menyisipkan iklan midroll ke dalam siaran hingga tanggal dan waktu yang ditentukan. Nilai ditentukan dalam format ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). Nilai harus ditetapkan ke tanggal dan waktu mendatang untuk menjeda iklan; nilai kolom juga dapat ditetapkan ke tanggal dan waktu mendatang untuk membatalkan jeda iklan seiring waktu berlalu.
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 pada 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 adalah 300, YouTube dapat menyisipkan titik tanda iklan midroll dengan interval lima menit.

Perlu diperhatikan bahwa nilai menentukan waktu antara awal titik tanda berturut-turut. Artinya, interval tidak diukur dari akhir satu titik tanda hingga awal titik tanda berikutnya.