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. 사전 준비
- 브라우저로 유튜브 로그인
- F12 (개발자도구) > Network 탭
- 필터에
v1/player
입력 - 유튜브 영상을 하나 재생
B. 토큰 추출
v1/player
요청 중 Request Payload 또는 JSON Body에서serviceIntegrityDimensions.poToken
필드 값을 찾음- 해당 값을 복사해
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
그리드형(광고전용)
댓글