How ccallazans/ai-video-generator works
The product is an API-backed AI video story generator. A request supplies a prompt; the API validates it, the use case orchestrates text generation, speech synthesis, and video assembly, and the result is a captioned video. The README also documents background-video selection and captioning. The sampled Go and Python sources show the main calls; external model/tool connections are shown only where the excerpts establish them.
Main entry points: usecases/generate.go Generation use case · video.go Video assembly · routes.go API routes · handlers/generate.go Generate handler
Components 15
API
- HTTP server
internal/server/server.go - API routes
internal/server/routes.go - Generate handler
internal/server/handlers/generate.go
Generation
- Generation use case
internal/usecases/generate.go - Generation context
internal/processes/process.go - Story generation
internal/processes/text2text.go - Ollama
Media production
- Speech generation
internal/processes/text2speech.go - TTS script
scripts/tts.py - Video assembly
internal/processes/video.go - Background videos
resources/videos - FFmpeg tools
- Caption generation
scripts/captions.py
Video output
- Generated video
Other components
- Prompt user
Connections 14
- Prompt user → API routes: submits prompt
README.md - HTTP server → API routes: registers routes
internal/server/server.go - API routes → Generate handler: routes POST
internal/server/routes.go - Generate handler → Generation use case: calls generation
internal/server/handlers/generate.go - Generation use case → Story generation: starts pipeline
internal/usecases/generate.go - Generation use case → Speech generation: sets next stage
internal/usecases/generate.go - Generation use case → Video assembly: sets next stage
internal/usecases/generate.go - Generation use case → Generation context: creates context
internal/usecases/generate.go - Story generation → Ollama: requests completion
internal/processes/text2text.go - Speech generation → TTS script: runs script
internal/processes/text2speech.go - Video assembly → Background videos: selects background
internal/processes/video.go - Video assembly → FFmpeg tools: runs ffmpeg
internal/processes/video.go - Video assembly → Caption generation: runs caption script
internal/processes/video.go - Caption generation → Generated video: writes video
scripts/captions.py