podcast-cover-art

yudame's avatarfrom yudame

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.

⭐1stars🔀0forks📁View on GitHub🕐Updated Jan 6, 2026⬇️1downloads

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.
namepodcast-cover-art
descriptionGenerate 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.md using Gemini via OpenRouter
  • Applies podcast branding (logo, series/episode text)
  • Saves to cover.png in 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.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)
  • 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 log
  • logs/cover_generation_*.json - Prompt metadata
  • logs/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.