Ai Podcast Pipeline
by @jeong-wooseok
Create Korean AI podcast packages from QuickView trend notes. Use for dual-host script writing (Callie × Nick), Gemini multi-speaker TTS audio generation, subtitle timing/render fixes, thumbnail+MP4 packaging, and YouTube title/description output. Supports both full (15~20 min) and compressed (5~7 min) editions.
clawhub install ai-podcast-pipeline📖 About This Skill
name: ai-podcast-pipeline version: 0.1.5 description: Create Korean AI podcast packages from QuickView trend notes. Use for dual-host script writing (Callie × Nick), Gemini multi-speaker TTS audio generation, subtitle timing/render fixes, thumbnail+MP4 packaging, and YouTube title/description output. Supports both full (15~20 min) and compressed (5~7 min) editions.
AI Podcast Pipeline
⚠️ Security Notice
This skill may trigger antivirus false positives due to legitimate use of:
GEMINI_API_KEY)All code is open source and auditable in this repository. No malicious behavior.
Build end-to-end podcast assets from Trend/QuickView-* content.
Core Workflow
1. Select source QuickView file. 2. Generate script (full or compressed mode). 3. Build dual-voice MP3 (Gemini multi-speaker, chunked for reliability). 4. Generate full-text Korean subtitles (no ellipsis truncation). 5. Render subtitle MP4 with tuned font/size/timing shift. 6. Build thumbnail + YouTube metadata. 7. Deliver final package.
Step 1) Select Source
Prefer weekly QuickView file from your configured Quartz root.
If user gives wk.aiee.app URL, map to local Quartz markdown first.
Step 2) Generate Script
Read and apply:
references/podcast_prompt_template_ko.mdModes:
Rules:
archive/Step 3) Build Audio (Gemini Multi-Speaker, Reliable)
Preferred: chunked builder (timeout-safe)
# Set API key via environment (required)
export GEMINI_API_KEY=""Run from skills/ai-podcast-pipeline/
python3 scripts/build_dualvoice_audio.py \
--input \
--outdir \
--basename podcast_full_dualvoice \
--chunk-lines 6
Single-pass (short scripts)
python3 scripts/gemini_multispeaker_tts.py \
--input-file \
--outdir \
--basename podcast_dualvoice \
--retries 3 \
--timeout-seconds 120
Default voice mapping (2026-02-10 fixed):
KorePuckOutput: MP3 (default delivery format)
Step 4) Build Korean Subtitles (Full Text)
Use full-text subtitle builder (no ... truncation):
python3 scripts/build_korean_srt.py \
--script \
--audio \
--output /podcast.srt \
--max-chars 22
Step 5) Render Subtitled MP4 (Font + Timing)
Use renderer with adjustable font and timing shift:
python3 scripts/render_subtitled_video.py \
--image \
--audio \
--srt \
--output /final.mp4 \
--font-name "Do Hyeon" \
--font-size 27 \
--shift-ms -250
Notes:
shift-ms negative = subtitle earlier (for lag fixes)font-size (e.g., 25~27)Step 6) Build Thumbnail + YouTube Metadata
# Set API key via environment (required)
export GEMINI_API_KEY=""python3 scripts/build_podcast_assets.py \
--source ""
Reference (layout/copy guardrails):
references/thumbnail_guidelines_ko.mdStep 7) Final Delivery Checklist
Always include: 1. source used 2. final MP3 path 3. subtitle MP4 path + size 4. thumbnail path 5. YouTube title options (3) 6. YouTube description
Reliability Rules
build_dualvoice_audio.py)--shift-ms (usually -150 to -300)Security Notes
GEMINI_API_KEY), not hardcoded.References
references/podcast_prompt_template_ko.mdreferences/workflow_runbook.mdreferences/thumbnail_guidelines_ko.md