Access-Control-Allow-Origin

HLS CORS 오류: 브라우저에서 M3U8 스트림이 실패하는 이유

HLS CORS 오류는 브라우저가 다른 원본에서 M3U8 매니페스트, 암호화 키 또는 미디어 세그먼트를 가져오는 것이 허용되지 않을 때 발생합니다. CORS는 미디어 규칙이 아니라 브라우저 규칙이므로 스트림은 VLC에서 계속 재생될 수 있습니다. 온라인으로 스트림을 테스트하려면 CORS 지원 원본을 사용하거나 프록시를 통해 HLS 요청을 라우팅하세요.

마지막 업데이트: June 20, 2026

재생, 기록, 즐겨찾기, 자막, 브라우저 변환은 이 기기에 유지됩니다. HLS 요청은 CORS 프록시를 켤 때만 프록시를 통과합니다.

스마트 CORS 프록시

브라우저 직접 재생이 차단된 경우 매니페스트, 키, 세그먼트에 Cloudflare Worker 프록시를 사용하세요.

비디오 미리보기

링크 상태 보고서

변형, 비트 전송률, 세그먼트 기간, 암호화 및 라이브/VOD 상태를 구문 분석한 다음 데드 링크에 대한 미디어 세그먼트를 샘플링합니다. 세그먼트 확인은 브라우저 CORS에 의해 제한되므로 가장 정확한 결과를 얻으려면 프록시를 활성화하십시오.

CORS 실패를 인식하는 방법

확인하다징후의미
매니페스트가 차단됨재생이 시작되기 전에 .m3u8 요청이 실패합니다.원본에는 Access-Control-Allow-Origin이 필요하거나 플레이어에게 프록시가 필요합니다.
키가 차단되었습니다.매니페스트가 로드되지만 암호화된 재생이 실패합니다.AES-128 키 URL도 CORS을 허용하거나 동일한 프록시를 통해 라우팅해야 합니다.
차단된 세그먼트재생이 시작된 다음 버퍼링되거나 정지됩니다.모든 .ts 또는 .m4s 세그먼트 요청에는 동일한 CORS 경로가 필요합니다.
VLC 작동, 브라우저 실패데스크톱 재생은 작동하지만 웹 재생은 작동하지 않습니다.이는 일반적으로 끊어진 스트림이 아닌 브라우저 CORS 문제를 확인합니다.
프리플라이트 실패사용자 정의 헤더는 원본이 거부하는 OPTIONS 요청을 트리거합니다.불필요한 헤더를 피하거나 OPTIONS를 처리하도록 프록시/원본을 구성하세요.

HLS CORS 오류를 수정하거나 테스트하는 방법

  1. 1

    매니페스트가 로드되는지 확인

    M3U8 URL를 열거나 플레이어에 붙여넣으세요. 매니페스트 요청이 CORS에 의해 차단되면 재생을 시작할 수도 없습니다.

  2. 2

    VLC과 비교

    VLC이 동일한 URL을 재생할 수 있지만 브라우저에서는 재생할 수 없는 경우 스트림에 도달할 수 있으며 오류는 브라우저 액세스 제어입니다.

  3. 3

    스마트 CORS 프록시 활성화

    매니페스트, 암호화 키, 미디어 세그먼트가 모두 브라우저가 읽을 수 있는 응답을 통해 이동하도록 프록시를 켜세요.

  4. 4

    상태 보고서 실행

    프록시를 통해 유효성 검사기를 사용하여 세그먼트가 CORS에 의해 차단되는 대신 실제로 살아 있는지 확인하세요.

  5. 5

    필요한 경우에만 Referer을 추가하세요.

    원본이 핫링크 보호를 사용하는 경우 원본 페이지 URL를 Referer으로 설정합니다. 원본에서 요구하지 않는 한 사용자 정의 헤더를 추가하지 마십시오.

HLS이 둘 이상의 URL에 대해 CORS을 필요로 하는 이유

HLS 플레이어는 하나의 파일만 가져오지 않습니다. 마스터 매니페스트, 하나 이상의 미디어 재생 목록, AES-128 스트림에 대한 암호화 키 및 많은 세그먼트 URL을 가져옵니다. 해당 리소스 중 하나에 누락된 CORS 헤더가 하나라도 있으면 재생이 중단될 수 있으므로 첫 번째 .m3u8 응답만 테스트하는 것만으로는 충분하지 않습니다.

Access-Control-Allow-Origin이 해야 할 일

공개 스트림의 경우 원본은 플레이어를 호스팅하는 사이트에 대해 Access-Control-Allow-Origin을 보내거나 자격 증명이 관련되지 않은 경우 와일드카드를 사용할 수 있습니다. 비공개 스트림의 경우 원본을 잠긴 상태로 유지하고 테스트를 위해 제어된 프록시 엔드포인트를 사용하세요. 동일한 HLS 세션에서 직접 및 프록시 URL를 혼합하지 마십시오.

디버깅에 프록시가 유용한 이유

프록시를 사용하면 브라우저가 허용된 원본에서 HLS 자산을 요청할 수 있으며 프록시는 실제 매니페스트, 키 및 세그먼트 URL을 가져옵니다. 이를 통해 스트림이 끊어졌는지 아니면 단순히 브라우저 정책에 의해 차단되었는지 알 수 있습니다. 또한 원본에서 요구할 때 Referer 또는 User-Agent을 추가할 수 있는 한 곳도 제공합니다.

자주 묻는 질문

HLS CORS 오류의 원인은 무엇입니까?

원본이 원본 간 액세스를 허용하지 않았기 때문에 브라우저가 M3U8 매니페스트, 암호화 키 또는 미디어 세그먼트를 읽을 수 없는 경우 HLS CORS 오류가 발생합니다. VLC는 브라우저에서 CORS를 시행하므로 계속해서 스트림을 재생할 수 있습니다.

내 M3U8 스트림이 VLC에서는 재생되지만 Chrome에서는 재생되지 않는 이유는 무엇입니까?

VLC은 브라우저 CORS 검사에 의해 제한되지 않습니다. VLC가 작동하고 Chrome이 실패하는 경우 일반적으로 스트림에 연결할 수 있지만 브라우저는 CORS 헤더나 프록시 없이는 하나 이상의 HLS 요청을 읽을 수 없습니다.

CORS 프록시로 M3U8 재생을 수정할 수 있나요?

예, 테스트 및 디버깅용입니다. 프록시는 모든 HLS 요청이 브라우저가 읽을 수 있는 원본에서 나오도록 매니페스트, 미디어 재생 목록, 키 및 세그먼트를 라우팅해야 합니다.

HLS 세그먼트에 CORS 헤더가 필요합니까?

예. 매니페스트, 하위 재생 목록, 키 및 모든 미디어 세그먼트는 브라우저에서 읽을 수 있어야 합니다. 최상위 .m3u8 파일에 올바른 CORS 헤더가 있어도 스트림이 실패할 수 있습니다.

이것이 핫링크 보호와 동일합니까?

아니요. CORS은 브라우저 액세스 규칙입니다. 핫링크 보호는 특정 Referer 또는 User-Agent을 요구할 수 있는 원본 규칙입니다. 일부 스트림에는 두 가지 문제가 모두 있으므로 프록시와 일치하는 Referer가 필요할 수 있습니다.