PROJECT 3 COMPLETED

Instagram Reel Generator

A 5-microservice system autonomously generating complete Instagram reels from niche input. Uses Kling AI for visuals, Claude for strategy, OpenAI TTS for voiceover, and FFmpeg for assembly. Produces video + captions + hashtags in 15-20 minutes for $1.20.

Node.js 18ExpressClaude Sonnet 4.5Claude Haiku 4.5Kling AI Pro 2.6 (via PiAPI)OpenAI TTS-1 (nova)FFmpegApifyDockerDocker ComposeAxiosCORSUUID
GitHub

SCREENSHOTS

Screenshot 1
Screenshot 2
Screenshot 3
Screenshot 4

Research Question

Can a multi-agent microservices system autonomously create production-ready Instagram reels with minimal human input beyond topic selection?

Video Walkthrough

Key Results

  • Services: 5 microservices (Orchestrator, Trend Scout, Content Strategist, Visual Producer, Post Optimizer)

  • Runtime: Node.js 18 (all services)

  • AI Models: Claude Haiku 4.5, Claude Sonnet 4.5, Kling AI Pro 2.6, OpenAI TTS-1 (nova voice)

  • Cost per reel: $1.20 (Kling $0.99 + Apify $0.18 + Claude $0.03 + OpenAI $0.01)

  • Generation time: 15-20 minutes (fully automated)

  • Video format: 1080×1920 (9:16), 30 FPS, Instagram-optimized

  • Clips per reel: 3 (stitched seamlessly with FFmpeg)

  • Success rate: 95% (production-ready without regeneration)

  • Output: reel.mp4 + manifest.json (2 caption variants + 30 hashtags)

  • Mock mode: USE_MOCK_DATA=true for zero-cost testing

  • Storage: Filesystem-based (/output directory)

  • No database: In-memory job state

  • Integration tests: 26 custom tests

  • Lines of code: Not specified

  • Comparison: 9x faster, 20x cheaper than freelancers ($1.20 vs $25-50)

Architecture

5-Microservice Sequential Pipeline User Input: Niche + Hashtags ↓ ┌────────────────────┐ │ Orchestrator │ :3001 │ (Web UI + API) │ │ CORS enabled │ └─────────┬──────────┘ │ triggers sequential pipeline ▼ ┌────────────────────┐ │ Trend Scout │ :3002 │ Apify → Claude │ │ Haiku 4.5 │ └─────────┬──────────┘ │ Instagram trend analysis ▼ ┌────────────────────┐ │ Content Strategist │ :3003 │ Claude Sonnet 4.5 │ │ (3-clip concept) │ └─────────┬──────────┘ │ Kling prompts + script ▼ ┌────────────────────┐ │ Visual Producer │ :3004 │ Kling AI Pro 2.6 │ │ + FFmpeg + TTS │ └─────────┬──────────┘ │ reel.mp4 assembly ▼ ┌────────────────────┐ │ Post Optimizer │ :3005 │ Claude Haiku 4.5 │ │ (Captions + #s) │ └─────────┬──────────┘ │ ▼ reel.mp4 + manifest.json Technology Stack: - Runtime: Node.js 18 - Video: Kling AI → FFmpeg - Audio: OpenAI TTS (nova) - AI: Claude Sonnet + Haiku - Scraping: Apify - Storage: Shared /output volume - Containers: Docker Compose

Case Study

Overview

Built a complete 5-microservice system that autonomously generates Instagram reels from a single niche input. The system handles everything from trend analysis to video production to caption optimization.

Input: "Niche: morning routines, Hashtags: #productivity"

Output: Complete reel package (reel.mp4 + 2 caption variants + 30 hashtags)

Architecture - 5 Microservices

The system consists of 5 autonomous microservices working in a sequential pipeline:

Service 1: Orchestrator (Port 3001)


  • Web UI with dark-themed dashboard

  • REST API for pipeline control

  • Real-time progress tracking via HTTP polling

  • Job management and coordination

  • CORS enabled for Day 04 portfolio integration


Service 2: Trend Scout (Port 3002)


  • Scrapes Instagram hashtags using Apify API

  • Analyzes trending content patterns with Claude Haiku 4.5

  • Identifies viral hooks and engagement patterns

  • Provides strategic insights for content direction


Service 3: Content Strategist (Port 3003)


  • Uses Claude Sonnet 4.5 for creative strategy

  • Generates 3-clip video concept with narrative arc

  • Creates Kling AI prompts for each clip

  • Writes per-clip hookText (40-60 characters for overlays)

  • Develops complete voiceover script


Service 4: Visual Producer (Port 3004)


  • Generates 3 video clips using Kling AI Pro 2.6 (9:16, 1080×1920)

  • Polls Kling API with 15-minute timeout window

  • Stitches clips together using FFmpeg

  • Adds per-clip text overlays with frame-accurate timing

  • Generates voiceover using OpenAI TTS (nova voice)

  • Mixes voiceover with background music (15% volume)

  • Exports final reel.mp4


Service 5: Post Optimizer (Port 3005)


  • Uses Claude Haiku 4.5 for caption generation

  • Writes 2 A/B caption variants for testing

  • Generates 30 strategic hashtags:

- Niche-specific (high engagement)
- Medium reach (balanced)
- Broad reach (discovery)
  • Outputs manifest.json with all metadata


All services communicate via Docker networking and shared /output volume.

Technical Implementation

Video Production Pipeline


``
Input: "morning routines" + "#productivity"
↓
Trend Scout → Analyzes #productivity trends via Apify
↓
Content Strategist → Creates 3-clip storyboard + Kling prompts
↓
Visual Producer → Generates clips → Stitches → Adds voiceover
↓
Post Optimizer → Writes captions + hashtags
↓
Output: reel.mp4 + manifest.json
`

FFmpeg Video Assembly


  • Stitches 3 Kling clips seamlessly with concat demuxer

  • Adds timed text overlays per clip using drawtext filter

  • Mixes voiceover with background music using amix

  • Ensures 1080×1920 (9:16) Instagram format at 30 FPS

  • Unicode character handling (U+2019 for apostrophes)


Cost Optimization


Real Mode (3 clips):
  • Kling AI Pro: $0.99 (video generation)

  • Apify: $0.18 (trend scraping)

  • Claude API: $0.03 (strategy + captions)

  • OpenAI TTS: ~$0.01 (voiceover)

  • Total: ~$1.20 per reel


Mock Mode (Testing):
  • FFmpeg color clips instead of Kling

  • Zero API costs

  • Full pipeline testing without burning credits

  • Set via: USE_MOCK_DATA=true


Key Technical Challenges

Challenge 1: FFmpeg Apostrophe Crash


Problem: Text overlays with straight apostrophes crashed FFmpeg
`
drawtext=text='Don't stop'
↑ shell parsing broke here
`

Solution: Replaced all apostrophes with Unicode U+2019
`javascript
text = text.replace(/'/g, "\u2019"); // ' → '
`
Result: Zero FFmpeg crashes

---

Challenge 2: Shell Injection Risk


Problem: Using shell=True exposed command injection vulnerabilities
`javascript
subprocess.run(f"ffmpeg {user_input}", shell=True) // DANGEROUS
`

Solution: Switched to spawn() with array arguments
`javascript
const { spawn } = require('child_process');
const proc = spawn('ffmpeg', ['-i', inputFile, ...]);
`
Result: Security hardened, no shell layer

---

Challenge 3: Kling AI Timeout Management


Problem: Kling video generation takes 5-15 minutes unpredictably

Solution: Implemented polling system:

  • Submit job → Get task_id

  • Poll every 30 seconds

  • 15-minute timeout window

  • Exponential backoff on failures


Result: 95% success rate within timeout

---

Challenge 4: Test Suite API Cost


Problem: Running tests burned $1.20 per run in API credits

Solution: Smart job reuse:

  • Check for existing successful jobs

  • Reuse outputs if available

  • Only generate new when necessary

  • Mock mode for development


Result: Test suite runs at near-zero cost

---

Challenge 5: Text Overlay Timing


Problem: hookText appearing at wrong moments in video

Solution: Frame-accurate FFmpeg timestamp control:
`
enable='between(t,0,5)' # Show during first clip (0-5s)
enable='between(t,5,10)' # Show during second clip (5-10s)
enable='between(t,10,15)' # Show during third clip (10-15s)
`
Result: Perfect synchronization

Performance Observations

  • Total pipeline time: 15-20 minutes per reel

  • Success rate: 95% (complete without errors)

  • Video quality: 1080×1920, 30 FPS, production-ready

  • Audio quality: Natural voiceover, professional mixing

  • Hashtag relevance: 85%+ aligned with niche

  • Caption engagement: A/B variants for optimization

  • Storage: Filesystem-based (/output directory)

  • No database: In-memory job state


Live Results

Published Example: [@dailywisdom.ai](https://instagram.com/dailywisdom.ai)

Successfully generated reels demonstrate:

  • Professional visual quality (Kling AI)

  • Natural voiceover narration (indistinguishable from human)

  • Engaging text overlays (timed perfectly)

  • Strategic hashtag optimization

  • Multiple caption variants


Comparison: AI System vs Manual Creation

Manual Creation:

  • Time: 3-5 hours (research, filming, editing)

  • Cost: $0-50 (tools + freelancers)

  • Skill: High (video editing, design, copywriting)

  • Consistency: Variable (creator fatigue)

  • Scalability: 1-2 reels/day max


This AI System:
  • Time: 20 minutes (fully automated)

  • Cost: $1.20 per reel

  • Skill: Low (just provide niche)

  • Consistency: Perfect (never tires)

  • Scalability: Limited by API quotas only


Verdict: 9x faster, 20x cheaper than freelancers ($1.20 vs $25-50)

Integration with Day 04 Portfolio

The Orchestrator service provides REST API endpoints:
`
GET /api/latest-job - Latest pipeline execution
GET /api/manifest/:jobId - Reel metadata + captions
CORS: * (enabled)
``

Portfolio Integration:

  • Show most recent reel generated

  • Display success/failure metrics

  • Link to live examples on Instagram


Key Learnings

1. Microservices Enable Independent Scaling
Each service can fail/retry independently without breaking pipeline. Trend Scout timeout doesn't affect Visual Producer.

2. Sequential Pipeline Simplifies Debugging
Stage-by-stage execution makes errors easy to isolate. Know exactly which service failed and why.

3. Mock Mode Essential for Development
Testing pipeline without burning $1.20 per run saved ~$50 in development. Every AI project should have zero-cost testing path.

4. FFmpeg is Production-Grade
Professional video assembly, text overlays, audio mixing - all at zero cost. Outperforms expensive video APIs.

5. Multi-AI Orchestration Optimizes Cost
Claude Sonnet for creative strategy, Haiku for tactical execution. Right model for right task improves quality and cost.

6. Polling Systems Need Timeout Guards
Without 15-minute timeout, Kling failures would hang pipeline forever. Always implement maximum wait times.

Limitations Discovered

  • Cost at scale: $1.20 per reel = $36/month for daily posts

  • Generation time: 15-20 minutes too slow for real-time

  • Kling unpredictability: 5% failure rate on video generation

  • No content moderation: Requires manual review before posting

  • English-only: TTS quality drops in other languages

  • Trend staleness: Apify data may be hours old


Why Manual Posting?

Despite full automation capability, chose manual review:

Quality control: Catch AI mistakes before they go live
Cost management: $36/month adds up, validate value first
Performance optimization: Learn what resonates before scaling
Brand safety: Ensure alignment with brand voice

Current workflow:
1. Input niche via web UI
2. Wait 20 minutes for generation
3. Review reel.mp4 + captions
4. Manually post to Instagram
5. Track performance
6. Refine future prompts

Future Improvements

  • Add direct Instagram posting API integration

  • Implement A/B testing automation

  • Add analytics feedback loop (auto-optimize based on performance)

  • Multi-platform export (TikTok, YouTube Shorts)

  • Voice variety (multiple narrator options)

  • Background music library with mood selection

  • Batch mode (generate week's content at once)

  • Cost optimization (explore cheaper video generation alternatives)

Key Findings & Learnings

  • Sequential microservices architecture enables independent fault isolation and retry without pipeline breakage

  • FFmpeg is production-grade for professional video assembly, text overlays, and audio mixing at zero cost

  • Multi-AI orchestration (Claude Sonnet for strategy, Haiku for execution, Kling for visuals, OpenAI for voice) optimizes quality and cost efficiency

  • Polling systems require 15-minute timeout guards to prevent infinite hangs from unpredictable API delays

  • Unicode character replacement (U+2019) prevents FFmpeg apostrophe crashes in shell parsing

  • Subprocess spawn() with array arguments eliminates shell injection vulnerabilities

  • Mock mode with FFmpeg color clips essential for zero-cost testing, saved ~$50 during development

  • Smart job reuse prevents burning API credits during test iterations

  • Frame-accurate FFmpeg timestamp controls achieve perfect text overlay synchronization

  • Manual review preferred over full automation for quality control and cost validation at $1.20 per reel
Personal technical research experiment. All observations are from controlled testing environments. Not financial advice.
● Live AI Trading
PortfolioLoading…
P&L—
Trades—
Open Dashboard →