FlowMotion is an autonomous AI video production pipeline. Describe a video in plain language and the system writes the script, generates cinematic clips, adds narration, and renders a final MP4 — all without manual editing.
Three paths to create video:
| Path | Description |
|---|---|
| AI Video (Veo 3) | Full autonomous pipeline: Gemini writes the script, Veo generates clips, ElevenLabs narrates, Remotion renders |
| Remotion-Only | Bring your own clips — Remotion composes them with text overlays and transitions |
| Upload & Edit | Upload existing video and use the AI Director chat to request edits |
| Sponsor | Integration |
|---|---|
| DigitalOcean | App Platform deployment (.do/app.yaml) + Spaces CDN storage for all video assets |
| assistant-ui | AI Director chat interface (@assistant-ui/react) + generation activity heatmap (heat-graph) |
| Nexla | Live data pipelines feed trending topics (news, crypto, weather) for autonomous video generation |
| Augment Code | AI-assisted development tooling used throughout the build |
See docs/flowmotion_architecture_v4.mermaid for the full system diagram.
Core flow: User prompt → Gemini script → Veo clips + ElevenLabs narration → Remotion composition → MP4 output
git clone https://github.com/yhinai/flowMotion.git
cd flowMotion
cp .env.example .env
# Fill in your API keys (see table below)
npm install
npm run devOpen http://localhost:3000 to access the app.
| Variable | Purpose | Where to get it |
|---|---|---|
GEMINI_API_KEY |
Gemini + Veo video generation | Google AI Studio |
ELEVENLABS_API_KEY |
TTS narration and sound effects | ElevenLabs Settings |
GOOGLE_CLOUD_PROJECT_ID |
Vertex AI / Lyria music generation | GCP Console |
GOOGLE_CLOUD_LOCATION |
Vertex AI region (default: us-central1) |
Same as above |
DO_SPACES_KEY |
DigitalOcean Spaces access key | DO API Settings |
DO_SPACES_SECRET |
DigitalOcean Spaces secret key | Same as above |
DO_SPACES_BUCKET |
Spaces bucket name (default: flowmotion-videos) |
DO Spaces |
DO_SPACES_REGION |
Spaces region (default: nyc3) |
Same as above |
NEXT_PUBLIC_SUPABASE_URL |
Supabase project URL (fallback storage) | Supabase Dashboard |
SUPABASE_SERVICE_ROLE_KEY |
Supabase service role key | Same as above |
NEXLA_API_KEY |
Nexla live data pipeline access | Nexla |
NEXLA_NEWS_NEXSET_ID |
Nexla news flow ID | Same as above |
NEXLA_CRYPTO_NEXSET_ID |
Nexla crypto flow ID | Same as above |
NEXLA_WEATHER_NEXSET_ID |
Nexla weather flow ID | Same as above |
TELEGRAM_BOT_TOKEN |
Telegram bot interface (optional) | @BotFather |
REDIS_URL |
Redis for BullMQ job queue (optional) | Your Redis instance |
ENABLE_BULLMQ |
Enable persistent job queue (true/false) |
Set to true to enable |
NEXT_PUBLIC_APP_URL |
Public app URL | Your deployment URL |
| Component | Technology |
|---|---|
| Framework | Next.js 15 (App Router) |
| Script Generation | Google Gemini 2.5 Flash |
| Video Generation | Google Veo 3 |
| Narration | ElevenLabs |
| Music | Google Lyria 2 |
| Video Composition | Remotion |
| Chat UI | assistant-ui |
| Live Data | Nexla |
| Storage | DigitalOcean Spaces / Supabase (fallback) |
| Bot Interface | Telegram |
An App Platform spec is included at .do/app.yaml. Import the repo via the DigitalOcean App Platform and fill in the environment variables.
MIT
FlowMotion — Built at the Zero to Agent Hackathon, San Francisco, March 2026.