Penerbitan

Video API mengizinkan Anda menerbitkan Video di Halaman dan Grup. Menerbitkan di Pengguna tidak didukung.

Anda juga bisa menerbitkan Reels di Halaman. Untuk informasi selengkapnya, lihat API Penerbitan Reels.

Proses penerbitan Video melibatkan pemilihan protokol unggah dan pengiriman permintaan POST ke edge /videos Halaman atau Grup target. API mendukung protokol unggah Yang Dapat Dilanjutkan dan Yang Tidak Dapat Dilanjutkan. Kami rekomendasikan Anda untuk menggunakan protokol Unggah yang Dapat Dilanjutkan karena protokol ini lebih fleksibel dan dapat menangani gangguan koneksi dengan baik.

Perhatikan bahwa semua contoh dalam dokumen ini menggunakan node Halaman, tetapi berlaku sama untuk node Grup.

Persyaratan

Semua tindakan penerbitan memerlukan Token Akses dan Izin yang sesuai berdasarkan node yang Anda target. Saat Anda menguji, Anda bisa menghasilkan Token dengan mudah dan memberikan aplikasi Anda Izin menggunakan Graph API Explorer. Baca panduan Memulai untuk melihat caranya. Saat Anda aplikasi siap untuk produksi, Anda mungkin harus menerapkan Facebook Login untuk mendapatkan Token dan Izin dari pengguna aplikasi Anda.

Penerbitan di Halaman

Pengguna aplikasi harus menjadi Admin dari Halaman yang Anda target. Anda akan memerlukan Token Akses Pengguna milik pengguna aplikasi dan mereka harus memberi aplikasi Anda izin pages_show_list, pages_read_engagement, dan pages_manage_posts.

Penerbitan di Grup

Pengguna aplikasi harus menjadi Admin Grup yang Anda target. Anda akan perlu menggunakan Token Akses Pengguna milik pengguna aplikasi dan mereka harus memberi aplikasi Anda izin publish_to_groups.

Unggah yang Dapat Dilanjutkan

Protokol Unggah yang Dapat Dilanjutkan adalah protokol penerbitan pilihan karena Anda bisa membagi video besar menjadi bagian yang lebih kecil untuk menghindari waktu habis. Ini sangat berguna terutama untuk video besar karena Anda lebih cenderung mengalami kesalahan koneksi. Jika Anda mengalami kesalahan koneksi saat mengunggah video besar, biasanya Anda harus mengunggah ulang seluruh video. Tetapi dengan menggunakan protokol Unggah yang Dapat Dilanjutkan, Anda hanya perlu mengunggah ulang bagian yang terpengaruh; potongan yang telah diunggah tidak perlu diunggah ulang.

Anda dapat menerbitkan video di Halaman atau Grup. Penerbitan melibatkan langkah-langkah berikut:

  1. Inisialisasi sesi unggah di Halaman atau Grup,
  2. unggah potongan individual sesuai urutan penyusunan, dan
  3. akhiri sesi unggah.

Setelah Anda mengakhiri sesi unggah, kami akan menyusun kembali video tersebut, mengenkodenya, dan menerbitkannya.

Batasan

Video dibatasi hingga 10GB dan 4 jam.

Langkah 1: Inisialisasi Sesi Unggah

Untuk menginisialisasi sesi unggah video, kirim permintaan POST ke endpoint Video Halaman:

POST /v19.0/{page-id}/videos
  ?upload_phase=start
  &access_token={access-token}
  &file_size={file-size}

Sertakan parameter berikut:

Nama ParameterNilai

upload_phase

start

access_token

Token akses Halaman Anda jika menerbitkan di Halaman, atau token akses Pengguna Anda jika menerbitkan di Grup.

file_size

Ukuran total file video Anda dalam bita

Contoh Permintaan

curl -X POST \
  "https://graph-video.facebook.com/v19.0/1755847768034402/videos" \
  -F "upload_phase=start" \
  -F "access_token=EAADI..." \
  -F "file_size=22420886"

Contoh Tanggapan

{
  "video_id":"2918040888250909",          //Capture this value (optional)
  "start_offset":"0",                     //Capture this value
  "end_offset":"1048576",
  "upload_session_id":"2918040901584241"  //Capture this value
}

Catat nilai start_offset dan upload_session_id yang dikembalikan API. Anda akan menggunakannya di langkah berikutnya untuk mengunggah potongan video pertama Anda. Anda mungkin juga ingin mencatat nilai video_id. Anda tidak membutuhkannya untuk penerbitan, tetapi itu akan menjadi ID video yang akhirnya diterbitkan.

Langkah 2: Unggah Potongan Secara Individual

Unggah setiap potongan video Anda sesuai urutan penyusunan dengan mengirimkan permintaan POST secara berurutan ke endpoint Video Halaman:

POST /v19.0/{page-id}/videos
  ?upload_phase=transfer
  &access_token={access-token}
  &upload_session_id={upload-session-id}
  &start_offset={start-offset}
  &video_file_chunk={video-file-chunk}

Sertakan data berikut sebagai multipart/form-data di isi permintaan:

Nama Data di FormulirNilai

upload_phase

transfer

access_token

Token akses Halaman Anda jika menerbitkan di Halaman, atau token akses Pengguna Anda jika menerbitkan di Grup.

upload_session_id

ID sesi unggah Anda.

start_offset

Nilai start_offset yang dikembalikan di tanggapan sebelumnya.

video_file_chunk

Nama potongan video yang akan diunggah.

Setiap kali Anda berhasil mengunggah sepotong, nilai start_offset akan dikembalikan. Ulangi permintaan ini menggunakan nilai start_offset yang baru dikembalikan dan nama potongan video berikutnya yang akan diunggah (ditetapkan ke video_file_chunk) dan secara bertahap lanjutkan mengunggah semua potongan video yang tersisa.

Contoh Permintaan untuk Potongan Pertama

curl -X POST \
  "https://graph-video.facebook.com/v19.0/1755847768034402/videos"  \
  -F "upload_phase=transfer" \
  -F "upload_session_id=2918040901584241" \
  -F "access_token=EAADI..." \
  -F "start_offset=0" \
  -F "video_file_chunk=@/Users/...xaa"

Contoh Tanggapan

{
  "start_offset":"10485760",  //Value for second chunk
  "end_offset":"15728640"
}

Contoh Permintaan untuk Potongan Kedua

curl -X POST \
  "https://graph-video.facebook.com/v19.0/1755847768034402/videos"  \
  -F "upload_phase=transfer" \
  -F "upload_session_id=2918040901584241" \
  -F "access_token=EAADI..." \
  -F "start_offset=10485760" \
  -F "video_file_chunk=@/Users/...xab"

Contoh Tanggapan

{
  "start_offset":"20971520",  //Value for third chunk
  "end_offset":"22420886"
}

Setelah Anda mengunggah potongan terakhir Anda, API harus menanggapi dengan mencocokan nilai start_offset dan end_offset, menunjukkan bahwa Anda dapat mengakhiri sesi unggah.

Contoh Tanggapan Akhir

{
  "start_offset":"22420886",  //When values match you can
  "end_offset":"22420886"     //end the upload session
}

Langkah 3: Akhiri Sesi Unggah

Saat Anda mengakhiri sesi unggah, kami akan menyusun ulang video lengkapnya, mengenkodenya, lalu menerbitkannya di Halaman. Untuk mengakhiri sesi unggah, kirim satu permintaan POST terakhir ke endpoint Video Halaman:

POST /v19.0/{page-id}/videos
  ?upload_phase=finish
  &access_token={access-token}
  &upload_session_id={upload-session-id}

Sertakan parameter berikut:

Nama ParameterNilai

upload_phase

finish

access_token

Token akses Halaman Anda jika menerbitkan di Halaman, atau token akses Pengguna Anda jika menerbitkan di Grup.

upload_session_id

ID sesi unggah Anda.

Anda juga dapat menyertakan parameter tambahan yang didukung endpoint Video Halaman, seperti title, description, dan thumb.

Contoh Permintaan

curl -X POST \
  "https://graph-video.facebook.com/v19.0/1755847768034402/videos"  \
  -F "upload_phase=finish" \
  -F "access_token=EAADI..." \
  -F "upload_session_id=2918040901584241"

Contoh Tanggapan JSON

{
  "success":true
}

Ketika Anda menerima tanggapan ini, itu menunjukkan bahwa kami telah mulai menyusun dan mengenkode video lengkap. Anda seharusnya dapat melihat video yang diterbitkan dalam beberapa menit.

Unggah yang Tidak Dapat Dilanjutkan

Kami rekomendasikan Anda untuk mengunggah file menggunakan protokol Unggah yang Dapat Dilanjutkan karena protokol ini menangani gangguan koneksi secara lebih efisien dan mendukung file yang lebih besar. Namun, jika Anda lebih suka mengunggah file menggunakan protokol Unggah yang Tidak Dapat Dilanjutkan, Anda dapat melakukannya dengan mengirimkan permintaan POST ke edge Video Halaman dan menyertakan parameter source (untuk file video lokal) atau parameter file_url (untuk file yang di-hosting di server publik) dalam isi permintaan Anda sebagai multipart/form-data. Anda juga dapat menyertakan parameter tambahan yang didukung endpoint Video Halaman, seperti title, description, dan thumb.

Batasan

Video dibatasi hingga 1GB dan 20 menit. Jika file video Anda lebih besar, bagi menjadi potongan dan terbitkan menggunakan protokol Unggah yang Dapat Dilanjutkan.

Contoh Permintaan File Lokal

curl -X POST \
  "https://graph-video.facebook.com/v19.0/1755847768034402/videos" \
  -F "access_token=EAADd..." \
  -F "source=@/Users/...incredible.mov"

Contoh Permintaan File yang Di-hosting

curl -X POST \
  "https://graph-video.facebook.com/v19.0/1755847768034402/videos" \
  -F "access_token=EAADd..." \
  -F "file_url=https://socialsizz.../incredible.mov"

Setelah berhasil, API akan menanggapi dengan ID Video yang diterbitkan.

Contoh Tanggapan

{
  "id":"287788272232962"  //ID of the published Video
}

Gambar Mini Video

Kami secara otomatis menghasilkan gambar mini menggunakan foto dari video yang diterbitkan. Gambar mini yang dihasilkan dapat ditingkatkan untuk meningkatkan kecerahan, warna, dan kontras. Anda dapat menyediakan gambar mini Anda sendiri dengan menyertakan kolom thumb dengan protokol unggah Dapat Dilanjutkan atau Tidak Dapat Dilanjutkan. Jika menggunakan protokol unggah Dapat Dilanjutkan, sertakan kolom thumb dalam Langkah 3: Akhiri Sesi Unggah. Gambar mini yang Anda sediakan tidak akan diubah.

Persyaratan Gambar Mini

Format: BMP, GIF, JPEG, PNG,TIFF
Ukuran File: 10MB atau kurang.

Tidak ada persyaratan dimensi gambar, tetapi gambar harus berbagi rasio aspek yang sama dengan video Anda.

Contoh Permintaan Unggah yang Dapat Dilanjutkan dengan Gambar Mini

curl -X POST \
  "https://graph-video.facebook.com/v19.0/1755847768034402/videos" \
  -F "upload_phase=finish" \
  -F "access_token=EAADI..." \
  -F "upload_session_id=2918040901584241"
  -F "thumb=@/Users/...thumbnail_image.png"

Contoh Tanggapan JSON

{
  "success":true
}

Contoh Permintaan Unggah yang Tidak Dapat Dilanjutkan dengan Gambar Mini

curl -X POST \
  "https://graph-video.facebook.com/v19.0/1755847768034402/videos" \
  -F "access_token=EAADd..." \
  -F "source=@/Users/...incredible.mov"
  -F "thumb=@/Users/...thumbnail_image.png"

Contoh Tanggapan

{
  "id":"287788272232962"
}