YT Agent

Connections

All your keys, grouped by what they do, with deep-links to where you create them. Values are stored in Firestore so every backend picks them up automatically. Platform-level bootstrap secrets are listed at the bottom — those have to go on their respective platforms.

One-click connect
Sign in once and the right keys land in the right places. No copying tokens between browser tabs.
GitHub
not connected
Auto-pushes HF_TOKEN + RENDER_TRIGGER_KEY to your repo's Actions secrets — no manual paste in GitHub Settings.
Hugging Face
not connected
Skip the "create a new token" tab. OAuth token is stored directly as HF_TOKEN and works with the Inference API.
Other providers (NIM, Groq, Pexels, etc.) don't support OAuth and require manual token paste — they have Get key deep-links in their section below.
Recommended coverage
0 / 10 set
Hitting 100% on recommended is enough to render flawlessly. Optional keys add resilience.
AI & Language
LLMs for scripts + storyboards + vision-judging shot fits, and AI image generation for shots not covered by stock providers.
0/3
NVIDIA NIMrecommended
NVIDIA_NIM_API_KEY
Primary LLM (Nemotron-3-Super-120B) and vision judge. Free tier: 40 req/min. Apply for the free dev tier and you get an API key instantly.
not set
Groq (LLM fallback)optional
GROQ_API_KEY
Used when NIM rate-limits. Free tier: 30 req/min on Llama 3 models.
not set
Hugging Face Inference (SDXL fallback)recommended
HF_TOKEN
Second AI image fallback when Pollinations rate-limits. Free with HF account. Generate a Read-scope token at the link below.
not set
Stock Footage
Sources for video clips + images that match the storyboard's per-shot search queries. At least one is highly recommended — without any, the pipeline falls back to AI image generation only.
0/6
Pexelsrecommended
PEXELS_API_KEY
Free stock videos + photos. 200 req/hour. Excellent for atmospheric horror.
not set
Pixabayoptional
PIXABAY_API_KEY
Free stock videos + photos + music. 100 req/min.
not set
Shutterstock (user token)optional
SHUTTERSTOCK_API_TOKEN
Premium licensed previews. 500/month free trial. Generated from your app's Authentication tab.
not set
Shutterstock Consumer Keyoptional
SHUTTERSTOCK_CLIENT_ID
Required only if you don't have a long-lived user token.
not set
Shutterstock Consumer Secretoptional
SHUTTERSTOCK_CLIENT_SECRET
Paired with the Consumer Key. Treat as a password.
not set
Coverroptional
COVERR_API_KEY
Curated cinematic clips (key required for download API).
not set
Alerts & Automation
Webhook for Discord notifications + shared secret that authenticates GitHub Actions cron triggers to the dashboard gateway.
0/2
Discord webhookrecommended
DISCORD_WEBHOOK_URL
Channel that gets notified on pipeline complete/fail/YouTube publish/cleanup. In Discord: Server settings → Integrations → Webhooks → New Webhook → copy URL.
not set
GitHub Actions shared secretrecommended
RENDER_TRIGGER_KEY
Random string. The SAME value must be set as a GitHub repo secret (or matches the Coolify env var) so the cron job can call your dashboard maintenance routes. Click Generate to get a fresh value.
not set
Storage (R2 + SFTP)
Credentials for video storage. Moved into Firestore so Kaggle (which loses its Add-ons → Secrets attachments on every new notebook version) only needs ONE platform-level secret (the Firebase service account). Colab + HF Space pick these up the same way.
0/11
Cloudflare R2 Account IDrecommended
R2_ACCOUNT_ID
Find it at https://dash.cloudflare.com/?to=/:account/r2/overview — top-right of the R2 page.
not set
R2 Access Key IDrecommended
R2_ACCESS_KEY_ID
From R2 → Manage R2 API Tokens → Create API token (Read & Write).
not set
R2 Secret Access Keyrecommended
R2_SECRET_ACCESS_KEY
Paired with the access key ID. Treat as a password.
not set
R2 Bucket Namerecommended
R2_BUCKET
The bucket where videos land (e.g. yt-agent-videos).
not set
R2 Public URLrecommended
R2_PUBLIC_URL
The pub-xxxxx.r2.dev URL Cloudflare assigns when you enable public access on the bucket.
not set
Hostinger SFTP Hostoptional
SFTP_HOST
Optional. Used as R2 overflow archive when R2 hits R2_MAX_GB.
not set
Hostinger SFTP Useroptional
SFTP_USER
Optional.
not set
Hostinger SFTP Passwordoptional
SFTP_PASS
Optional. Treat as a password.
not set
Hostinger SFTP Portoptional
SFTP_PORT
Optional. Default 65002 on Hostinger.
not set
Hostinger SFTP Base Directoryoptional
SFTP_BASE_DIR
Optional. e.g. domains/yourdomain.com/public_html/videos.
not set
Hostinger Public Base URLoptional
PUBLIC_BASE_URL
Optional. e.g. https://yourdomain.com — the URL prefix the SFTP files are served from.
not set
Auto-Publish
YouTube credentials. The refresh token is set automatically by the 'Connect YouTube' button on the Automation tab — don't paste it manually here.
0/1
YouTube OAuth refresh tokenoptionalauto-managed
YOUTUBE_REFRESH_TOKEN
Created by the OAuth consent flow. Don't edit manually — use the 'Connect YouTube' button on the Automation tab.
not set

Platform-level secrets

These can't be set from the dashboard because they're read at platform boot (dashboard server init, Colab notebook cell, HF Space startup, GitHub Actions runner). Each card tells you what to set and where.

Firebase / Firestore credentials
(Legacy Firebase deployments only.) Required to write to Firestore from each platform. Same JSON service-account file goes on the dashboard + Colab + HF Space, in different env var names per environment. Coolify/Pocketbase deployments skip this entirely.
Dashboard
FIREBASE_SERVICE_ACCOUNT_JSON (server-side; dashboard env vars)
NEXT_PUBLIC_FIREBASE_CONFIG (client-side; dashboard env vars)
Firebase / Firestore credentials (workers)
Same service-account JSON, pasted into the Colab Secrets panel and the HF Space Variables and secrets list.
Colab/HF
GOOGLE_APPLICATION_CREDENTIALS_JSON
YouTube OAuth Client (for auto-publish flow)
Used by /api/youtube/auth + /callback to run the consent screen. Only needed if you want auto-publish. The Web Application redirect URI MUST exactly match https://<your-vercel-url>/api/youtube/callback.
Dashboard
YOUTUBE_OAUTH_CLIENT_ID
YOUTUBE_OAUTH_CLIENT_SECRET
GitHub Actions secrets
For automatic HF Space sync + daily render cron + cleanup. Set as repository secrets.
GitHub
HF_TOKEN (Write-scope HuggingFace token; lets the sync workflow push to your Space)
RENDER_TRIGGER_KEY (same value as the Firestore key, above)
DASHBOARD_BASE_URL (optional repo variable; defaults to whatever your deployment's public URL is)
Kaggle on-demand GPU worker
Free T4 / P100 fallback when Colab is offline. The kaggle-dispatch.yml workflow wakes a Kaggle notebook whenever the queue has work and no GPU is alive. Notebook self-terminates after 10 min idle so it doesn't burn the 30 GPU hr/week budget. See kaggle/README.md for the full setup.
GitHub
KAGGLE_USERNAME (from kaggle.json — Account → Create New Token)
KAGGLE_KEY (from kaggle.json — same place)
HF_SPACE_URL (optional repo variable; defaults to your space)