podcast-cover-art
Generate podcast cover art with AI and apply branding. Uses Gemini via OpenRouter for image generation with light cream backgrounds, then adds Yudame Research logo and series/episode text using Playfair Display typography. Requires OPENROUTER_API_KEY.
When & Why to Use This Skill
This Claude skill automates the end-to-end creation of professional podcast cover art by combining AI-driven image generation with precise brand application. It leverages Gemini via OpenRouter to produce unique visuals based on episode content and automatically overlays standardized logos, series titles, and episode text using Playfair Display typography to ensure a consistent and high-quality brand identity.
Use Cases
- Automated Episode Branding: Rapidly generate unique, branded cover art for new podcast episodes by automatically extracting context from research reports and content plans.
- Publishing Workflow Optimization: Integrate visual asset creation into the final publishing phase, allowing cover art to be generated and branded in parallel with metadata and RSS feed updates.
- Batch Visual Consistency: Maintain a uniform aesthetic across an entire podcast series by enforcing specific color palettes (light cream), typography, and logo placements without manual design work.
- Content Repurposing: Quickly transform text-based research or episode scripts into visually engaging cover images suitable for podcast platforms and social media promotion.
| name | podcast-cover-art |
|---|---|
| description | Generate podcast cover art with AI and apply branding. Uses Gemini via OpenRouter for image generation with light cream backgrounds, then adds Yudame Research logo and series/episode text using Playfair Display typography. Requires OPENROUTER_API_KEY. |
Podcast Cover Art Generation
Skill name: podcast-cover-art
Generate episode cover art using AI and apply podcast branding in one command.
Quick Start
cd ~/src/research/podcast/tools
python cover_art.py ../episodes/YYYY-MM-DD-slug/
This:
- Auto-detects title and series from
content_plan.md - Generates AI cover art from
report.mdusing Gemini via OpenRouter - Applies podcast branding (logo, series/episode text)
- Saves to
cover.pngin episode directory
Usage
# 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
Requirements
report.mdmust exist (used to generate AI image prompt)content_plan.mdshould exist (for auto-detecting title/series)OPENROUTER_API_KEYin environment (for Gemini image generation)- Playfair Display fonts installed
First-Time Setup
# 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
Output
cover.png- Final branded cover art (1024x1024, ~1MB)logs/cover_generation_*.txt- Generation loglogs/cover_generation_*.json- Prompt metadatalogs/branding_log_*.txt- Branding log
Cover Art Specifications
| 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 |
Workflow Integration
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.