全部产品
Search
文档中心

ApsaraVideo Live:URL ingest dan streaming yang ditandatangani

更新时间:Jul 06, 2025

Untuk mencegah unduhan ilegal dan pencurian sumber daya situs, Anda dapat mengonfigurasi daftar hitam atau daftar putih Referer untuk mengidentifikasi dan menyaring pengunjung. Selain itu, Anda dapat menggunakan URL ingest dan streaming yang ditandatangani untuk melindungi sumber daya di server asal Anda. Topik ini menjelaskan cara kerja fitur penandatanganan URL, cara mengonfigurasinya, serta catatan penting terkait penggunaannya.

Membuat URL yang ditandatangani

URL yang ditandatangani didukung oleh alat ingest stream pihak ketiga dan pemain di PC maupun perangkat seluler. URL tersebut terdiri dari URL ingest atau URL streaming dan token akses. Contoh:

rtmp://push.aliyundoc.com/app/stream?auth_key=1740562218-0-0-183e22e*********

Bidang auth_key menunjukkan access token.

Struktur token akses

timestamp-rand-uid-md5hash
  • timestamp: Waktu Unix dalam detik. Waktu kedaluwarsa URL yang ditandatangani adalah timestamp ditambah periode validitas URL tersebut.

    Jika Anda menggunakan generator URL di konsol ApsaraVideo Live untuk menghasilkan URL yang ditandatangani, timestamp adalah waktu saat ini. Dalam hal ini, rumus berikut berlaku: Waktu Kedaluwarsa = Waktu Saat Ini + Periode Validitas.

    Jika Anda membuat URL yang ditandatangani dengan menggunakan aturan penggabungan, Anda dapat menentukan timestamp. Misalnya, jika Anda menetapkan timestamp ke waktu saat ini ditambah 3.600 detik, rumus berikut berlaku: Waktu Kedaluwarsa = Waktu Saat Ini + 3.600 detik + Periode Validitas. Sebagai contoh, jika Anda menetapkan timestamp ke waktu saat ini, rumus berikut berlaku: Waktu Kedaluwarsa = Waktu Saat Ini + Periode Validitas.

  • rand: Angka acak, biasanya diatur ke 0.

    Untuk menghasilkan URL yang berbeda setiap kali, kami sarankan Anda menggunakan UUID sebagai angka acak. Nilai tersebut tidak boleh mengandung tanda hubung (-). Contoh: 477b3bbc253f467b8def6711128c7****.

  • uid: Parameter tambahan yang tidak digunakan. Biasanya diatur ke 0.

  • md5hash: String yang dihitung menggunakan algoritma MD5. String tersebut memiliki panjang 32 karakter dan berisi digit serta huruf kecil.

    Kode enkripsi:

    sstring = "URI-timestamp-rand-uid-PrivateKey" 
    md5hash = md5sum(sstring)

    Sebagai contoh, jika URL ingest adalah rtmp://push.aliyundoc.com/app/stream, konten yang dienkripsi adalah /app/stream-timestamp-rand-uid-Kunci Otentikasi nama domain.

Menggunakan penandatanganan URL

Untuk menggunakan URL yang ditandatangani, Anda harus mengaktifkan fitur penandatanganan URL untuk nama domain Anda. Fitur ini diaktifkan secara default ketika Anda menambahkan nama domain untuk pertama kalinya. Untuk informasi lebih lanjut, lihat Konfigurasikan Penandatanganan URL. Anda dapat menghasilkan URL yang ditandatangani di konsol ApsaraVideo Live atau dengan menggunakan aturan penggabungan. Untuk informasi lebih lanjut, lihat Hasilkan URL Ingest dan Streaming.

Cara kerja penandatanganan URL

Setelah penandatanganan URL diaktifkan, server memverifikasi permintaan dengan melakukan langkah-langkah berikut:

  1. Server memeriksa apakah timestamp dalam permintaan lebih awal dari waktu saat ini.

    • Jika timestamp lebih awal dari waktu saat ini, server menganggap bahwa URL yang ditandatangani telah kedaluwarsa dan mengembalikan kode status HTTP 403.

    • Jika timestamp lebih lambat dari waktu saat ini, server membuat string menggunakan rumus berikut.

  2. Server menggunakan algoritma MD5 untuk menghitung nilai hash dari string tersebut, lalu membandingkan nilai hash dengan yang terkandung dalam permintaan.

    • Jika kedua nilai tersebut sama, otentikasi berhasil. Server mengembalikan live stream.

    • Jika kedua nilai tersebut berbeda, otentikasi gagal. Server mengembalikan kode status HTTP 403.

Nilai hash dihitung berdasarkan rumus berikut:

sstring = "URI-timestamp-rand-uid-PrivateKey"
HashValue = md5sum(sstring)

Contoh

  • Asumsi:

    1. Anda meminta objek rtmp://demo.aliyundoc.com/video/standard**** dengan menggunakan req_auth.

    2. Anda menetapkan kunci kriptografi menjadi aliyunliveexp1234, yang merupakan kunci utama atau kunci sekunder yang dikonfigurasi di konsol ApsaraVideo Live.

    3. Waktu ketika URL yang ditandatangani dihasilkan adalah 16:49:57 pada 28 Mei 2021 (UTC+8).

    4. Di konsol ApsaraVideo Live, validity period URL yang ditandatangani diatur menjadi 40 menit.

    5. Anda menetapkan bidang rand dan uid ke 0.

  • Hasil:

    1. Timestamp UNIX yang dihitung dari URL yang ditandatangani adalah 1.622.194.197, yaitu 17:29:57 pada 28 Mei 2021 (UTC+8).

    2. Server membuat string tanda tangan yang digunakan untuk menghitung nilai hash.

      /video/standard-1622194197-0-0-aliyunliveexp1234

    3. Server menghitung nilai hash berdasarkan string tanda tangan.

      HashValue = md5sum("/video/standard-1622194197-0-0-aliyunliveexp1234") = 5552ff52b5e4e20387c6dc18afce****

    4. URL permintaan adalah rtmp://demo.aliyundoc.com/video/standard****?auth_key=1622194197-0-0-5552ff52b5e4e20387c6dc18afce****.

      Catatan

      Bidang auth_key menunjukkan token akses yang termasuk dalam URL yang ditandatangani.

    5. Nilai hash yang dihitung adalah md5hash = 5552ff52b5e4e20387c6dc18afce****, yang sama dengan yang terkandung dalam permintaan. Dalam hal ini, otentikasi berhasil.

Catatan penggunaan

  • Secara default, penandatanganan URL diaktifkan. Kami sarankan Anda tetap mengaktifkan fitur ini untuk mencegah konten Anda dibajak. Jika Anda ingin menonaktifkan penandatanganan URL, pastikan Anda memahami risiko penggunaan tidak sah atas sumber daya Anda dan menyetujui Pernyataan Penolakan untuk Menonaktifkan Penandatanganan URL di halaman URL Signing di konsol ApsaraVideo Live.

  • Anda harus menetapkan bidang auth_key secara manual. ApsaraVideo Live tidak menyediakan operasi API untuk menghitung nilai bidang auth_key.

  • Setelah Anda mengaktifkan penandatanganan URL, Anda harus menambahkan bidang auth_key ke URL ingest dan streaming. Jika tidak, live stream tidak dapat diputar. Anda tidak dapat menandatangani hanya URL ingest atau URL streaming saja. Anda harus menandatangani keduanya.

  • URL yang ditandatangani tetap valid sebelum timestamp kedaluwarsanya. Anda dapat mengakses URL yang ditandatangani kapan saja sebelum kedaluwarsa. ApsaraVideo Live tidak mendukung URL yang ditandatangani satu kali.

  • Nilai bidang auth_key adalah nilai MD5 dari URI tanpa bidang queryString. Untuk informasi lebih lanjut, lihat bagian sebelumnya tentang pengaturan parameter penandatanganan URL. URI dari URL ingest dan streaming keduanya adalah AppName/StreamName. Jika URL ingest tidak rahasia, kami sarankan Anda menetapkan timestamp kedaluwarsa serapat mungkin. Ini mencegah akses jahat ke URL streaming.

  • Untuk URL ingest dan streaming dalam format Real-Time Messaging Protocol (RTMP), FLV, dan Real-Time Streaming (RTS), permintaan diautentikasi hanya ketika ingest stream atau streaming dimulai. Ingest stream atau streaming yang sedang berlangsung tidak terganggu jika URL yang ditandatangani kedaluwarsa selama proses tersebut.

  • Untuk URL streaming dalam format M3U8, permintaan diautentikasi pada awal streaming dan selama streaming. Streaming yang sedang berlangsung terganggu jika URL yang ditandatangani kedaluwarsa selama proses tersebut.

  • Jika Anda ingin mengontrol secara dinamis periode validitas URL yang ditandatangani, Anda dapat menggunakan SDK terkait untuk menentukan parameter AppName dan StreamName secara dinamis. Untuk informasi lebih lanjut, lihat Contoh Kode untuk Penandatanganan URL.