유튜브 자동화를 돌리다 보면 어느 날 갑자기 인증이 끊기고 invalid_grant, unauthorized, token expired 같은 오류가 뜹니다. 대부분은 코드가 망가진 게 아니라 OAuth 토큰 수명/저장 경로/브라우저 승인 흐름이 어긋난 상태입니다. 이 문서는 실제 운영 기준으로, “지금 바로 복구”와 “다음부터 자동 감지”를 한 번에 정리한 초안입니다.

flowchart TD
A[업로드/체크 실패 감지] --> B{오류 유형 확인}
B -->|invalid_grant| C[refresh token 재발급]
B -->|token expired| D[access token 재요청]
B -->|unauthorized| E[권한 scope 재동의]
C --> F[토큰 파일 저장 경로 검증]
D --> F
E --> F
F --> G[헬스체크 스크립트 실행]
G --> H{정상?}
H -->|예| I[자동 업로드 재개]
H -->|아니오| J[브라우저 동의 재실행]
J --> G

🧠 칠판 치트시트

  • invalid_grant는 보통 refresh token 쪽 문제
  • 토큰은 “발급”보다 “저장 경로 일치”가 더 중요
  • 복구 후에는 4시간 주기 워치독으로 재발 방지

가장 빠른 복구 순서 (5분)

  1. 현재 인증 상태 확인
python3 /home/tw2/.openclaw/workspace/archive/projects/openclaw-ops/30-output/20260308_oauth_watchdogs/youtube_token_healthcheck.py
  1. 만료/오류면 브라우저 동의 재실행
  • OpenClaw 브라우저(openclaw 프로필)로 Google 동의 화면 진행
  • callback URL의 code, state를 교환 스크립트에 전달
  1. 재검증 후 업로드 체크
python3 /home/tw2/.openclaw/workspace/archive/projects/openclaw-ops/30-output/20260308_oauth_watchdogs/youtube_auth_check.py

왜 자주 끊기나 (초보자 버전)

OAuth를 “출입증 시스템”으로 보면 쉽습니다.

  • access token: 짧게 쓰는 임시 출입증
  • refresh token: 새 출입증을 재발급받는 마스터 키

문제는 마스터 키가 만료됐다기보다, 잘못된 위치에 저장되거나 예전 키를 계속 읽는 상황에서 많이 발생합니다.

현장 미니 사례

  • 실패 사례: 인증은 다시 했는데, 자동화가 다른 경로의 오래된 토큰 파일을 읽어서 계속 실패
  • 성공 사례: 토큰 경로를 단일화한 뒤 워치독(4시간)으로 상태 점검 → 만료 시 즉시 알림/복구

실행 체크리스트

  • youtube_token_healthcheck.py 결과가 AUTH_OK인지 확인
  • 토큰 파일 경로가 업로드 스크립트와 동일한지 확인
  • 오류 시 브라우저 동의 + code/state 재교환 수행
  • 재검증 후 실제 업로드 테스트 1건 실행
  • 4시간 주기 워치독(cron) 상태 확인

함께 보면 좋은 문서

다음 글 추천

실제 운영 자동화까지 이어가려면 OpenClaw 06. Cron Job을 함께 보면 좋습니다. 토큰 만료 감지-알림-복구를 정기 점검 루틴으로 고정할 수 있습니다.

본 문서는 생성형 AI를 활용해 작성되었습니다.