How to Configure Groq or OpenAI API Keys for Whisper Transcription in Claude Video
Set the GROQ_API_KEY or OPENAI_API_KEY environment variable, or store the key in ~/.config/watch/.env—the transcription script automatically detects and uses the first available key, preferring Groq over OpenAI.
Claude Video relies on the Whisper transcription service to convert video audio into text using either Groq or OpenAI backends. According to the bradautomates/claude-video source code, the system searches for API credentials in a specific priority order defined in skills/watch/scripts/whisper.py. You can configure keys via environment variables or persistent dot-env files, with Groq serving as the preferred provider for faster, cheaper transcription.
Where Claude Video Looks for API Keys
The load_api_key() function in skills/watch/scripts/whisper.py (lines 65-100) implements a two-tier detection strategy:
Environment Variables
The script first checks your shell environment for either:
GROQ_API_KEY— preferred providerOPENAI_API_KEY— fallback option
If either variable is set, the value is used immediately for transcription requests.
Dot-Env Configuration Files
If no environment variable is found, the script falls back to dot-env files in this order:
~/.config/watch/.env— preferred persistent location.envin the current working directory
The script parses these files and extracts the first available key, again preferring Groq over OpenAI.
Setting Up Your API Key
Choose one of the following methods to provide your credentials:
Option 1: Export in Your Shell (Temporary)
For single-session usage, export the variable directly:
# Groq (preferred, faster transcription)
export GROQ_API_KEY="gsk_XXXXXXXXXXXXXXXXXXXXXXXX"
# Or OpenAI (fallback)
export OPENAI_API_KEY="sk-YYYYYYYYYYYYYYYYYYYYYYYY"
Option 2: Create the Config File (Persistent)
Create the recommended config directory and edit the .env file:
mkdir -p ~/.config/watch
nano ~/.config/watch/.env
Add one of the following lines (uncomment the one you use):
GROQ_API_KEY=gsk_XXXXXXXXXXXXXXXXXXXXXXXX
# OPENAI_API_KEY=sk-YYYYYYYYYYYYYYYYYYYYYYYY
Save the file. Claude Video will read this automatically on subsequent runs.
Option 3: Run the Setup Script
The repository includes an interactive setup script at skills/watch/scripts/setup.py that scaffolds the configuration file:
python3 skills/watch/scripts/setup.py
This script creates ~/.config/watch/.env with placeholder entries for both providers (lines 38-55). After you manually edit the file to add your real key, the script writes SETUP_COMPLETE=true to prevent repeated setup prompts (lines 42-48).
How Key Detection Works
The load_api_key() function implements the following logic:
- Check
os.environforGROQ_API_KEY— if found, return immediately - Check
os.environforOPENAI_API_KEY— if found, return immediately - Load
~/.config/watch/.envand check for both keys - Load
./.env(current directory) and check for both keys - If no key is found in any location, raise a
SystemExitwith a helpful error message (lines 29-34) directing you to run the setup script
When you trigger transcription via python3 skills/watch/scripts/whisper.py path/to/video.mp4, the script uses the detected key to call the appropriate backend API.
Summary
- Primary location: Set
GROQ_API_KEYorOPENAI_API_KEYas environment variables for immediate effect - Persistent storage: Place keys in
~/.config/watch/.envto avoid reconfiguration - Priority order: Groq is preferred over OpenAI when both keys are present
- Setup helper: Run
skills/watch/scripts/setup.pyto scaffold the configuration file automatically - Error handling: The script exits with clear instructions if no valid key is detected
Frequently Asked Questions
Does Claude Video support both Groq and OpenAI for Whisper transcription?
Yes. The whisper.py script supports both providers, with Groq serving as the default preferred option due to faster processing and lower costs. You only need to configure one key—either GROQ_API_KEY or OPENAI_API_KEY—and the script will automatically select the appropriate backend.
What happens if I don't configure an API key?
If load_api_key() cannot find credentials in environment variables or dot-env files, the script aborts with a SystemExit error (lines 29-34 in skills/watch/scripts/whisper.py). The error message includes instructions to run the setup script or manually configure the key in ~/.config/watch/.env.
Can I use a .env file in my project directory instead of ~/.config/watch/.env?
Yes, but the global config location takes precedence. The script checks ~/.config/watch/.env before looking for a local .env file in your current working directory. If you maintain project-specific keys, ensure the global file does not contain conflicting credentials.
Why does the setup script write SETUP_COMPLETE=true?
The SETUP_COMPLETE flag (written by skills/watch/scripts/setup.py at lines 42-48) acts as a sentinel to prevent the setup wizard from running repeatedly. Once this marker exists in your configuration, Claude Video assumes you have intentionally configured your API keys and will not prompt you again during transcription operations.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →