Bagaimana mengenali kegagalan CORS
| Memeriksa | Gejala | Arti |
|---|---|---|
| Manifes diblokir | Permintaan .m3u8 gagal sebelum pemutaran dimulai. | Asal membutuhkan Access-Control-Allow-Origin atau pemain memerlukan proxy. |
| Kunci diblokir | Manifes dimuat, namun pemutaran terenkripsi gagal. | Kunci AES-128 URL juga harus mengizinkan CORS atau merutekan melalui proxy yang sama. |
| Segmen diblokir | Pemutaran dimulai, lalu buffer atau terhenti. | Setiap permintaan segmen .ts atau .m4s memerlukan jalur CORS yang sama. |
| VLC berfungsi, browser gagal | Pemutaran desktop berfungsi tetapi pemutaran web tidak. | Ini biasanya mengkonfirmasi masalah browser CORS, bukan aliran yang rusak. |
| Pra-penerbangan gagal | Header khusus memicu permintaan OPTIONS yang ditolak oleh asal. | Hindari header yang tidak perlu atau konfigurasikan proxy/asal untuk menangani OPTIONS. |
Cara memperbaiki atau menguji kesalahan HLS CORS
- 1
Periksa apakah manifes dimuat
Buka M3U8 URL atau tempel ke pemutar. Jika permintaan manifes diblokir oleh CORS, pemutaran bahkan tidak dapat dimulai.
- 2
Bandingkan dengan VLC
Jika VLC dapat memutar URL yang sama tetapi browser tidak bisa, streaming mungkin dapat dijangkau dan kegagalannya adalah kontrol akses browser.
- 3
Aktifkan proksi CORS yang cerdas
Aktifkan proxy sehingga manifes, kunci enkripsi, dan segmen media semuanya melewati respons yang dapat dibaca oleh browser.
- 4
Jalankan laporan kesehatan
Gunakan validator melalui proxy untuk memeriksa apakah segmen benar-benar aktif dan bukan hanya diblokir oleh CORS.
- 5
Tambahkan Referer hanya bila diperlukan
Jika asal menggunakan perlindungan hotlink, atur halaman asli URL sebagai Referer. Jangan menambahkan tajuk khusus kecuali asal memerlukannya.
Mengapa HLS membutuhkan CORS pada lebih dari satu URL
Pemain HLS tidak hanya mengambil satu file. Ini mengambil manifes master, satu atau lebih daftar putar media, kunci enkripsi untuk AES-128 streaming, dan banyak segmen URLs. Satu header CORS yang hilang pada salah satu sumber daya tersebut dapat mengganggu pemutaran, jadi hanya menguji respons .m3u8 pertama saja tidak cukup.
Apa yang harus dilakukan Access-Control-Allow-Origin
Untuk streaming publik, asal dapat mengirimkan Access-Control-Allow-Origin untuk situs yang menghosting pemain, atau menggunakan wildcard ketika kredensial tidak terlibat. Untuk aliran pribadi, jaga agar sumber tetap terkunci dan gunakan titik akhir proksi yang terkontrol untuk pengujian. Hindari mencampur URL langsung dan proksi dalam sesi HLS yang sama.
Mengapa proxy berguna untuk debugging
Proksi memungkinkan browser meminta aset HLS dari asal Anda yang diizinkan sementara proksi mengambil manifes, kunci, dan segmen URL yang sebenarnya. Hal ini memungkinkan untuk mengetahui apakah suatu streaming rusak atau hanya diblokir oleh kebijakan browser. Ini juga memberi Anda satu tempat untuk menambahkan Referer atau User-Agent ketika asal memerlukannya.
Alat debugging aliran terkait
- M3U8 pemecahan masalah tautan mencakup CORS, Referer, segmen mati, batas codec, dan DRM.
- Pemain Referer M3U8 khusus menjelaskan aliran yang dilindungi hotlink yang memerlukan header yang diteruskan.
Pertanyaan yang sering diajukan
Apa yang menyebabkan kesalahan HLS CORS?
Kesalahan HLS CORS terjadi ketika browser tidak dapat membaca manifes M3U8, kunci enkripsi, atau segmen media karena asal tidak mengizinkan akses lintas asal. VLC masih dapat memutar streaming karena CORS diterapkan oleh browser.
Mengapa streaming M3U8 saya diputar di VLC tetapi tidak di Chrome?
VLC tidak dibatasi oleh pemeriksaan browser CORS. Jika VLC berfungsi dan Chrome gagal, streaming biasanya dapat dijangkau, namun browser tidak dapat membaca satu atau lebih permintaan HLS tanpa header CORS atau proxy.
Bisakah proxy CORS memperbaiki pemutaran M3U8?
Ya, untuk pengujian dan debugging. Proksi harus merutekan manifes, daftar putar media, kunci, dan segmen sehingga setiap permintaan HLS berasal dari asal yang boleh dibaca oleh browser.
Apakah segmen HLS memerlukan header CORS?
Ya. Manifes, playlist turunan, kunci, dan setiap segmen media harus dapat dibaca oleh browser. Streaming bisa gagal meskipun file .m3u8 tingkat atas memiliki header CORS yang benar.
Apakah ini sama dengan perlindungan hotlink?
No. CORS adalah aturan akses browser. Perlindungan hotlink adalah aturan asal yang mungkin memerlukan Referer atau User-Agent tertentu. Beberapa aliran memiliki kedua masalah tersebut, jadi Anda mungkin memerlukan proxy ditambah Referer yang cocok.