1. youtubeSignupRequired ≠ 채널 없음
youtube.upload 단독 scope면 API가 소유 채널을 식별하지 못해 "채널이 없다"는 뜻의 에러를 던진다. 실제로는 채널이 있었다.
→ youtube.readonly를 함께 요청한다.
2. 403 access_denied — 테스트 사용자에 다른 계정을 등록
게시 상태가 '테스트 중'이면 등록된 테스트 사용자만 인증할 수 있다. 등록한 주소와 인증을 시도한 주소가 한 글자 달랐고, 그걸 찾는 데 몇 시간을 썼다.
★ 오타가 아니었다. 두 계정 모두 실재했다. 하나를 "오타"로 보고 정리했다면 다른 기능이 끊겼을 것이다.
→ 이메일은 눈으로 믿지 말고 복붙하고, 어느 계정인지 매번 확인한다.
3. 테스트 상태의 refresh_token은 7일 만료
자동화에 치명적이다. 프로덕션 게시가 필수.
게시 버튼이 회색이면 브랜딩 페이지의 개인정보처리방침·서비스약관 링크가 비어서다. → /privacy, /terms 라우트를 앱에 직접 추가해 해결. 심사(verification) 없이 게시 가능하고, 인증 시 "확인되지 않은 앱" 경고를 한 번 넘기면 된다.
진단 도구를 먼저 만든다
토큰의 계정·scope·채널을 한 번에 확인하는 엔드포인트를 하나 둔다. 추측하지 말고 이걸 먼저 친다.