Kredensial pemutaran adalah token yang sensitif terhadap waktu dan spesifik untuk video tertentu serta tidak dapat digunakan ulang. Jika kredensial kedaluwarsa atau salah, URL pemutaran tidak dapat diambil, sehingga metode ini cocok untuk skenario pemutaran berkeamanan tinggi.
Catatan penggunaan
Pemutar Video Apsara mendukung pemutaran melalui kredensial pemutaran, sedangkan pemutar pihak ketiga tidak mendukung metode ini.
Kredensial pemutaran berlaku selama 100 detik secara default (maksimum 3.000 detik). Kredensial ini hanya digunakan untuk mengambil URL pemutaran video tertentu dan tidak dapat dibagikan atau digunakan ulang. Jika kredensial kedaluwarsa, Anda harus menerapkan logika refresh di aplikasi Anda.
Periode validitas kredensial pemutaran berbeda dari periode validitas URL pemutaran (jika URL signing diaktifkan). Periode validitas URL pemutaran dapat dikustomisasi tanpa batas atas.
Jika Anda menggunakan Alibaba Cloud Video Encryption (Private Encryption), video hanya dapat diputar menggunakan kit pengembangan perangkat lunak (SDK) Pemutar Video Apsara.
Parameter validitas: AuthInfoTimeout vs AuthTimeout
Terdapat dua parameter validitas yang berlaku, tergantung pada API yang Anda panggil:
Saat memanggil API GetVideoPlayAuth untuk mendapatkan kredensial pemutaran, periode validitas dikontrol oleh parameter AuthInfoTimeout.
Saat memanggil API GetPlayInfo untuk mendapatkan URL pemutaran, periode validitas dikontrol oleh parameter AuthTimeout.
Jangan keliru antara kedua parameter ini: AuthInfoTimeout menentukan durasi validitas PlayAuth, sedangkan AuthTimeout menentukan durasi aksesibilitas URL pemutaran yang dihasilkan.
authTimeout di front-end vs validitas di sisi server
Parameter authTimeout pada SDK pemutar (front-end) hanya mengatur perilaku penyegaran cache lokal dan tidak menggantikan periode validitas yang dikembalikan oleh server.
Bidang ExpireTime dalam PlayAuth merupakan timestamp kedaluwarsa otoritatif yang menentukan perilaku pemutaran sebenarnya:
Jika kredensial di sisi server telah kedaluwarsa (waktu ExpireTime telah lewat), otentikasi gagal terlepas dari pengaturan authTimeout di front-end.
Jika kredensial di sisi server masih valid, pemutaran dapat berlanjut meskipun authTimeout di front-end telah lewat, asalkan permintaan kredensial baru berhasil.
Mekanisme pembaruan untuk video panjang
Masa berlaku maksimum kredensial pemutaran adalah 3.000 detik. Untuk video yang lebih panjang, perbarui PlayAuth 10 hingga 30 detik sebelum kedaluwarsa dengan menggunakan metode penyegaran kredensial dari SDK pemutar (misalnya, Aliplayer menyediakan replayByVidAndPlayAuth atau loadByUrl). Jangan menunggu hingga tepat saat kedaluwarsa karena latensi jaringan dapat menyebabkan gangguan pemutaran.
Strategi caching untuk konkurensi tinggi
API GetVideoPlayAuth memiliki batas QPS sebesar 360 permintaan per detik per pengguna. Untuk skenario konkurensi tinggi, terapkan strategi caching di sisi server:
Cache PlayAuth dan gunakan kembali selama periode validitasnya guna mengurangi jumlah panggilan API.
Kedaluwarsa kredensial hanya memengaruhi pengambilan URL pemutaran. Setelah URL pemutaran diperoleh, pemutaran tetap berlanjut meskipun kredensial telah kedaluwarsa.
Kompatibilitas browser
Jika pemutaran berfungsi di Chrome tetapi gagal di Edge, periksa terlebih dahulu kompatibilitas format encoding video, lalu verifikasi validitas kredensial pemutaran.
Penanganan error kedaluwarsa kredensial
Saat klien (misalnya, SDK Android) melaporkan error "playauth is expired", tambahkan pendengar kedaluwarsa kredensial dan logika penyegaran otomatis di aplikasi Anda. Untuk langkah integrasi selengkapnya, lihat dokumentasi konfigurasi lanjutan untuk SDK masing-masing platform.
Proses keseluruhan
Berikut ini menjelaskan cara mendapatkan kredensial pemutaran dan memutar video, menggunakan domain akselerasi CDN sebagai contoh.
Client mengirim VideoId ke server untuk meminta kredensial pemutaran.
Server Anda memanggil operasi GetVideoPlayAuth menggunakan SDK sisi server untuk mendapatkan kredensial pemutaran.
Layanan VOD mengembalikan kredensial pemutaran ke server.
Server mengembalikan kredensial pemutaran ke client.
Pemutar client meminta URL pemutaran dari layanan VOD menggunakan kredensial yang diterima.
Layanan VOD mengembalikan URL pemutaran ke client.
Client meminta resource pemutaran dari node CDN menggunakan URL pemutaran.
Jika node CDN tidak memiliki resource tersebut atau cache-nya telah kedaluwarsa, node tersebut mengambil resource dari Bucket OSS origin.
Bucket OSS mengembalikan resource ke node CDN, yang kemudian menyimpannya dalam cache.
Node CDN mengirimkan resource media ke client.
Langkah selanjutnya
Alibaba Cloud menyediakan SDK pemutar untuk Web, Android, iOS, Flutter, dan HarmonyOS, yang semuanya mendukung pemutaran berbasis kredensial. Pilih dokumentasi untuk platform Anda:
FAQ
Apakah SDK pemutar Web mendukung token autentikasi JWT?
Tidak. SDK pemutar Web hanya mendukung metode pemutaran VID + PlayAuth. Jika Anda mengalami kegagalan pemutaran dengan Auth JWT yang dihasilkan secara lokal, beralihlah ke metode PlayAuth standar.
Mengapa GetPlayInfo mengembalikan error yang menunjukkan status video tidak valid atau sedang dalam peninjauan?
Video harus memenuhi kedua kondisi berikut agar dapat memperoleh informasi pemutaran:
Status utama (Status) adalah Normal.
Status audit (AuditStatus) adalah Normal.
Jika statusnya UploadSucc atau status auditnya Init, tunggu hingga transkoding selesai dan peninjauan lolos. Anda dapat menggunakan API GetVideoInfo untuk mengecek status video terbaru dan memverifikasi pengaturan audit global Anda.
Mengapa saya harus menentukan format sebagai mp4 untuk pemutaran?
Hal ini umumnya disebabkan oleh masalah kompatibilitas format HLS pada versi SDK pemutar yang lebih lama. Tingkatkan ke versi SDK pemutar terbaru atau uji dengan kode demo resmi.
Bagaimana cara mendapatkan identifier resolusi video (LD, HD, SD) di Android?
Identifier resolusi hanya dikembalikan oleh server saat menggunakan metode kredensial pemutaran (VidSts atau VidAuth). Jika Anda menggunakan metode pemutaran URLSource secara langsung, identifier resolusi tidak akan tersedia.
Apakah metode VID + PlayAuth mendukung pemutaran resource dari penyimpanan cloud pihak ketiga?
Tidak. Metode VID + PlayAuth hanya mendukung video yang diunggah ke pustaka aset media Alibaba Cloud VOD. Untuk memutar resource pihak ketiga, migrasikan atau unggah terlebih dahulu ke Alibaba Cloud VOD guna menghasilkan VID.