agents365-ai/365-skills99 files

Video Podcast Maker

Use when the user gives a topic and wants an automated topic-driven narrated explainer, podcast, or knowledge-summary video (Bilibili / YouTube / Xiaohongshu / Douyin / WeChat Channels), or asks to learn visual design patterns from a reference video/image. Trigger when the user mentions creating a knowledge video, narrated explainer, video podcast, or animated infographic-style video from a topic — even if they don't say "video podcast" explicitly. Also trigger when the user wants to regenerate, re-render, rebuild, update, or iterate on a narrated video this skill already produced — e.g. they edited the script/prompt, changed the visuals, or swapped the background music and want the final video remade (reuse the existing videos/{name}/ directory, never start a new project). Do NOT trigger for generic video editing, trimming, format conversion, color grading, or non-narrative video tasks. Produces 4K video via research → script → TTS → Remotion → MP4 + BGM.

Specification
Skill ID
agents365-ai/365-skills/video-podcast-maker
Publisher
agents365-ai
Repository
365-skills
Installs
0
Files
99
Synced
Sep 24, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

agents365-ai/365-skills/video-podcast-makerInstalls these files
  • .env.example
  • .python-version
  • .skillspector-baseline.yaml
  • AGENTS.md
  • LICENSE
  • package.json
  • phonemes.json
  • phonemes.template.json
  • prefs_schema.json
  • references/design-guide.md
  • references/design-learning.md
  • references/natural-narration.md
  • references/platform-matrix.md
  • references/script-polish.md
  • references/troubleshooting.md
  • references/visual-taste.md
  • references/workflow-assets.md
  • references/workflow-production.md
  • references/workflow-publish.md
  • references/workflow-script.md
  • references/zh-polyphones.md
  • requirements.txt
  • scripts/_state.py
  • scripts/align_timing_from_srt.py
  • scripts/assets.py
  • scripts/audit_beat_sync.py
  • scripts/audit_components.py
  • scripts/check_prereqs.py
  • scripts/cli_envelope.py
  • scripts/cli.py
  • scripts/components.py
  • scripts/generate_shorts.py
  • scripts/generate_tts.py
  • scripts/get_pref.py
  • scripts/learn_design.py
  • scripts/migrate_prefs.py
  • scripts/resolve_backend.py
  • scripts/resolve_bgm_path.py
  • scripts/tts/__init__.py
  • scripts/tts/backends/__init__.py
  • scripts/tts/backends/base.py
  • scripts/tts/backends/ttscn.py
  • scripts/tts/markers.py
  • scripts/tts/phonemes.py
  • scripts/tts/sections.py
  • scripts/tts/srt.py
  • scripts/tts/voice_advisor.py
  • scripts/verify_output.py
  • SKILL.md
  • templates/components/AnimatedBackground.tsx
  • templates/components/animations.tsx
  • templates/components/AssetImage.tsx
  • templates/components/AssetVideo.tsx
  • templates/components/AudioWaveform.tsx
  • templates/components/ChapterProgressBar.tsx
  • templates/components/CodeBlock.tsx
  • templates/components/ComparisonCard.tsx
  • templates/components/DataBar.tsx
  • templates/components/DataTable.tsx
  • templates/components/DiagramReveal.tsx
  • templates/components/ErrorBoundary.tsx
  • templates/components/FeatureGrid.tsx
  • templates/components/FlowChart.tsx
  • templates/components/Icon.tsx
  • templates/components/IconCard.tsx
  • templates/components/iconMap.ts
  • templates/components/index.ts
  • templates/components/layouts.tsx
  • templates/components/LottieAnimation.tsx
  • templates/components/MediaSection.tsx
  • templates/components/OverlayLayer.tsx
  • templates/components/QuoteBlock.tsx
  • templates/components/SectionLayouts.tsx
  • templates/components/ShortCTACard.tsx
  • templates/components/ShortIntroCard.tsx
  • templates/components/StatCounter.tsx
  • templates/components/Subtitles.tsx
  • templates/components/Timeline.tsx
  • templates/components/useAssets.ts
  • templates/components/useTiming.ts
  • templates/podcast_en.txt
  • templates/podcast_zh.txt
  • templates/podcast.txt
  • templates/presets/kinetic-typography/colors.json
  • templates/presets/kinetic-typography/motion.json
  • templates/presets/kinetic-typography/README.md
  • templates/presets/kinetic-typography/Thumbnail.tsx.template
  • templates/presets/kinetic-typography/Video.tsx.template
  • templates/presets/kinetic-typography/voice.json
  • templates/README.md
  • templates/remotion.config.ts
  • templates/Root.tsx
  • templates/ShortVideo.tsx
  • templates/Thumbnail.tsx
  • templates/Video.en.tsx
  • templates/Video.tsx
  • tsconfig.json
  • tsconfig.templates.json
  • user_prefs.template.json

What this skill tells the agent

REQUIRED: Load Remotion Best Practices First This skill depends on remotion-best-practices. - Pi: read the loaded skill at remotion-best-practices (listed in available skills). - Claude Code: invoke remotion-best-practices skill/tool before proceeding. Not installed? Get it from remotion-dev/skills (docs: remotion.dev/docs/ai/skills). If remotion-best-practices is not installed, minimum rules: chromium must be available, always wrap 4K content in <Scale4K>, use <TransitionSeries> with linearTiming, and treat audio as the master clock.

Video Podcast Maker

Automated pipeline for 4K Bilibili horizontal knowledge videos from a topic. Coding agent + TTS backend + Remotion + FFmpeg.

Contents

  • Bootstrap — prerequisites (run before Step 1)
  • Execution Modes — Auto vs Interactive → references/workflow-script.md
  • Regenerating an Existing Video — iterate on a finished video
  • Workflow — the 11-step pipeline + phase-file pointers + mandatory stops
  • Hard Rules — non-negotiable production constraints
  • Audio-Master Clock & Sync
  • Per-Video Layout
  • Additional Resources — when to load each references/ file
  • User Preferences
  • Troubleshooting

Bootstrap

Resolve SKILL_DIR to the directory containing this SKILL.md:

  • Pi: the agent knows the skill path from the loaded skill list — set SKILL_DIR to that directory before running commands.
  • Claude Code: ${CLAUDE_SKILL_DIR} is auto-populated.
SKILL_DIR="${SKILL_DIR:-${CLAUDE_SKILL_DIR}}"

# Prerequisites (CLIs + backend env vars)
python3 "${SKILL_DIR}/scripts/check_prereqs.py"

Updates flow through the plugin marketplace (/plugin update); direct git-clone installs use git pull per the README. This skill performs no update checks.

Prereqs failures — see README.md for setup. The check is backend-aware (resolves TTS_BACKEND env → user_prefs.json global.tts.backend → edge default), so only env vars required by the active backend are validated.

First video in a new project? Prefer reusing an existing Remotion project with node_modules/ already installed — creating a fresh project downloads ~2.2 GB of npm packages plus a 90 MB Chrome headless shell (one-time per project). If the user has a project from a previous video, use it. If a fresh project is necessary, run npm install in the background while you do Steps 1-4 (topic research and script writing).

All rendering goes into `videos/{name}/` — every output.mp4, final_video.mp4, and thumbnail_*.png lands directly in the per-video directory. Never render to an out/ or dist/ directory; the --public-dir videos/{name}/ convention keeps everything self-contained.

TTS engine — all 11 backends (TTS_BACKEND=edge|azure|cosyvoice|doubao|tencent|baidu|minimax|xunfei|elevenlabs|openai|google) synthesize through the ttscn component skill, which is required: install it under ~/.claude/skills/ttscn or point TTSCN_HOME at its root (Agents365-ai/ttsCN). Each backend still needs only its own API keys (Edge needs none); check_prereqs.py validates both the install and the keys.

Pi users: ttscn is not bundled with Pi — install Agents365-ai/ttsCN as a Pi skill (its skills/ttscn/ layout is auto-detected) or set TTSCN_HOME; check_prereqs.py verifies the install before TTS.
Design Learning shortcut: If the user provides a reference video/image or asks to save/list/delete style profiles, see references/design-learning.md instead of running the workflow below.

Execution Modes

Detect Auto Mode (default) vs Interactive Mode at workflow start — the Auto-default decision table and per-request overrides are in references/workflow-script.md.


Regenerating an Existing Video

If videos/{name}/ already exists and the user is iterating on a finished or in-progress video, reuse that directory. Do NOT start a new project or a new videos/{newname}/.

Pick the smallest re-run for what actually changed:

ChangedRe-runReuses (don't redo)
Narration script (podcast.txt)Step 7 (TTS) → Step 8 preview → render+mixtopic research + section design
Visuals only (components, layout, colors)Step 8 preview → render+mixaudio (podcast_audio.wav / timing.json)
Background music onlyRe-mix BGMoutput.mp4 (no re-render)
Subtitles onlyStep 10.1 finalizeoutput.mp4 / video_with_bgm.mp4

Any re-run that changes what the viewer sees or hears re-enters the Step 8 gate: apply the change, let Studio hot-reload, and wait for a fresh explicit "render 4K" — the previous confirmation does not carry over. A script change shifts every downstream timestamp, so always regenerate timing.json through TTS — never hand-edit it. After any re-run, re-verify:

python3 ${SKILL_DIR}/scripts/verify_output.py videos/{name}/

Workflow

Iterating on a finished video? If videos/{name}/ already exists, see Regenerating an Existing Video above for the minimal re-run — do NOT start at Step 1.

At Step 1 start, create one task per step in your agent's tracker. Mark in_progress on start, completed on finish. Files in videos/{name}/ are the durable record — if interrupted, inspect the directory to determine where to resume.

#StepOutputPhase file
1Define topic directiontopic_definition.mdworkflow-script.md
2Research topictopic_research.mdworkflow-script.md
3Design 5-7 sections(in-memory)workflow-script.md
4Write narration scriptpodcast.txtworkflow-script.md
4.5Pronunciation pre-flight (zh-CN)phonemes.jsonworkflow-script.md
5Asset plan & resolveassets/manifest.jsonworkflow-assets.md
6Generate thumbnails (16:9 + 4:3)thumbnail_*.pngworkflow-production.md
7Generate TTS audiopodcast_audio.wav, timing.jsonworkflow-production.md
8Remotion composition + Studio preview—workflow-production.md
9Render 4K + mix BGMoutput.mp4, video_with_bgm.mp4workflow-production.md
10Publish info + verify outputpublish_info.md, final_video.mp4workflow-publish.md
11Generate vertical shorts (optional)shorts/workflow-publish.md

Mandatory stops (bold rows above):

  • Step 8 — Studio review. MUST launch npx remotion studio and wait for user feedback before rendering. NEVER render 4K until the user explicitly confirms ("render 4K" / "render final"). A reply containing adjustment requests is not confirmation — apply the changes, let Studio hot-reload, and ask again. Every round of adjustments needs its own fresh confirmation before Step 9.

Use this skill in a project

Open any RiverX project, search the Skills panel for agents365-ai/365-skills/video-podcast-maker, and install it in one click.

Use this skill