{"id":"e790ee4e-4f71-4ee4-95ab-93373f2c5faa","shortId":"JhUQAz","kind":"skill","title":"video-podcast-maker","tagline":"Use when the user gives a topic and wants an automated video podcast created, or asks to learn visual design patterns from a reference video/image. Produces 4K video via research → script → TTS → Remotion → MP4 + BGM.","description":"> **REQUIRED: Load Remotion Best Practices First**\n>\n> This skill depends on `remotion-best-practices`. **You MUST invoke it before proceeding:**\n> ```\n> Invoke the skill/tool named: remotion-best-practices\n> ```\n\n# Video Podcast Maker\n\n## Quick Start\n\nOpen your coding agent and say: **\"Make a video podcast about $ARGUMENTS\"**\n\nOr invoke directly: `/video-podcast-maker AI Agent tutorial`\n\n---\n\n## Design Learning (Optional)\n\nExtract visual design patterns from reference videos or images and apply them to new video compositions. **Skip this section unless** the user provides a reference video/image or asks to save/list/delete style profiles.\n\n→ See **[references/design-learning.md](references/design-learning.md)** for commands, reference-library management, style-profile management, and integration with Pre-workflow / Step 9.\n\n---\n\n## Auto Update Check\n\n**Agent behavior:** Check for updates at most once per day (throttled by timestamp file).\nBefore any shell command that reads files from this skill, resolve `SKILL_DIR` to the directory containing `SKILL.md`.\nIf your agent exposes a built-in skill directory variable such as `${CLAUDE_SKILL_DIR}`, you may map it to `SKILL_DIR`.\n\n```bash\nSKILL_DIR=\"${SKILL_DIR:-${CLAUDE_SKILL_DIR}}\"\nSTAMP=\"${SKILL_DIR}/.last_update_check\"\nNOW=$(date +%s)\nLAST=$(cat \"$STAMP\" 2>/dev/null || echo 0)\nif [ ! -d \"${SKILL_DIR}/.git\" ]; then\n  echo \"MANUAL_INSTALL\"\nelif [ $((NOW - LAST)) -gt 86400 ]; then\n  timeout 5 git -C \"${SKILL_DIR}\" fetch --quiet 2>/dev/null || true\n  LOCAL=$(git -C \"${SKILL_DIR}\" rev-parse HEAD 2>/dev/null)\n  REMOTE=$(git -C \"${SKILL_DIR}\" rev-parse origin/main 2>/dev/null)\n  echo \"$NOW\" > \"$STAMP\"\n  if [ -n \"$LOCAL\" ] && [ -n \"$REMOTE\" ] && [ \"$LOCAL\" != \"$REMOTE\" ]; then\n    echo \"UPDATE_AVAILABLE\"\n  else\n    echo \"UP_TO_DATE\"\n  fi\nelse\n  echo \"SKIPPED_RECENT_CHECK\"\nfi\n```\n\n- **Update available**: Ask the user whether to pull updates. Yes → `git -C \"${SKILL_DIR}\" pull`. No → continue.\n- **Up to date / Skipped**: Continue silently.\n- **Manual install** (no `.git` directory — skill was installed via tarball/zip/cp): Continue silently. Auto-update is disabled; the user must reinstall manually to update.\n\n---\n\n## Prerequisites Check\n\n**Agent behavior:** Run the pre-flight check below before Step 1. `SKILL_DIR` must already be resolved (see Auto Update Check section above for resolution rules).\n\n```bash\nSKILL_DIR=\"${SKILL_DIR:-${CLAUDE_SKILL_DIR}}\"\npython3 \"${SKILL_DIR}/scripts/check_prereqs.py\"\n```\n\n**If MISSING reported**, see README.md for full setup instructions (install commands, API key setup, Remotion project init). The check is backend-aware: backend is resolved as `TTS_BACKEND` env var → `user_prefs.json` (`global.tts.backend`) → `edge` default, then only env vars required by that backend are validated.\n\n---\n\n## Overview\n\nAutomated pipeline for professional **Bilibili horizontal knowledge videos** from a topic.\n\n> **Target: Bilibili horizontal video (16:9)**\n> - Resolution: 3840×2160 (4K) or 1920×1080 (1080p)\n> - Style: Clean white (default)\n\n**Tech stack:** Coding agent + TTS backend + Remotion + FFmpeg\n\n### Output Specs\n\n| Parameter | Horizontal (16:9) | Vertical (9:16) |\n|-----------|-------------------|-----------------|\n| **Resolution** | 3840×2160 (4K) | 2160×3840 (4K) |\n| **Frame rate** | 30 fps | 30 fps |\n| **Encoding** | H.264, 16Mbps | H.264, 16Mbps |\n| **Audio** | AAC, 192kbps | AAC, 192kbps |\n| **Duration** | 1-15 min | 60-90s (highlight) |\n\n---\n\n## Execution Modes\n\n**Agent behavior:** Detect user intent at workflow start:\n\n- \"Make a video about...\" / no special instructions → **Auto Mode**\n- \"I want to control each step\" / mentions interactive → **Interactive Mode**\n- Default: **Auto Mode**\n\n### Auto Mode (Default)\n\nFull pipeline with sensible defaults. **Mandatory stop at Step 9:**\n\n1. **Step 9**: Launch Remotion Studio — user reviews in real-time, requests changes until satisfied\n2. **Step 10**: Only triggered when user explicitly says \"render 4K\" / \"render final version\"\n\n| Step | Decision | Auto Default |\n|------|----------|-------------|\n| 3 | Title position | top-center |\n| 5 | Media assets | Skip (text-only animations) |\n| 7 | Thumbnail method | Remotion-generated (16:9 + 4:3) |\n| 9 | Outro animation | Pre-made MP4 (white/black by theme) |\n| 9 | Preview method | Remotion Studio (mandatory) |\n| 12 | Subtitles | Skip |\n| 14 | Cleanup | Auto-clean temp files |\n\nUsers can override any default in their initial request:\n- \"make a video about AI, burn subtitles\" → auto + subtitles on\n- \"use dark theme, AI thumbnails\" → auto + dark + imagen\n- \"need screenshots\" → auto + media collection enabled\n\n### Interactive Mode\n\nPrompts at each decision point. Activated by:\n- \"interactive mode\" / \"I want to choose each option\"\n- User explicitly requests control\n\n---\n\n## Technical Rules\n\nHard constraints for video production. Visual design remains the agent's creative freedom within these rules:\n\n| Rule | Requirement |\n|------|-------------|\n| **Single Project** | All videos under `videos/{name}/` in user's Remotion project. NEVER create a new project per video. |\n| **4K Output** | 3840×2160, use `scale(2)` wrapper over 1920×1080 design space |\n| **Content Width** | ≥85% of screen width |\n| **Bottom Safe Zone** | Bottom 100px reserved for subtitles |\n| **Audio Sync** | All animations driven by `timing.json` timestamps |\n| **Thumbnail** | MUST generate 16:9 (1920×1080) AND 4:3 (1200×900). Centered layout, title ≥120px, icons ≥120px, fill most of canvas. See design-guide.md. |\n| **Font** | PingFang SC / Noto Sans SC for Chinese text |\n| **Studio Before Render** | MUST launch `remotion studio` for user review. NEVER render 4K until user explicitly confirms (\"render 4K\", \"render final\"). |\n\n---\n\n## Additional Resources\n\nLoad these files on demand — **do NOT load all at once**:\n\n- **[references/workflow-steps.md](references/workflow-steps.md)**: Index of the 15-step workflow split across three phase files. Load at workflow start to locate which phase file to pull:\n  - **[workflow-script.md](references/workflow-script.md)** — Pre-workflow + Startup + Steps 1-4 (scripting)\n  - **[workflow-production.md](references/workflow-production.md)** — Steps 5-11 (media, TTS, Remotion, render, BGM)\n  - **[workflow-publish.md](references/workflow-publish.md)** — Steps 12-15 (subtitles, publish, cleanup, shorts)\n- **[references/design-guide.md](references/design-guide.md)**: Visual minimums, typography, layout patterns, checklists, **animation safety rules**. **MUST load before Step 9.**\n- **[references/design-learning.md](references/design-learning.md)**: Extracting visual patterns from reference videos/images, style profiles. Load only when the user provides a reference or manages profiles.\n- **[references/azure-tts-pitfalls.md](references/azure-tts-pitfalls.md)**: Voice selection guide, Multilingual gotchas, SSML pitfalls, style support matrix. **Load when choosing Azure voice/style or debugging hoarse/missing/glitchy audio.**\n- **[references/troubleshooting.md](references/troubleshooting.md)**: Error fixes, BGM options, preference commands, preference learning. Load on error or user request.\n- **[templates/presets/kinetic-typography/](templates/presets/kinetic-typography/)**: Bold type-driven preset (black BG + mint/yellow accents + character-pop animations). Use for opinion / argument / declaration videos. Load README first.\n- **[examples/](examples/)**: Real production video projects. The agent may reference these for composition structure and `timing.json` format.\n\n### Script suite dispatcher (optional)\n\nAll scripts in `${SKILL_DIR}/scripts/` are reachable through one hierarchical entry point:\n\n```bash\npython3 ${SKILL_DIR}/scripts/cli.py --help                 # list resources\npython3 ${SKILL_DIR}/scripts/cli.py <resource> --help      # list actions\npython3 ${SKILL_DIR}/scripts/cli.py <resource> <action> --help  # forwards to underlying script\npython3 ${SKILL_DIR}/scripts/cli.py schema [<method>]      # JSON parameter schema\n```\n\nRoutes (all forward to the existing scripts; direct invocations keep working):\n`tts run|validate`, `verify`, `audit beats`, `shorts gen`, `design list|show|delete|add`, `prereqs`, `prefs get|migrate|backend|bgm-path`, `schema [<method>]`.\n\nThe dispatcher is optional — every snippet in this file uses the direct script path for back-compat. Agents that prefer one entry point with discoverable help should prefer `cli.py`.\n\n### Pre-render audit (recommended)\n\nBefore launching Studio for Step 9 review:\n```bash\npython3 ${SKILL_DIR}/scripts/audit_beat_sync.py <Video.tsx> <timing.json>\n```\nPrints a beat-vs-narration alignment table and flags drift > 1.5s. Especially important for kinetic-typography style where each beat must hit a specific narration moment.\n\n### End-of-pipeline acceptance gate (MANDATORY)\n\nAfter Step 13, before declaring the video done:\n```bash\npython3 ${SKILL_DIR}/scripts/verify_output.py videos/{name}/\n```\nAuto-fixes common omissions (creates `final_video.mp4` if missing; disable with `--no-fix`), validates resolution/codec/duration, checks audio-timing drift, sanity-checks publish_info.md. Exit 0 = green light to publish; exit 2 = warnings only, still publishable. For machine-readable output add `--format json` (auto when piped). Full flag reference in `references/workflow-publish.md`.\n\n---\n\n## Directory Structure\n\n```\nproject-root/                           # Remotion project root\n├── src/remotion/                       # Remotion source\n│   ├── compositions/                   # Video composition definitions\n│   ├── Root.tsx                        # Remotion entry\n│   └── index.ts                        # Exports\n│\n├── public/                             # Remotion default (unused — use --public-dir videos/{name}/)\n│\n├── videos/{video-name}/                # Video project assets\n│   ├── topic_definition.md             # Step 1\n│   ├── topic_research.md               # Step 2\n│   ├── podcast.txt                     # Step 4: narration script\n│   ├── podcast_audio.wav               # Step 8: TTS audio\n│   ├── podcast_audio.srt               # Step 8: subtitles\n│   ├── timing.json                     # Step 8: timeline\n│   ├── thumbnail_*.png                 # Step 7\n│   ├── output.mp4                      # Step 10\n│   ├── video_with_bgm.mp4             # Step 11\n│   ├── final_video.mp4                 # Step 12: final output\n│   └── bgm.mp3                         # Background music\n│\n└── remotion.config.ts\n```\n\n> **Important**: Always use `--public-dir` and full output path for Remotion render:\n> ```bash\n> npx remotion render src/remotion/index.ts CompositionId videos/{name}/output.mp4 --public-dir videos/{name}/\n> ```\n\n### Naming Rules\n\n**Video name `{video-name}`**: lowercase English, hyphen-separated (e.g., `reference-manager-comparison`)\n\n**Section name `{section}`**: lowercase English, underscore-separated, matches `[SECTION:xxx]`\n\n**Thumbnail naming** (16:9 AND 4:3 both required):\n| Type | 16:9 | 4:3 |\n|------|------|-----|\n| Remotion | `thumbnail_remotion_16x9.png` | `thumbnail_remotion_4x3.png` |\n| AI | `thumbnail_ai_16x9.png` | `thumbnail_ai_4x3.png` |\n\n### Public Directory\n\nUse `--public-dir videos/{name}/` for all Remotion commands. Each video's assets (timing.json, podcast_audio.wav, bgm.mp3) stay in its own directory — no copying to `public/` needed. This enables parallel renders of different videos.\n\n```bash\n# All render/studio/still commands use --public-dir\nnpx remotion studio src/remotion/index.ts --public-dir videos/{name}/\nnpx remotion render src/remotion/index.ts CompositionId videos/{name}/output.mp4 --public-dir videos/{name}/ --video-bitrate 16M\nnpx remotion still src/remotion/index.ts Thumbnail16x9 videos/{name}/thumbnail.png --public-dir videos/{name}/\n```\n\n---\n\n## Workflow\n\n### Progress Tracking\n\nAt Step 1 start, use your agent's task tracker (Claude Code `TaskCreate` / Codex todo list / equivalent) to create one task per step. Mark `in_progress` on start, `completed` on finish. Files in `videos/{name}/` (e.g. `podcast.txt`, `timing.json`, `output.mp4`) act as the durable record of what completed — if a session is interrupted, inspect the directory to determine where to resume.\n\n```\n 1. Define topic direction → topic_definition.md\n 2. Research topic → topic_research.md\n 3. Design video sections (5-7 chapters)\n 4. Write narration script → podcast.txt\n 4.5. Pronunciation pre-flight (zh-CN only) → videos/{name}/phonemes.json\n 5. Collect media assets → media_manifest.json\n 6. Generate publish info (Part 1) → publish_info.md\n 7. Generate thumbnails (16:9 + 4:3) → thumbnail_*.png\n 8. Generate TTS audio → podcast_audio.wav, timing.json\n 9. Create Remotion composition + Studio preview (mandatory stop)\n10. Render 4K video (only on user request) → output.mp4\n11. Mix background music → video_with_bgm.mp4\n12. Add subtitles (optional) → final_video.mp4\n13. Complete publish info (Part 2) → chapter timestamps\n14. Verify output & cleanup\n15. Generate vertical shorts (optional) → shorts/\n```\n\n### Validation Checkpoints\n\n**After Step 8 (TTS)**:\n- [ ] `podcast_audio.wav` exists and plays correctly\n- [ ] `timing.json` has all sections with correct timestamps\n- [ ] `podcast_audio.srt` encoding is UTF-8\n\n**After Step 10 (Render)**:\n- [ ] `output.mp4` resolution is 3840x2160\n- [ ] Audio-video sync verified\n- [ ] No black frames\n\n---\n\n## Key Commands Reference\n\nSee **CLAUDE.md** for the full command reference (TTS, Remotion, FFmpeg, shorts generation).\n\n---\n\n## User Preference System\n\nSkill learns and applies preferences automatically. See [references/troubleshooting.md](references/troubleshooting.md) for commands and learning details.\n\n### Storage Files\n\n| File | Purpose |\n|------|---------|\n| `user_prefs.json` | Learned preferences (auto-created from template) |\n| `user_prefs.template.json` | Default values |\n| `prefs_schema.json` | JSON schema definition |\n\n### Priority\n\n```\nFinal = merge(Root.tsx defaults < global < topic_patterns[type] < current instructions)\n```\n\n### User Commands\n\n| Command | Effect |\n|---------|--------|\n| \"show preferences\" | Show current preferences |\n| \"reset preferences\" | Reset to defaults |\n| \"save as X default\" | Save to topic_patterns |\n\n---\n\n## Troubleshooting & Preferences\n\n> **Full reference:** Read [references/troubleshooting.md](references/troubleshooting.md) on errors, preference questions, or BGM options.","tags":["video","podcast","maker","agents365-ai","agent-skills","ai-video","bilibili","claude-code","claude-code-skill","claude-skills","elevenlabs","openai-tts"],"capabilities":["skill","source-agents365-ai","skill-video-podcast-maker","topic-agent-skills","topic-ai-video","topic-bilibili","topic-claude-code","topic-claude-code-skill","topic-claude-skills","topic-elevenlabs","topic-openai-tts","topic-openclaw","topic-openclaw-skills","topic-remotion","topic-skill-md"],"categories":["video-podcast-maker"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/Agents365-ai/video-podcast-maker","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Agents365-ai/video-podcast-maker","source_repo":"https://github.com/Agents365-ai/video-podcast-maker","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 751 github stars · SKILL.md body (14,398 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-04T00:53:26.035Z","embedding":null,"createdAt":"2026-04-18T23:40:46.221Z","updatedAt":"2026-05-04T00:53:26.035Z","lastSeenAt":"2026-05-04T00:53:26.035Z","tsv":"'-11':875 '-15':507,885 '-4':869 '-7':1557 '-8':1673 '-90':510 '/.git':232 '/.last_update_check':217 '/dev/null':225,252,264,275 '/output.mp4':1343,1457 '/phonemes.json':1575 '/scripts':1014 '/scripts/audit_beat_sync.py':1133 '/scripts/check_prereqs.py':389 '/scripts/cli.py':1026,1033,1040,1049 '/scripts/verify_output.py':1182 '/thumbnail.png':1474 '/video-podcast-maker':88 '0':227,1212 '1':362,506,558,868,1278,1485,1543,1586 '1.5':1145 '10':576,1306,1611,1676 '100px':758 '1080':459,745,776 '1080p':460 '11':1311,1620 '12':632,884,1315,1627 '1200':780 '120px':785,787 '13':1172,1633 '14':635,1641 '15':842,1645 '16':451,477,481,612,773,1379,1387,1591 '16m':1466 '16mbps':497,499 '1920':458,744,775 '192kbps':502,504 '2':224,251,263,274,574,741,1218,1281,1548,1638 '2160':455,484,486,738 '3':592,615,779,1383,1390,1552,1594 '30':491,493 '3840':454,483,487,737 '3840x2160':1681 '4':614,778,1284,1382,1389,1559,1593 '4.5':1564 '4k':31,456,485,488,584,735,815,821,1613 '5':244,598,874,1556,1576 '6':1581 '60':509 '7':606,1303,1588 '8':1289,1294,1298,1597,1655 '85':750 '86400':241 '9':147,452,478,480,557,560,613,616,626,774,905,1127,1380,1388,1592,1603 '900':781 'aac':501,503 'accent':974 'accept':1167 'across':846 'act':1522 'action':1036 'activ':682 'add':1077,1228,1628 'addit':824 'agent':76,90,151,185,351,468,515,707,995,1105,1489 'ai':89,655,664,1394 'align':1140 'alreadi':366 'alway':1323 'anim':605,618,765,898,978 'api':401 'appli':105,1711 'argument':84,982 'ask':20,122,304 'asset':600,1275,1412,1579 'audio':500,762,947,1204,1291,1600,1683 'audio-tim':1203 'audio-video':1682 'audit':1069,1120 'auto':148,338,370,530,543,545,590,638,658,666,671,1186,1231,1730 'auto-clean':637 'auto-cr':1729 'auto-fix':1185 'auto-upd':337 'autom':15,436 'automat':1713 'avail':289,303 'awar':412 'azur':942 'back':1103 'back-compat':1102 'backend':411,413,418,432,470,1082 'backend-awar':410 'background':1319,1622 'bash':206,378,1022,1129,1178,1335,1433 'beat':1070,1137,1156 'beat-vs-narr':1136 'behavior':152,352,516 'best':43,52,66 'bg':972 'bgm':39,880,952,1084,1786 'bgm-path':1083 'bgm.mp3':1318,1415 'bgm.mp4':1309,1626 'bilibili':440,448 'bitrat':1465 'black':971,1688 'bold':966 'bottom':754,757 'built':189 'built-in':188 'burn':656 'c':246,256,267,313 'canva':791 'cat':222 'center':597,782 'chang':571 'chapter':1558,1639 'charact':976 'character-pop':975 'check':150,153,300,350,358,372,408,1202,1209 'checklist':897 'checkpoint':1652 'chines':801 'choos':689,941 'claud':196,211,383,1493 'claude.md':1694 'clean':462,639 'cleanup':636,888,1644 'cli.py':1116 'cn':1571 'code':75,467,1494 'codex':1496 'collect':673,1577 'command':131,168,400,955,1408,1436,1691,1698,1718,1753,1754 'common':1188 'comparison':1365 'compat':1104 'complet':1511,1529,1634 'composit':110,1000,1250,1252,1606 'compositionid':1340,1454 'confirm':819 'constraint':699 'contain':181 'content':748 'continu':318,323,335 'control':535,695 'copi':1422 'correct':1661,1667 'creat':18,729,1190,1501,1604,1731 'creativ':709 'current':1750,1759 'd':229 'dark':662,667 'date':219,294,321 'day':160 'debug':945 'decis':589,680 'declar':983,1174 'default':424,464,542,547,552,591,646,1261,1735,1745,1765,1769 'defin':1544 'definit':1253,1740 'delet':1076 'demand':830 'depend':48 'design':24,92,97,704,746,1073,1553 'design-guide.md':793 'detail':1721 'detect':517 'determin':1539 'differ':1431 'dir':177,198,205,208,210,213,216,231,248,258,269,315,364,380,382,385,388,1013,1025,1032,1039,1048,1132,1181,1266,1327,1346,1402,1440,1447,1460,1477 'direct':87,1061,1098,1546 'directori':180,192,329,1239,1398,1420,1537 'disabl':341,1195 'discover':1112 'dispatch':1007,1088 'done':1177 'drift':1144,1206 'driven':766,969 'durabl':1525 'durat':505 'e.g':1361,1518 'echo':226,234,276,287,291,297 'edg':423 'effect':1755 'elif':237 'els':290,296 'enabl':674,1427 'encod':495,1670 'end':1164 'end-of-pipelin':1163 'english':1357,1370 'entri':1020,1109,1256 'env':419,427 'equival':1499 'error':950,960,1782 'especi':1147 'everi':1091 'exampl':988,989 'execut':513 'exist':1059,1658 'exit':1211,1217 'explicit':581,693,818 'export':1258 'expos':186 'extract':95,908 'fetch':249 'ffmpeg':472,1702 'fi':295,301 'file':164,171,641,828,849,858,1095,1514,1723,1724 'fill':788 'final':586,823,1191,1312,1316,1631,1742 'finish':1513 'first':45,987 'fix':951,1187,1199 'flag':1143,1235 'flight':357,1568 'font':794 'format':1004,1229 'forward':1042,1056 'fps':492,494 'frame':489,1689 'freedom':710 'full':396,548,1234,1329,1697,1776 'gate':1168 'gen':1072 'generat':611,772,1582,1589,1598,1646,1704 'get':1080 'git':245,255,266,312,328 'give':9 'global':1746 'global.tts.backend':422 'gotcha':933 'green':1213 'gt':240 'guid':931 'h.264':496,498 'hard':698 'head':262 'help':1027,1034,1041,1113 'hierarch':1019 'highlight':512 'hit':1158 'hoarse/missing/glitchy':946 'horizont':441,449,476 'hyphen':1359 'hyphen-separ':1358 'icon':786 'imag':103 'imagen':668 'import':1148,1322 'index':839 'index.ts':1257 'info':1584,1636 'init':406 'initi':649 'inspect':1535 'instal':236,326,332,399 'instruct':398,529,1751 'integr':141 'intent':519 'interact':539,540,675,684 'interrupt':1534 'invoc':1062 'invok':56,60,86 'json':1051,1230,1738 'keep':1063 'key':402,1690 'kinet':1151 'kinetic-typographi':1150 'knowledg':442 'last':221,239 'launch':561,807,1123 'layout':783,895 'learn':22,93,957,1709,1720,1727 'librari':134 'light':1214 'list':1028,1035,1074,1498 'load':41,826,833,850,902,916,939,958,985 'local':254,281,284 'locat':855 'lowercas':1356,1369 'machin':1225 'machine-read':1224 'made':621 'make':79,523,651 'maker':4,70 'manag':135,139,925,1364 'mandatori':553,631,1169,1609 'manual':235,325,346 'map':201 'mark':1506 'match':1374 'matrix':938 'may':200,996 'media':599,672,876,1578 'media_manifest.json':1580 'mention':538 'merg':1743 'method':608,628 'migrat':1081 'min':508 'minimum':893 'mint/yellow':973 'miss':391,1194 'mix':1621 'mode':514,531,541,544,546,676,685 'moment':1162 'mp4':38,622 'multilingu':932 'music':1320,1623 'must':55,344,365,771,806,901,1157 'n':280,282 'name':63,722,1184,1268,1272,1342,1348,1349,1352,1355,1367,1378,1404,1449,1456,1462,1473,1479,1517,1574 'narrat':1139,1161,1285,1561 'need':669,1425 'never':728,813 'new':108,731 'no-fix':1197 'noto':797 'npx':1336,1441,1450,1467 'omiss':1189 'one':1018,1108,1502 'open':73 'opinion':981 'option':94,691,953,1008,1090,1630,1649,1787 'origin/main':273 'output':473,736,1227,1317,1330,1643 'output.mp4':1304,1521,1619,1678 'outro':617 'overrid':644 'overview':435 'parallel':1428 'paramet':475,1052 'pars':261,272 'part':1585,1637 'path':1085,1100,1331 'pattern':25,98,896,910,1748,1773 'per':159,733,1504 'phase':848,857 'pingfang':795 'pipe':1233 'pipelin':437,549,1166 'pitfal':935 'play':1660 'png':1301,1596 'podcast':3,17,69,82 'podcast.txt':1282,1519,1563 'podcast_audio.srt':1292,1669 'podcast_audio.wav':1287,1414,1601,1657 'point':681,1021,1110 'pop':977 'posit':594 'practic':44,53,67 'pre':144,356,620,864,1118,1567 'pre-flight':355,1566 'pre-mad':619 'pre-rend':1117 'pre-workflow':143,863 'pref':1079 'prefer':954,956,1107,1115,1706,1712,1728,1757,1760,1762,1775,1783 'prefs_schema.json':1737 'prereq':1078 'prerequisit':349 'preset':970 'preview':627,1608 'print':1134 'prioriti':1741 'proceed':59 'produc':30 'product':702,991 'profession':439 'profil':126,138,915,926 'progress':1481,1508 'project':405,717,727,732,993,1242,1245,1274 'project-root':1241 'prompt':677 'pronunci':1565 'provid':117,921 'public':1259,1265,1326,1345,1397,1401,1424,1439,1446,1459,1476 'public-dir':1264,1325,1344,1400,1438,1445,1458,1475 'publish':887,1216,1222,1583,1635 'publish_info.md':1210,1587 'pull':309,316,860 'purpos':1725 'python3':386,1023,1030,1037,1046,1130,1179 'question':1784 'quick':71 'quiet':250 'rate':490 'reachabl':1016 'read':170,1778 'readabl':1226 'readm':986 'readme.md':394 'real':568,990 'real-tim':567 'recent':299 'recommend':1121 'record':1526 'refer':28,100,119,133,912,923,997,1236,1363,1692,1699,1777 'reference-librari':132 'reference-manager-comparison':1362 'references/azure-tts-pitfalls.md':927,928 'references/design-guide.md':890,891 'references/design-learning.md':128,129,906,907 'references/troubleshooting.md':948,949,1715,1716,1779,1780 'references/workflow-production.md':872 'references/workflow-publish.md':882,1238 'references/workflow-script.md':862 'references/workflow-steps.md':837,838 'reinstal':345 'remain':705 'remot':37,42,51,65,265,283,285,404,471,562,610,629,726,808,878,1244,1248,1255,1260,1333,1337,1391,1407,1442,1451,1468,1605,1701 'remotion-best-practic':50,64 'remotion-gener':609 'remotion.config.ts':1321 'render':583,585,805,814,820,822,879,1119,1334,1338,1429,1452,1612,1677 'render/studio/still':1435 'report':392 'request':570,650,694,963,1618 'requir':40,429,715,1385 'research':34,1549 'reserv':759 'reset':1761,1763 'resolut':376,453,482,1679 'resolution/codec/duration':1201 'resolv':175,368,415 'resourc':825,1029 'resum':1542 'rev':260,271 'rev-pars':259,270 'review':565,812,1128 'root':1243,1246 'root.tsx':1254,1744 'rout':1054 'rule':377,697,713,714,900,1350 'run':353,1066 'safe':755 'safeti':899 'san':798 'saniti':1208 'sanity-check':1207 'satisfi':573 'save':1766,1770 'save/list/delete':124 'say':78,582 'sc':796,799 'scale':740 'schema':1050,1053,1086,1739 'screen':752 'screenshot':670 'script':35,870,1005,1010,1045,1060,1099,1286,1562 'section':113,373,1366,1368,1375,1555,1665 'see':127,369,393,792,1693,1714 'select':930 'sensibl':551 'separ':1360,1373 'session':1532 'setup':397,403 'shell':167 'short':889,1071,1648,1650,1703 'show':1075,1756,1758 'silent':324,336 'singl':716 'skill':47,174,176,191,197,204,207,209,212,215,230,247,257,268,314,330,363,379,381,384,387,1012,1024,1031,1038,1047,1131,1180,1708 'skill-video-podcast-maker' 'skill.md':182 'skill/tool':62 'skip':111,298,322,601,634 'snippet':1092 'sourc':1249 'source-agents365-ai' 'space':747 'spec':474 'special':528 'specif':1160 'split':845 'src/remotion':1247 'src/remotion/index.ts':1339,1444,1453,1470 'ssml':934 'stack':466 'stamp':214,223,278 'start':72,522,853,1486,1510 'startup':866 'stay':1416 'step':146,361,537,556,559,575,588,843,867,873,883,904,1126,1171,1277,1280,1283,1288,1293,1297,1302,1305,1310,1314,1484,1505,1654,1675 'still':1221,1469 'stop':554,1610 'storag':1722 'structur':1001,1240 'studio':563,630,803,809,1124,1443,1607 'style':125,137,461,914,936,1153 'style-profil':136 'subtitl':633,657,659,761,886,1295,1629 'suit':1006 'support':937 'sync':763,1685 'system':1707 'tabl':1141 'tarball/zip/cp':334 'target':447 'task':1491,1503 'taskcreat':1495 'tech':465 'technic':696 'temp':640 'templat':1733 'templates/presets/kinetic-typography':964,965 'text':603,802 'text-on':602 'theme':625,663 'three':847 'throttl':161 'thumbnail':607,665,770,1300,1377,1590,1595 'thumbnail16x9':1471 'thumbnail_ai_16x9.png':1395 'thumbnail_ai_4x3.png':1396 'thumbnail_remotion_16x9.png':1392 'thumbnail_remotion_4x3.png':1393 'time':569,1205 'timelin':1299 'timeout':243 'timestamp':163,769,1640,1668 'timing.json':768,1003,1296,1413,1520,1602,1662 'titl':593,784 'todo':1497 'top':596 'top-cent':595 'topic':11,446,1545,1550,1747,1772 'topic-agent-skills' 'topic-ai-video' 'topic-bilibili' 'topic-claude-code' 'topic-claude-code-skill' 'topic-claude-skills' 'topic-elevenlabs' 'topic-openai-tts' 'topic-openclaw' 'topic-openclaw-skills' 'topic-remotion' 'topic-skill-md' 'topic_definition.md':1276,1547 'topic_research.md':1279,1551 'track':1482 'tracker':1492 'trigger':578 'troubleshoot':1774 'true':253 'tts':36,417,469,877,1065,1290,1599,1656,1700 'tutori':91 'type':968,1386,1749 'type-driven':967 'typographi':894,1152 'under':1044 'underscor':1372 'underscore-separ':1371 'unless':114 'unus':1262 'updat':149,155,288,302,310,339,348,371 'use':5,661,739,979,1096,1263,1324,1399,1437,1487 'user':8,116,306,343,518,564,580,642,692,724,811,817,920,962,1617,1705,1752 'user_prefs.json':421,1726 'user_prefs.template.json':1734 'utf':1672 'valid':434,1067,1200,1651 'valu':1736 'var':420,428 'variabl':193 'verifi':1068,1642,1686 'version':587 'vertic':479,1647 'via':33,333 'video':2,16,32,68,81,101,109,443,450,525,653,701,719,721,734,984,992,1176,1183,1251,1267,1269,1271,1273,1307,1341,1347,1351,1354,1403,1410,1432,1448,1455,1461,1464,1472,1478,1516,1554,1573,1614,1624,1684 'video-bitr':1463 'video-nam':1270,1353 'video-podcast-mak':1 'video.mp4':1192,1313,1632 'video/image':29,120 'videos/images':913 'visual':23,96,703,892,909 'voic':929 'voice/style':943 'vs':1138 'want':13,533,687 'warn':1219 'whether':307 'white':463 'white/black':623 'width':749,753 'within':711 'work':1064 'workflow':145,521,844,852,865,1480 'workflow-production.md':871 'workflow-publish.md':881 'workflow-script.md':861 'wrapper':742 'write':1560 'x':1768 'xxx':1376 'yes':311 'zh':1570 'zh-cn':1569 'zone':756","prices":[{"id":"bdeee8e4-f6d2-49ab-8577-2467879cd0db","listingId":"e790ee4e-4f71-4ee4-95ab-93373f2c5faa","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Agents365-ai","category":"video-podcast-maker","install_from":"skills.sh"},"createdAt":"2026-04-18T23:40:46.221Z"}],"sources":[{"listingId":"e790ee4e-4f71-4ee4-95ab-93373f2c5faa","source":"github","sourceId":"Agents365-ai/video-podcast-maker","sourceUrl":"https://github.com/Agents365-ai/video-podcast-maker","isPrimary":false,"firstSeenAt":"2026-04-18T23:40:46.221Z","lastSeenAt":"2026-05-04T00:53:26.035Z"}],"details":{"listingId":"e790ee4e-4f71-4ee4-95ab-93373f2c5faa","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Agents365-ai","slug":"video-podcast-maker","github":{"repo":"Agents365-ai/video-podcast-maker","stars":751,"topics":["agent-skills","ai-video","bilibili","claude-code","claude-code-skill","claude-skills","elevenlabs","openai-tts","openclaw","openclaw-skills","remotion","skill-md","skillsmp","tts","video-pipeline","video-podcast","youtube"],"license":"mit","html_url":"https://github.com/Agents365-ai/video-podcast-maker","pushed_at":"2026-04-27T12:06:51Z","description":"AI-powered video podcast creation skill for coding agents. Supports Bilibili & YouTube, multi-language (zh-CN/en-US), 6 TTS engines (Edge/Azure/ElevenLabs/OpenAI/Doubao/CosyVoice), 4K Remotion rendering.","skill_md_sha":"869acfae6a5dbdeb709081f80d09bfe2f75c96a2","skill_md_path":"SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Agents365-ai/video-podcast-maker"},"layout":"root","source":"github","category":"video-podcast-maker","frontmatter":{"name":"video-podcast-maker","description":"Use when the user gives a topic and wants an automated video podcast created, or asks to learn visual design patterns from a reference video/image. Produces 4K video via research → script → TTS → Remotion → MP4 + BGM."},"skills_sh_url":"https://skills.sh/Agents365-ai/video-podcast-maker"},"updatedAt":"2026-05-04T00:53:26.035Z"}}