""" YouTube 전용 OAuth2 토큰 발급 스크립트 credentials_youtube.json 사용 (Blogger와 별도 OAuth 클라이언트) """ import json import os import sys from google_auth_oauthlib.flow import InstalledAppFlow from google.oauth2.credentials import Credentials from google.auth.transport.requests import Request SCOPES = [ 'https://www.googleapis.com/auth/youtube.upload', 'https://www.googleapis.com/auth/youtube', ] BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) CREDENTIALS_PATH = os.path.join(BASE_DIR, 'credentials_youtube.json') def main(): if not os.path.exists(CREDENTIALS_PATH): print(f"[ERROR] credentials_youtube.json 없음: {CREDENTIALS_PATH}") sys.exit(1) with open(CREDENTIALS_PATH) as f: client_config = json.load(f) if 'web' in client_config and 'installed' not in client_config: client_config['installed'] = client_config.pop('web') flow = InstalledAppFlow.from_client_config(client_config, SCOPES) creds = flow.run_local_server(port=8080, prompt='consent') print("[OK] 새 토큰 발급 완료") token_data = json.loads(creds.to_json()) refresh_token = token_data.get('refresh_token', '') print("\n" + "=" * 50) print("YouTube 토큰 발급 성공!") print("=" * 50) print(f"\nYOUTUBE_REFRESH_TOKEN:\n{refresh_token}") print(f"\n이 값을 .env 파일의 YOUTUBE_REFRESH_TOKEN 에 붙여넣으세요.") if __name__ == '__main__': main()