Amharic Cartoon AI - Auto Video Generator
# Amharic Cartoon AI - Auto Video Generator (defaults)
This repository is a ready-to-run GitHub Actions project that:
- Generates a ~5 minute kid-friendly story in **Amharic** (OpenAI)
- Creates cartoon-style scene images (Stability.ai)
- Synthesizes Amharic voiceover (Azure Speech)
- Assembles a 5-minute MP4 with soft children's background music (FFmpeg)
- Uploads to YouTube automatically (YouTube Data API) as **public** videos
## What I set as defaults
- Story: **OpenAI** (GPT-4o-mini)
- Images: **Stability.ai** (text-to-image)
- TTS: **Azure Speech** (Amharic voice)
- Video assembly: **FFmpeg** (Ken Burns-ish + crossfades)
- Upload: **YouTube Data API** (OAuth refresh token)
- Upload privacy: **public**
## Required GitHub Secrets
Add these to **Settings → Secrets → Actions** in your GitHub repository:
- `OPENAI_API_KEY` - OpenAI API key for story
- `STABILITY_API_KEY` - Stability.ai API key for images
- `AZURE_SPEECH_KEY` - Azure Speech key
- `AZURE_SPEECH_REGION` - Azure region (e.g., eastus)
- `YOUTUBE_CLIENT_ID` - Google OAuth client id
- `YOUTUBE_CLIENT_SECRET` - Google OAuth client secret
- `YOUTUBE_REFRESH_TOKEN` - OAuth refresh token for uploading
- `VIDEO_UPLOAD_PRIVACY` - set to `public` (default)
- `BACKGROUND_MUSIC_URL` - optional URL to an MP3 background music (public or S3). If not set, a soft default will be used if available.
## How to use
1. Clone the repo
2. Add the GitHub Secrets above
3. Optionally tweak prompts in `scripts/generate_story.py`
4. Run the workflow manually via Actions or let it run automatically every 3 days.
## Local testing
You can run scripts locally (after installing dependencies) to generate a test short video:
```bash
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python scripts/generate_story.py --lang am --out output/story.json
python scripts/render_images.py --story output/story.json --out_dir output/images
python scripts/tts.py --story output/story.json --out_dir output/audio
pytho …