Generate podcast cover art with AI and apply branding...
Skill name: podcast-cover-art
Generate episode cover art using AI and apply podcast branding in one command.
cd ~/src/research/podcast/tools
python cover_art.py ../episodes/YYYY-MM-DD-slug/
This:
content_plan.mdreport.md using Gemini via OpenRoutercover.png in episode directory# Full generation + branding (default)
python cover_art.py ../episodes/your-episode/
# With explicit series name
python cover_art.py ../episodes/your-episode/ --series "Series Name"
# Custom episode text for overlay
python cover_art.py ../episodes/your-episode/ --episode-text "Ep 5 - Topic"
# Skip AI generation, only apply branding to existing cover.png
python cover_art.py ../episodes/your-episode/ --skip-generate
# Quiet mode
python cover_art.py ../episodes/your-episode/ --quiet
report.md must exist (used to generate AI image prompt)content_plan.md should exist (for auto-detecting title/series)OPENROUTER_API_KEY in environment (for Gemini image generation)# Verify fonts installed
cd ~/src/research/podcast/tools
uv run python add_logo_watermark.py --check-fonts
# If missing, install:
mkdir -p ~/Library/Fonts && cd ~/Library/Fonts
curl -L -o playfair.zip "https://gwfh.mranftl.com/api/fonts/playfair-display?download=zip&subsets=latin&variants=600,italic"
unzip -o playfair.zip
cover.png - Final branded cover art (1024x1024, ~1MB)logs/cover_generation_*.txt - Generation loglogs/cover_generation_*.json - Prompt metadatalogs/branding_log_*.txt - Branding log| Property | Value |
|---|---|
| Dimensions | 1024x1024px |
| Background | Light cream (#F5F1E8) |
| Accents | Black (#000000), Salmon (#E8B4A8) |
| Typography | Playfair Display |
| Branding | Yudame logo + series/episode text |
| Format | PNG, ~500KB-1MB |
Cover art runs during the publishing phase (Phase 12) alongside feed.xml updates:
Phase 12: Publishing
โโโ Generate cover art (can run in parallel with metadata)
โโโ Create logs/metadata.md
โโโ Update feed.xml
โโโ Validate with podcast-feed-validator
This allows cover art to generate while other publishing tasks proceed.