openclaw / auth_youtube.py
Arshit Malik
clean: full pipeline, no secrets in history
b9ba589
#!/usr/bin/env python3
"""
Run this ONCE on your Mac to generate token.pickle.
Then upload it to HF Dataset: arshitmalik/yt-pipeline-data
"""
import pickle, json
from pathlib import Path
from google_auth_oauthlib.flow import InstalledAppFlow
SCOPES = ["https://www.googleapis.com/auth/youtube.upload"]
import os
cid = os.environ.get("YOUTUBE_CLIENT_ID", "")
cs = os.environ.get("YOUTUBE_CLIENT_SECRET", "")
if cid and cs and not Path("client_secrets.json").exists():
Path("client_secrets.json").write_text(json.dumps({"installed": {
"client_id": cid, "project_id": "yt-ai-bot",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_secret": cs, "redirect_uris": ["http://localhost"]}}))
flow = InstalledAppFlow.from_client_secrets_file("client_secrets.json", SCOPES)
creds = flow.run_local_server(port=0)
with open("token.pickle", "wb") as f:
pickle.dump(creds, f)
print("token.pickle saved! Now run the upload command below.")