video-podcast-maker-li…
Minimal personal narrated-video pipeline — a topic becomes a talking-head-free explainer MP4 (1080p or 4K) via script → Azure TTS (SSML) → Remotion. Use when…
Smallest personal narrated-explainer-video pipeline (spoken narration over visuals, not an audio podcast), fully tool-agnostic and autonomous by default — topic → research ∥ asset collection → script → TTS → video → 4K render ∥ publish info + cover. The skill defines the
$ npx -y skills add Agents365-ai/video-podcast-maker --skill video-podcast-maker-nano --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/video-podcast-maker-nanoContext preview
The summary Claude sees to decide when to auto-load this skill.
Smallest personal narrated-explainer-video pipeline (spoken narration over visuals, not an audio podcast), fully tool-agnostic and autonomous by default — topic → research ∥ asset collection → script → TTS → video → 4K render ∥ publish info + cover. The skill defines the
name: video-podcast-maker-nano
description: Smallest personal narrated-explainer-video pipeline (spoken narration over visuals, not an audio podcast), fully tool-agnostic and autonomous by default — topic → research ∥ asset collection → script → TTS → video → 4K render ∥ publish info + cover. The skill defines the pipeline logic and self-verified checkpoints; any TTS backend and any video tool (Remotion, HyperFrames, CapCut, ...) work, and how much human oversight to apply is set by the working project's AGENTS.md/CLAUDE.md, not here. Use when the user wants a quick personal narrated video with minimal steps, whether or not they name the tool stack. Do NOT trigger for audio-only podcasts, written episodic content, or heavy multi-format production.
argument-hint: "[topic] or videos/{name}/"
author: Agents365-ai
category: Content Creation
version: 1.0.0A 7-step pipeline for personal use: **research ∥ materials → script → TTS → audio checkpoint → video → preview checkpoint → 4K render ∥ publish kit**. No bundled scripts, no hardcoded backends, no templates. The skill owns the *logic* and runs autonomously by default; the TTS backend and video tool are chosen per video (see [Tool selection](#tool-selection-per-video)).
What makes this work regardless of tool choice — the three invariants:
1. **Checkpoints are never skipped — but who checks is policy.** Three checkpoints exist: script (after Step 2), audio (after Step 3), preview (before render). Default checker is the agent itself (self-verification, defined per checkpoint); a project's AGENTS.md/CLAUDE.md may upgrade any checkpoint to a human gate — see [Oversight policy](#oversight-policy). 2. **Audio is the master clock.** The final video's duration must match the narration audio within ±0.5s (`ffprobe` both). Visuals are cut to the audio, never the reverse. 3. **A script change invalidates everything downstream.** Edit the script → re-run the script checkpoint, then TTS → audio checkpoint → visuals → preview checkpoint → render. Never hand-patch timings.
Default mode is **autonomous**: the pipeline runs end to end, with the agent performing every checkpoint's self-verification. A working project's AGENTS.md/CLAUDE.md can override per checkpoint with one line each:
Unmentioned checkpoints stay agent-verified. Project policy files start from `AGENTS.template.md` (next to this SKILL.md): copy it into the video project root as `AGENTS.md` (plus a `CLAUDE.md` copy for Claude Code) and fill in the tool bindings. The skill never uploads or publishes anything anywhere — the publish kit is files on disk; publishing is always a human act outside this pipeline.
Decide the TTS backend and the video tool once, before Step 3, in this priority order:
1. **Project bindings win.** A filled `AGENTS.md`/`CLAUDE.md` in the working project (see Oversight policy) IS the user's standing specification — use it, no scanning, no second-guessing. If the user names a tool in-session, that overrides the file. If the policy file is missing or still contains template placeholders (`/absolute/path/to/...`), resolve the bindings via rules 2–3, then write the resolved values back into the project policy file so the next run starts bound. 2. **Auto-detect installed skills.** Scan the session's available skills for anything that can do the job — video: skills wrapping an authoring tool (Remotion, HyperFrames, CapCut, ...); TTS: any skill wrapping a TTS engine. **Exclude end-to-end pipeline skills** (e.g. other video-podcast-maker variants, if installed): they are pipelines like this one, not backends — invoking them here would nest workflows and double the checkpoints. One fit → use it; several → pick the best match for the project's language and output needs. Record the choice in `research.md`; surface it in the final summary. Never block waiting for a tool confirmation. 3. **Nothing found.** Fall back to plain CLIs the user already has (ffmpeg + any TTS CLI) and say so — never install a new tool unprompted. If a TTS CLI cannot emit subtitle timing, derive cues by splitting the script evenly across the audio duration and flag the approximation at Checkpoint 2. If a user-specified tool is missing or cannot meet the capability floor, say so and drop to rule 2 instead of improvising.
Capability floor (applies to rules 1–3): the TTS choice must produce narration audio plus subtitle timing; the video choice must export a draft video file (for Checkpoint 3 verification) and 4K. Live preview is a bonus, never a substitute for the draft export. Auxiliary jobs need no selection: research uses the built-in web search, stills/cover the video tool's still export or any image tool, duration checks `ffprobe`. If `ffmpeg`/`ffprobe` are absent, report it and stop — the ±0.5s invariant is non-negotiable and is not skipped to keep a run alive.
All artifacts for one video live in `videos/{name}/` (`{name}` = lowercase English, hyphen-separated). File names for audio/timing adapt to the chosen backend; the set is what matters:
videos/{name}/
├── research.md # Step 1 — facts + sources
├── podcast.txt # Step 2 — narration script
├── podcast_audio.wav # Step 3 — narration audio (name per backend)
├── podcast_audio.srt # Step 3 — subtitle timing (or the backend's equivalent)
├── assets/ # Step 1 — images/BGM + sources.md (source + license per asset)
├── video-project/ # Step 5 — whatever the video tool produces
├── final_4k.mp4Automated pipeline to create professional video podcasts from a topic. Supports Bilibili, YouTube, Xiaohongshu, Douyin, and WeChat Channels with multi-language output (zh-CN, en-US).
Repo: Agents365-ai/video-podcast-maker
Minimal personal narrated-video pipeline — a topic becomes a talking-head-free explainer MP4 (1080p or 4K) via script → Azure TTS (SSML) → Remotion. Use when…
Use when the user gives a topic and wants an automated topic-driven narrated explainer, podcast, or knowledge-summary video (Bilibili / YouTube / Xiaohongshu /…