Pengantar
Dokumen ini akan memandu Anda memahami siklus live streaming di YouTube yang dibuat dan dikelola menggunakan YouTube Live Streaming API dan YouTube Content ID API.
Resource dan jenis resource
Seperti yang dijelaskan dalam panduan memulai, resource adalah entity data individual dengan ID unik. Untuk membuat dan mengelola acara live di YouTube, Anda akan menggunakan sejumlah jenis resource berbeda yang ditentukan sebagai bagian dari YouTube Data API atau YouTube Content ID API. Resource yang tercantum di bagian header YouTube Live Streaming API secara teknis ditentukan dalam API lainnya tersebut, tetapi dicantumkan secara terpisah karena hanya digunakan untuk siaran langsung.
Referensi YouTube Live Streaming API
Resource YouTube Data API
Resource YouTube Content ID API
Membuat dan mengelola live streaming
Langkah-langkah berikut menjelaskan cara membuat dan mengelola acara live di YouTube. Langkah-langkahnya dibagi menjadi tahap-tahap berikut:
Tahap 1: Siapkan siaran Anda
Langkah 1.1: Buat siaran Anda
Panggil metode liveBroadcasts.insert
untuk menambahkan siaran Anda ke jadwal acara live YouTube. Resource
liveBroadcast yang Anda sisipkan harus menentukan nilai untuk
properti yang tercantum di bawah.
Pertimbangkan panduan berikut saat menyiapkan siaran:
Jika Anda ingin memiliki fase pengujian untuk siaran, saat Anda dapat melihat siaran video tanpa penonton lain juga dapat melihat siaran, Anda harus menetapkan properti
contentDetails.monitorStream.enableMonitorStreamketruedan properticontentDetails.enableAutoStartkefalse. Nilai tersebut adalah nilai default untuk kedua properti.Jika Anda ingin membuat referensi dari siaran yang direkam, Anda harus menetapkan properti
contentDetails.recordFromStartsiaran ketrue. Jika Anda ingin membuat video yang direkam tersedia untuk diputar segera setelah siaran berakhir, Anda juga harus menetapkan properticontentDetails.enableDvrketrue. (Kedua properti ini memiliki nilai defaulttrue.)Jika ingin membatasi wilayah tempat siaran Anda dapat dilihat, Anda dapat menetapkan properti
contentDetails.availabilityConfig. Properti ini memungkinkan Anda memblokir wilayah tertentu atau membatasi ketersediaan ke daftar wilayah yang ditentukan. Anda juga dapat menentukan periode waktu untuk ketersediaan regional.Anda dapat menentukan kategori video untuk siaran secara opsional menggunakan properti
snippet.categoryId. Jika tidak ditentukan, kategori akan ditetapkan secara default keEntertainment.Anda dapat memperbarui properti
contentDetailsapa pun selama status siaran Anda masihcreatedatauready.Anda dapat memperbarui waktu mulai terjadwal dan waktu berakhir terjadwal siaran selama status siaran adalah
created,ready, atautesting.Judul, deskripsi, kategori, dan status privasi siaran, serta kolom metadata lainnya yang merupakan bagian dari resource
videosiaran, dapat diperbarui kapan saja.
Catatan: Jika Anda hanya ingin video Anda tersedia untuk pengguna YouTube tertentu, tetapkan nilai propertistatus.privacyStatuskeunlistedatauprivatesesuai kebutuhan Anda.
Memproses respons API
Saat Anda memanggil metode liveBroadcasts.insert, respons API akan berisi resource liveBroadcast yang Anda buat. Kode Anda harus mengekstrak dan menyimpan
id dari resource
tersebut. Anda
akan memerlukan nilai tersebut untuk mengidentifikasi siaran dalam permintaan API mendatang. (Anda
juga dapat mengidentifikasi resource video
yang
sesuai dengan resource liveBroadcast menggunakan ID yang sama.)
Langkah 1.2: Buat streaming Anda
Resource liveStream memungkinkan Anda mentransmisikan video ke YouTube, dan
resource ini menjelaskan konten yang Anda transmisikan. Setiap siaran harus
dikaitkan dengan tepat satu streaming.
Panggil metode liveStreams.insert untuk membuat streaming video untuk acara Anda. Saat membuat streaming, Anda harus menetapkan nilai untuk properti
yang tercantum di bawah:
Kecuali untuk judul streaming, nilai ini tidak dapat diperbarui setelah streaming dibuat. Jika Anda perlu mengubahnya, Anda harus membuat aliran yang berbeda dengan mengulangi langkah ini. Proses ini akan dibahas secara lebih mendetail di langkah 3.5 nanti dalam dokumen ini.
Anda juga memiliki opsi untuk menetapkan nilai untuk properti berikut:
snippet.description- seperti judul streaming, deskripsi streaming dapat diperbarui setelah streaming dibuat. Judul dan deskripsi tidak dapat dilihat oleh pengguna YouTube.[
contentDetails.isReusable](/youtube/data/live/reference/rest/v3/liveStreams#contentDetails.isReusable)
Menunjukkan apakah streaming dapat digunakan kembali, yang berarti streaming dapat diikat ke beberapa siaran. Nilai properti ini secara efektif menentukan apakah channel memiliki hubungan many-to-one atau one-to-one antara resource
liveBroadcastdanliveStream:- Jika Anda menggunakan nilai default properti
true, Anda dapat menggunakan resourceliveStreamyang sama untuk semua siaran saluran. Artinya, Anda tidak perlu mengulangi langkah ini (1.2) untuk setiap siaran. Sebagai gantinya, Anda dapat menggunakan kembali ID streaming untuk siaran berikutnya. - Jika Anda menetapkan nilai properti ke
false, Anda harus membuat streaming baru untuk setiap siaran.
- Jika Anda menggunakan nilai default properti
Setelah Anda mengeluarkan permintaan API untuk streaming, respons API akan berisi resource liveStream yang Anda buat. Kode Anda harus mengekstrak dan menyimpan
id dari resource tersebut.
Anda akan memerlukan nilai tersebut untuk mengidentifikasi aliran data dalam permintaan API mendatang.
Langkah 1.3: Ikat siaran ke streaming-nya
Setelah membuat resource liveBroadcast dan liveStream, Anda sekarang perlu
mengaitkan keduanya menggunakan metode liveBroadcasts.bind. Tindakan ini
menautkan bit video
yang akan Anda kirimkan ke YouTube dengan siaran acara untuk video tersebut.
Saat memanggil metode liveBroadcasts.bind, tetapkan parameter id ke
ID siaran yang diperoleh di langkah 1.1 dan parameter streamId ke ID
streaming yang diperoleh di langkah 1.2.
Tahap 2: Klaim konten Anda
Jika ingin menampilkan iklan selama siaran, Anda harus mengklaim video siaran sebelum acara dimulai. Gunakan langkah-langkah berikut untuk menyiapkan siaran, video, dan iklannya. Perhatikan bahwa channel pemilik siaran harus memenuhi syarat untuk menampilkan iklan.
Perhatikan bahwa semua panggilan API yang dibahas dalam tahap ini ditentukan dalam YouTube Content ID API.
Langkah 2.1: Buat aset
Resource asset mewakili bagian dari
kekayaan intelektual. Dalam hal ini, asetnya adalah siaran Anda. Panggil metode
assets.insert untuk membuat
aset Anda.
Respons API akan berisi resource asset yang Anda buat. Kode Anda
harus mengekstrak dan menyimpan id dari
resource tersebut karena Anda akan memerlukan nilai tersebut untuk mengidentifikasi aset dalam permintaan API
di masa mendatang.
Langkah 2.2: Tentukan kepemilikan Anda atas aset
Data kepemilikan aset mengidentifikasi pemilik aset serta wilayah tempat mereka memiliki aset. YouTube menggunakan data ini untuk menentukan tempat pemilik dapat menetapkan kebijakan untuk video yang diklaim.
Misalnya, jika Anda memiliki hak untuk menyiarkan acara di Amerika Serikat, dan penyiar lain memiliki hak yang sama untuk Kanada, Anda masing-masing dapat menentukan kebijakan yang berbeda untuk video siaran dan untuk video yang diupload pengguna yang cocok dengan video siaran. Kebijakan kecocokan Anda akan berlaku untuk video yang cocok dan diupload pengguna di Amerika Serikat, sedangkan kebijakan pemilik lainnya akan berlaku untuk video yang cocok di Kanada.
Untuk menentukan wilayah kepemilikan Anda untuk aset, panggil
metode ownership.update.
Dalam permintaan tersebut, tetapkan parameter assetId ke id yang Anda simpan di
langkah 2.1.
Langkah 2.3: Tetapkan kebijakan kecocokan aset
Kebijakan kecocokan aset menjelaskan tindakan yang harus dilakukan YouTube saat pengguna mengupload video yang cocok dengan referensi yang terkait dengan aset. Dalam hal ini, kebijakan kecocokan akan menunjukkan cara YouTube menangani video yang diupload yang cocok dengan live streaming Anda.
Catatan: Anda harus menetapkan kebijakan kecocokan jika berencana membuat referensi dari video siaran dan menggunakan referensi tersebut untuk mengidentifikasi video yang diupload pengguna yang cocok dengan siaran Anda. Jika tidak, Anda dapat melewati langkah ini.
Untuk menetapkan kebijakan kecocokan, Anda harus mengidentifikasi kebijakan yang ingin
diterapkan terlebih dahulu. Anda dapat mengambil daftar kebijakan yang ada dengan memanggil
metode policies.list, atau Anda dapat
menentukan kebijakan baru dengan memanggil
metode policies.insert. Dalam kedua kasus tersebut, Anda harus mengambil id kebijakan yang ingin diterapkan.
Setelah Anda mengidentifikasi kebijakan, panggil
metode
assetMatchPolicy.update. Dalam permintaan tersebut, tetapkan parameter assetId ke id yang Anda simpan di langkah 2.1.
Langkah 2.4: Klaim video Anda
Pada langkah ini, Anda akan membuat klaim, yang menautkan video yang akan Anda siarkan ke aset yang Anda buat pada langkah 2.1. Klaim menetapkan kebijakan yang hanya berlaku untuk video siaran Anda. (Video yang diupload pengguna yang cocok dengan video siaran Anda tercakup dalam kebijakan kecocokan yang ditetapkan pada langkah sebelumnya.)
Untuk membuat klaim, panggil metode claims.insert. Di resource claim yang Anda sisipkan, Anda perlu menetapkan nilai untuk properti berikut:
assetId– Anda memperoleh nilai ini di langkah 2.1.videoId– Ini adalah ID siaran yang Anda peroleh di langkah 1.1.policy– Ini adalah resourcepolicy. Anda dapat menerapkan kebijakan yang ada dengan menetapkan propertiidresource tersebut ke ID kebijakan yang ada. Langkah sebelumnya menjelaskan cara mengambil ID kebijakan yang ada.contentType– Tetapkan nilai ini keaudiovisual.
Memproses respons API
Saat Anda menyisipkan klaim, respons API akan berisi resource claim
yang Anda buat. Kode Anda harus mengekstrak dan menyimpan
id dari resource tersebut. Anda akan menggunakan
nilai tersebut nanti untuk membuat referensi dari video yang diproses.
Langkah 2.5: Perbarui setelan iklan untuk siaran
Anda harus menetapkan opsi iklan untuk video jika ingin menjalankan iklan pre-roll saat penonton mulai menonton siaran atau menjalankan iklan selama jeda dalam siaran.
- Jika Anda mengaktifkan iklan pre-roll untuk siaran, semua penonton akan melihat iklan saat mulai menonton siaran, meskipun mereka mulai menonton di tengah siaran.
- Jika mengaktifkan iklan mid-roll untuk siaran, Anda dapat menyisipkan titik tanda iklan selama siaran.
Untuk mengaktifkan iklan, panggil metode videoAdvertisingOptions.update. Dalam permintaan Anda, tetapkan parameter videoId ke id siaran yang Anda peroleh di langkah 1.1. Gunakan properti adFormats[] resource videoAdvertisingOption untuk mengidentifikasi format iklan (preroll, midroll, atau postroll) yang ingin Anda aktifkan.
Tahap 3: Uji Coba
Selama tahap ini, Anda menyematkan pemutar yang menampilkan streaming monitor untuk siaran Anda sehingga Anda dapat menguji pengalaman menonton. Streaming monitor adalah streaming pribadi yang memungkinkan Anda melihat pratinjau video siaran seperti yang akan muncul bagi penonton YouTube.
Perhatikan bahwa Anda hanya dapat menguji siaran video jika streaming pemantauannya diaktifkan. Secara default, aliran monitor siaran diaktifkan. Anda dapat menonaktifkan
streaming monitor siaran dengan menetapkan properti
contentDetails.monitorStream.enableMonitorStream
ke false saat membuat atau memperbarui siaran tersebut.
Langkah 3.1: Sematkan pemutar streaming pemantauan
Ambil siaran Anda menggunakan metode liveBroadcasts.list, dan ekstrak nilai properti contentDetails.streamDetails.monitorStreamEmbedHtml. Nilai tersebut
berisi HTML yang Anda perlukan untuk menyematkan pemutar YouTube yang menampilkan
streaming monitor Anda.
Langkah 3.2: Mulai video Anda
Mulai mentransmisikan video di aliran video Anda.
Langkah 3.3: Konfirmasi bahwa aliran video Anda aktif
Panggil
metode
liveStreams.list
untuk mengambil resource liveStream yang terkait dengan siaran Anda. Pastikan
nilai properti status.streamStatus
adalah
active, yang menunjukkan bahwa server YouTube menerima data dari encoder Anda
dengan benar.
Langkah 3.4: Transisikan status siaran Anda ke pengujian
Panggil metode liveBroadcasts.transition untuk memperbarui
status
siaran. Tetapkan parameter value id ke ID live stream yang diperoleh di langkah 1.1, dan tetapkan parameter value broadcastStatus ke testing.
Setelah Anda memanggil metode liveBroadcasts.transition, mungkin perlu waktu beberapa detik, atau bahkan hingga satu menit, agar transisi tersebut selesai. Selama waktu tersebut, Anda harus melakukan polling API untuk memeriksa status siaran. Hingga transisi selesai, status siaran akan menjadi testStarting. Statusnya
akan menjadi testing setelah transisi selesai.
Langkah 3.5: Menyelesaikan pengujian
Jika pengujian berjalan lancar, Anda dapat melanjutkan ke tahap 4. Namun, dalam beberapa kasus, Anda mungkin perlu melakukan pengujian lebih lanjut. Misalnya, jika pengujian Anda menunjukkan bahwa streaming video tidak dikonfigurasi dengan benar, Anda harus memperbaikinya sebelum melanjutkan siaran.
Jika aliran video tidak dikonfigurasi dengan benar, Anda harus membatalkan pengikatan (dan menghapus) aliran yang ada serta membuat aliran baru. Sebagai contoh, streaming mungkin tidak dikonfigurasi dengan benar jika menentukan format video yang salah.
-
Untuk melepaskan ikatan aliran video, panggil metode
liveBroadcasts.binddari langkah 1.3. Dalam permintaan API, tetapkan parameteridkeidyang diperoleh di langkah 1.1. Jangan sertakan parameterstreamIddalam permintaan. -
Untuk menghapus aliran video, panggil metode
liveStreams.delete. Dalam permintaan, tetapkan parameteridkeidyang diperoleh pada langkah 1.2. -
Ulangi langkah 1.2 untuk membuat resource
liveStreambaru yang dikonfigurasi dengan benar. Kemudian, ulangi langkah 1.3 untuk mengikat streaming baru ke siaran Anda dan langkah 3.1 hingga 3.3 untuk menguji streaming baru.
Langkah 3.6: Aktifkan properti autoStart dan autoStop
Setelah berhasil menyelesaikan tahap pengujian, Anda memiliki opsi untuk
menetapkan properti
contentDetails.enableAutoStart
dan contentDetails.enableAutoStop
siaran ke true sebelum siaran sebenarnya dimulai. Properti ini tidak dapat disetel ke true sebelum tahap pengujian karena pengujian akan menyebabkan siaran dimulai.
Tahap 4: Siaran
Selama tahap ini, video siaran Anda dapat dilihat oleh audiens.
Langkah 4.1: Mulai video Anda
Mulai transmisikan video di streaming video Anda.
Langkah 4.2: Pastikan streaming video Anda aktif
Panggil metode
liveStreams.list
untuk mengambil resource liveStream yang terkait dengan siaran Anda. Pastikan
nilai properti status.streamStatus
adalah
active, yang menunjukkan bahwa server YouTube menerima data dari encoder Anda
dengan benar.
Langkah 4.3: Ubah status siaran Anda menjadi live
Penting: Langkah ini membuat video Anda terlihat oleh audiens.
Panggil metode liveBroadcasts.transition untuk memperbarui
status
siaran. Tetapkan nilai parameter id ke ID siaran yang diperoleh pada langkah 1.1, dan tetapkan nilai parameter broadcastStatus ke live.
Jika Anda menetapkan properti
contentDetails.enableAutoStart
resource liveBroadcast ke true, Anda tidak perlu memanggil metode liveBroadcasts.transition.
Setelah melakukan panggilan API ini -- atau, jika Anda telah menyetel properti contentDetails.enableAutoStart
ke true, setelah Anda mulai streaming -- biasanya Anda harus menunggu 5 hingga
10 detik hingga transisi tersebut selesai. Transisi mungkin memerlukan waktu hingga satu menit. Selama waktu tersebut, Anda
harus melakukan polling API untuk memeriksa status siaran. Hingga transisi selesai, status siaran akan menjadi liveStarting. Status akan menjadi
live setelah transisi selesai, dan penonton dapat menonton siaran Anda dari titik tersebut di streaming monitor Anda.
Perhatikan efek berikut dari perintah ini:
- Jika Anda telah mengaktifkan streaming monitor untuk siaran – lihat langkah 3.1 – Anda akan dapat melihat streaming monitor di pemutar tersemat.
- Jika Anda telah menetapkan nilai untuk properti
contentDetails.streamDetails.broadcastStreamDelayMssiaran, streaming siaran, yang dapat dilihat oleh penonton lain, akan tertunda selama durasi tersebut.
Langkah 4.4: Menyisipkan jeda iklan ke siaran Anda
Panggil metode liveBroadcasts.cuepoint
untuk menyisipkan titik tanda. Cuepoint mungkin memicu jeda iklan. Dalam resource cuepoint
yang disediakan dalam
isi permintaan, tetapkan properti durationSecs ke durasi jeda
yang diinginkan (dalam detik) yang ingin Anda tampilkan. (Nilai defaultnya adalah 30.)
Pada saat ini, YouTube mencoba memutar iklan di pemutar video untuk penonton yang sedang menonton siaran saat titik pemicu iklan disisipkan. Diputar atau tidaknya iklan bergantung pada berbagai faktor, seperti ketersediaan iklan dan histori penayangan iklan penonton. Penonton yang mendapatkan jeda iklan akan kembali ke siaran Anda saat jeda iklan berakhir, sementara penonton yang tidak melihat iklan akan terus menonton streaming siaran selama jeda.
Panduan Memulai memberikan informasi selengkapnya tentang pengalaman menonton selama jeda iklan live streaming.
Tahap 5: Mengakhiri siaran
Langkah 5.1: Hentikan streaming
Ini mengakhiri pengujian Anda terhadap sistem live streaming YouTube.
Langkah 5.2: Ubah status siaran Anda menjadi selesai
Jika Anda siap untuk berhenti menyiarkan, panggil metode
liveBroadcasts.transition
API untuk memperbarui status siaran. Tetapkan nilai parameter id ke ID siaran yang diperoleh pada langkah 1.1, dan tetapkan nilai parameter broadcastStatus ke complete.
Jika Anda telah menetapkan properti contentDetails.recordFromStart
dan
contentDetails.enableDvr
siaran ke
true, maka saat acara live berakhir, audiens Anda dapat langsung menonton
pemutaran acara live.
Tahap 6: Membuat referensi
Setelah perekaman live selesai, Anda dapat membuat referensi dari video yang direkam. Tindakan ini menginstruksikan YouTube untuk mencari video yang diupload pengguna yang cocok dengan siaran dan menanganinya sesuai dengan kebijakan kecocokan yang Anda tetapkan di langkah 2.3.
Penting: Untuk membuat referensi, Anda
harus menetapkan properti contentDetails.recordFromStart
siaran ke true.
Langkah 6.1: Lakukan polling pada Data API untuk mengetahui status video
YouTube harus menyelesaikan pemrosesan siaran atau video yang diupload sebelum Anda dapat
membuat referensi dari video tersebut. Untuk menentukan apakah pemrosesan video telah selesai, polling metode videos.list YouTube Data API, tetapkan parameter part ke status dan parameter id ke ID siaran yang Anda simpan di langkah 1.1.
Respons API untuk permintaan polling Anda akan berisi resource video.
Jika nilai properti status.uploadStatus resource tersebut adalah
processed, lanjutkan
ke langkah 6.2.
Langkah 6.2: Buat referensi dari video yang diproses
Untuk membuat referensi, panggil metode references.insert Content ID API
dan tetapkan parameter claimId
ke ID klaim yang Anda simpan di
langkah 2.4.
Pengiriman Content ID Live
Beberapa partner YouTube dapat membuat referensi sebelum siaran mereka
beralih ke status testing, tetapi fitur tersebut tidak tersedia untuk semua
partner. Dalam alur tersebut, YouTube membuat dan terus memperbarui
referensi dari streaming siaran acara live Anda saat siaran sedang
berlangsung. Selain itu, YouTube akan mencari video yang diupload pengguna yang cocok saat siaran masih berlangsung. Perhatikan bahwa membuat referensi sebelum siaran dimulai akan otomatis mengaktifkan perekaman untuk siaran, dan perekaman tidak dapat dinonaktifkan setelah referensi dibuat.
Untuk mengaktifkan siaran Anda agar dapat mengirimkan Content ID secara live, coba lakukan tindakan yang dijelaskan di langkah 6.2 setelah mengklaim video Anda di langkah 2.4.
Jika akun partner Anda belum disetujui untuk membuat referensi untuk live
streaming sebelum streaming tersebut terjadi, API akan menampilkan
error
fingerprintingNotAllowed. Dalam hal ini, Anda harus menunggu hingga siaran selesai, seperti yang dijelaskan dalam langkah 6.1 dan 6.2 di atas, sebelum membuat referensi.