Transform videos into blog posts with AI. Upload a video, generate a draft with Gemini, refine it in the AI Blog Editor, and extract keyframes to illustrate your post.
docker compose up -dOpen http://localhost:5123.
See docs/ for the full workflow guide.
To run without Docker, see the Development guide.
Create a .env file:
GEMINI_API_KEY=your_gemini_api_key
GEMINI_MODEL=gemini-3.1-flash-lite
EDITING_PROVIDER=anthropic # anthropic or openai
EDITING_API_KEY=your_api_key
EDITING_MODEL=claude-sonnet-4-6 # optional, provider default if omitted
EDITING_BASE_URL= # optional, for custom OpenAI-compatible endpoints
SKILLS_FOLDER=./skills # optional, default ./skills| Step | What happens |
|---|---|
| 1 — Upload | Upload a local video or paste a YouTube URL |
| 2 — Chat | Gemini analyzes the video and generates a blog draft |
| 3 — Extract | Select keyframes to extract; configure frames per timestamp |
| 4 — Edit | Refine the draft with AI-powered skills in the editor |
See docs/workflow.md for details.
| Guide | Description |
|---|---|
| Workflow | Full walkthrough of all four steps |
| Skills | Write custom AI editing skills |
| Development | Local setup, testing, project structure |
See CONTRIBUTING.md — bug reports, feature requests, and custom skills are all welcome.
- Google Gemini API — Get an API key at Google AI Studio
- Anthropic Claude API — Get an API key from Anthropic
- OpenAI API — Get an API key from OpenAI