본문 바로가기
스마트폰 (Mobile)

유튜브 영상 다운로드 yt-dlp 작동 안 할 때, PO Token이 해답입니다

by 날으는물고기 2025. 8. 14.

유튜브 영상 다운로드 yt-dlp 작동 안 할 때, PO Token이 해답입니다

728x90

유튜브에서 yt-dlp로 영상이나 음성을 다운로드할 때 PO Token(Proof of Origin Token)이 필요하다는 메시지가 나타나는 이유와 해결 방법입니다.

PO Token이 필요한 이유

YouTube는 최근 비정상적인 다운로드 요청을 방지하기 위해 일부 클라이언트에 대해 PO Token 인증을 요구하고 있습니다.

300x250

이는 주로

  • GVS (Google Video Server) 요청
  • Player 요청
  • 자막 (Subs) 요청

에 해당되며, 다운로드 시 HTTP 403 오류(Forbidden)가 발생하는 주 원인이 됩니다.

PO Token이 필요한 경우

클라이언트 필요한 토큰 종류 비고
web GVS, 자막 (일부) 가장 제한이 심함
mweb (모바일 웹) GVS 추천 클라이언트
tv, tv_embedded 필요 없음 단, 일부 DRM 가능
web_music, web_creator GVS 유료 회원 우선 적용됨

yt-dlp는 기본적으로 PO Token이 필요 없는 클라이언트로 시도하지만, 영상 품질이 낮아지거나 다운로드가 실패할 수 있습니다.

해결 방법

추천 방법: mweb 클라이언트 + PO Token 제공

yt-dlp --extractor-args "youtube:player-client=mweb;po_token=mweb.gvs+토큰값" --cookies cookies.txt VIDEO_URL
  • --extractor-args로 클라이언트 및 토큰 설정
  • --cookies로 계정 쿠키 파일 전달

PO Token 얻는 방법 (수동 추출)

A. 사전 준비

  1. 브라우저로 유튜브 로그인
  2. F12 (개발자도구) > Network 탭
  3. 필터에 v1/player 입력
  4. 유튜브 영상을 하나 재생

B. 토큰 추출

  1. v1/player 요청 중 Request Payload 또는 JSON Body에서
  2. serviceIntegrityDimensions.poToken 필드 값을 찾음
  3. 해당 값을 복사해 yt-dlp 명령에 사용

C. 쿠키 추출 (필수)

  • 시크릿 창(Incognito)에서 로그인 후 영상 재생
  • https://www.youtube.com/robots.txt 접속
  • 쿠키를 추출하고 시크릿 창 종료
  • 확장 프로그램 추천: Get cookies.txt extension (Chrome)

대안: 자동화된 PO Token Provider 사용

예) bgutil-ytdlp-pot-provider

pip install bgutil-ytdlp-pot-provider
  • 이 도구는 BotGuard 인증을 통해 PO Token을 자동으로 생성합니다.
  • yt-dlp와 연동하여 사용할 수 있도록 플러그인 형태로 제공됨.

예시 명령어

yt-dlp \
  --cookies cookies.txt \
  --extractor-args "youtube:player-client=mweb;po_token=mweb.gvs+YOUR_TOKEN_HERE" \
  https://www.youtube.com/watch?v=VIDEO_ID

Player나 Subtitles 토큰이 필요한 경우 po_token=mweb.player+토큰값, po_token=mweb.subs+토큰값 형식으로 추가

주의사항

  • 토큰 유효시간: 수 시간 ~ 수 일. 자주 갱신 필요
  • 계정 정지 위험: 너무 많은 다운로드 시 Google 계정이 정지될 수 있음 (서브 계정 사용 추천)
  • OAuth 로그인 불가: YouTube 정책으로 yt-dlp에서 OAuth 로그인은 사용 불가
항목 점검 포인트
계정 사용 개인 계정 사용은 지양, 전용 계정 활용
쿠키 추출 시크릿 모드에서만 수행, 재사용 방지
토큰 공유 타인과의 토큰 공유 금지 (계정 연동됨)
다운로드 간격 --sleep-interval 옵션으로 간격 조정
자동화 도구 사용 오픈소스 플러그인만 사용, 외부 API 주의

YouTube의 보안 정책 강화로 인해 yt-dlp의 사용이 복잡해졌지만, PO Token을 통해 정상적으로 고품질 다운로드를 할 수 있습니다. 수동 추출 방식 또는 자동화 플러그인을 적절히 선택해 사용하시길 바랍니다.

728x90
그리드형(광고전용)

댓글