AgentSkillsCN

podcast-cover-art

运用 AI 生成播客封面,并融入品牌元素。借助 OpenRouter 调用 Gemini 模型,在浅奶油色背景上生成图像,随后以 Playfair Display 字体叠加 Yudame Research 标识及系列/剧集标题。此功能需配置 OPENROUTER_API_KEY。

SKILL.md
--- frontmatter
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

bash
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

bash
# 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

bash
# 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

PropertyValue
Dimensions1024x1024px
BackgroundLight cream (#F5F1E8)
AccentsBlack (#000000), Salmon (#E8B4A8)
TypographyPlayfair Display
BrandingYudame logo + series/episode text
FormatPNG, ~500KB-1MB

Workflow Integration

Cover art runs during the publishing phase (Phase 12) alongside feed.xml updates:

code
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.