OpenReels
Getting Started

API Keys

Which API keys you need, where to get them, and how to configure your .env file.

Minimum keys to run

You need at least one LLM provider and one TTS provider to generate a video.

What you needProviderKeyWhere to get it
LLM (pick one)Anthropic (default)ANTHROPIC_API_KEYconsole.anthropic.com
OpenAIOPENAI_API_KEYplatform.openai.com/api-keys
Google GeminiGOOGLE_API_KEYaistudio.google.com/apikey
OpenRouter (300+ models)OPENROUTER_API_KEYopenrouter.ai/keys
Custom (OpenAI-compatible)OPENREELS_LLM_API_KEYYour provider's dashboard
Web search (optional)TavilyTAVILY_API_KEYtavily.com (free: 1000/mo)
TTS (pick one)ElevenLabs (default)ELEVENLABS_API_KEYelevenlabs.io
InworldINWORLD_TTS_API_KEYinworld.ai
Kokoro (free, local)No key neededUse --tts-provider kokoro or --provider local
OpenAI TTSOPENAI_API_KEYSame key as OpenAI LLM
Gemini TTSGOOGLE_API_KEYSame key as Gemini LLM

Google API key

The GOOGLE_API_KEY is the most versatile single key. It unlocks:

  • Gemini LLM
  • Imagen image generation
  • Veo AI video generation
  • Lyria 3 Pro AI music generation
  • Gemini TTS voiceover

Using --provider google sets all of these at once. One key, full pipeline.

Optional keys

ProviderKeyPurposeWhere to get it
PexelsPEXELS_API_KEYStock footage searchpexels.com/api
PixabayPIXABAY_API_KEYStock footage searchpixabay.com/api/docs
fal.aiFAL_API_KEYKling video generationfal.ai

Stock providers are free to use but require registration. If no stock keys are set, the pipeline uses AI-generated images as the fallback for every scene.

The .env file

Copy .env.example and fill in your keys:

cp .env.example .env
.env
# Required: LLM provider (at least one)
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GOOGLE_API_KEY=AIza...

# Required: TTS (at least one, or use Kokoro for free)
ELEVENLABS_API_KEY=...
INWORLD_TTS_API_KEY=...

# Optional: Stock footage
PEXELS_API_KEY=...
PIXABAY_API_KEY=...

Only fill in the keys for providers you plan to use. Unused keys can be left blank or removed.

Provider shorthand flags

Instead of setting individual provider flags, use the --provider meta-flag:

FlagEffect
--provider googleSets LLM to Gemini, images to Imagen, TTS to Gemini TTS, video to Veo, music to Lyria. Only needs GOOGLE_API_KEY.
--provider openaiSets LLM to OpenAI GPT. Only needs OPENAI_API_KEY.
--provider anthropicSets LLM to Anthropic Claude (default). Only needs ANTHROPIC_API_KEY.
--provider localSets TTS to Kokoro (free, no API key). LLM still defaults to Anthropic.

Explicit per-provider flags (like --tts-provider, --image-provider) always override the meta-flag.