DOCS/GET STARTED/Secrets & API Setup

Secrets & API Setup

Configure Fish Audio keys, Google Cloud OAuth, and YouTube channel tokens.

Shotrunner keeps all authentication keys, client IDs, and OAuth tokens inside a gitignored secrets/ folder on your local machine.

Secrets Directory Structure

Create the secrets/ directory in your repository root with the following layout:

secrets/ Directory Layout
1secrets/
2├── fish_api_key.txt # Plain text API key from Fish Audio
3└── youtube/
4 ├── channels.json # Channel registry: name -> directory
5 └── ArcDiaries/ # One folder per YouTube channel
6 ├── client_secret.json # Google Cloud OAuth 2.0 Client credentials
7 └── token.json # Auto-generated OAuth token

The channels.json registry maps each channel name to its credential folder — add one entry per channel you manage:

secrets/youtube/channels.json
1{
2 "channels": [
3 { "name": "ArcDiaries", "dir": "secrets/youtube/ArcDiaries" },
4 { "name": "Curiosity2Corner", "dir": "secrets/youtube/Curiosity2Corner" },
5 { "name": "Absolute2Zero", "dir": "secrets/youtube/Absolute2Zero" }
6 ]
7}

Fish Audio API Key

1. Sign up at fish.audio and navigate to API keys.
2. Copy your key and paste it directly into secrets/fish_api_key.txt with no extra spaces or line breaks.

Google Cloud YouTube OAuth

To upload videos to YouTube without manual browser interaction:

  1. Create a project in the Google Cloud Console.
  2. Enable the YouTube Data API v3.
  3. Configure the OAuth consent screen (Desktop Application).
  4. Create an OAuth 2.0 Client ID and download the JSON file as secrets/youtube/client_secret.json.

Generating Channel Tokens

Check which channels are configured and ready:

Terminal (List Channels)
1shorts upload --list-channels

The first upload to a channel automatically launches the one-time OAuth flow:

Terminal (First Upload = First Auth)
1shorts upload --video series/my-series/scripts/001_my-topic/short.mp4 --channel ArcDiaries

A browser window opens asking you to grant YouTube access. Once approved, the OAuth token is stored at secrets/youtube/<Channel>/token.json and refreshed automatically for all future uploads.

Security and Privacy

The secrets/ directory is strictly gitignored. No tokens, client IDs, or API keys are ever transmitted off your local machine or written to stdout logs.

Was this "Secrets & API Setup" page helpful?
© 2026 SHOTRUNNERLOCAL-FIRST · AGENT-DRIVEN