적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

초보 iOS 개발자의 일상/이슈모음집

[iOS] Youtube 영상 재생 불가 이슈 - 오류 153 동영상 플레이어 구성 오류 iframe (nocookie)

hongssup_ 2025. 10. 30. 18:38
728x90
반응형

잘 되던 영상이 갑자기 재생이 안되네?!

깔깔

 

문제

안드로이드 iOS 둘 다 갑자기 153 동영상 플레이어 구성 오류 나면서 youtube 영상 재생이 안되는 것..!

153: Video player configuration error

 

YouTube 153 error policy change

2025 9월 중순경부터 발생하기 시작한 이슈로

이전에는 문제없이 작동하던 오래된 iframe 코드들이 수정이 필요하게 되었다고 한다 (?) 

 

해결 방법

www.youtube.com/embed/ \(movieId) 에서 youtube-nocookie로 url을 변경하니 해결이 되었다. 

private func loadVideo(movieId: String) {
    let htmlString = """
        <html style='height:100%;width:100%'>
        <head>
            <meta name='viewport'content='width=device-width,initial-scale=1'>
        </head>
        <body style='margin:0;height:100%;width:100%'>
            <iframe style='height:100%;width:100%'
                src='https://www.youtube-nocookie.com/embed/\(movieId)?playsinline=1'
                frameborder='0'
                allow='accelerometer; autoplay;encrypted-media;gyroscope' 
                referrerpolicy='strict-origin-when-cross-origin'
                allowfullscreen;>
            </iframe>
        </body>
        </html>
        """

    let url = URL(string: "https://www.youtube-nocookie.com")
    videoWebView?.loadHTMLString(htmlString, baseURL: url)
}

 

정책이 바뀌어서 referrerpolicy='strict-origin-when-cross-origin' 를 필수로 추가해주어야 한다는 사람들도 있던데
이거는 없어도 재생이 잘되긴 하더라. 근데 혹시 몰라서 그냥 넣어둠

참고 : https://developers.google.com/youtube/terms/required-minimum-functionality?hl=ko#embedded-player-api-client-identity

 

YouTube API 서비스 - 필수 최소 기능  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. YouTube API 서비스 - 필수 최소 기능 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 참고: YouTube 개발자

developers.google.com

 

 

 

youtube-nocookie.com

nocookie란 뭘까? 실무 앱에서 그냥 막 써도 되는걸까?

완전 YES

 

YouTube 공식 문서에도 Privacy Enhanced Mode (개인정보 보호 강화 모드) 로 nocookie 를 사용하는 방식이 소개되어 있다. 

참고 : YouTube Privacy-Enhanced Mode 공식 설명서

 

이 nocookie 도메인은 개인정보 보호 강화모드 용으로 쿠키를 전혀 쓰지 않고, 사용자 추적 없이 영상만 로드하는 전용 endpoint라고 한다.

iFrame 로드 시 보안 검증 절차가 훨씬 단순하고, 웹뷰 환경처럼 리퍼러나 쿠키를 제한적으로 전달하는 환경에서는 nocookie 도메인이 훨씬 안정적으로 작동한다고 한다. 

이렇게 하면 쿠키/세션 검증을 비활성화해서 153 오류를 방지하고 앱 내에서 안정적으로 동작할 수 있다. 

 

안심하고 쓰면 됨!!

 

 

아무튼 잘뜬당 😆 다행쓰

 

 

 

 

+ Claude 는 자꾸 외부 라이브러리 쓰라구 어쩌구 저쩌구 하는데 그냥 웹뷰 iframe 그대로 해결이 가능하다! 다행쓰

 

도움이 되셨다면 아래 광고 한 번 눌러주시면 감사하겠습니다! 🙇🏻‍♀️

반응형