{"slug":"book-sales-video","title":"\u56fe\u4e66\u5e26\u8d27\u89c6\u9891","description":"\u4ece\u4e66\u540d\u6216\u6210\u7a3f\u6587\u6848\u51fa\u53d1\uff0c\u7ed3\u5408\u4e66\u4e2d\u8d44\u6599\u5199\u56fe\u4e66\u5e26\u8d27\u53e3\u64ad\uff0c\u518d\u914d\u97f3\u3001\u914d\u56fe\u3001\u53cc\u8bed\u5b57\u5e55\u3001\u52a8\u6548\u4e0e\u6210\u7247\u3002","category":"\u53d8\u73b0\u4e0e\u6210\u4ea4","tags":["\u5e26\u8d27","\u56fe\u4e66","\u53e3\u64ad"],"author":"Kianzzz","source_url":"https://github.com/Kianzzz/book-sales-video/blob/main/SKILL.md","license":"MIT","status":"published","verification":"source_reviewed","verification_notes":"\u6765\u6e90 Kianzzz/book-sales-video\uff08SKILL.md\uff09\uff0c\u672c\u5730\u6253\u5305\u4e0a\u4f20\uff1b\u81ea\u8bc4 4.5/5\uff5c233 \u661f\uff0c\u56fe\u4e66\u8fd9\u4e2a\u5782\u7c7b\u505a\u5f97\u6700\u5b8c\u6574\uff1b\u4f9d\u8d56\u98de\u4e66\u3001\u8c46\u5305 TTS \u4e0e\u672c\u673a\u526a\u8f91\u5de5\u5177\u3002 \u672a\u6267\u884c\u5305\u5185\u811a\u672c\u3002","revision":"ccb2b22ea4a6465c9f215f0bac66a8d7","created_at":"2026-10-29T05:46:19+00:00","updated_at":"2026-10-29T05:46:25+00:00","source_repo":"","source_path":"","source_commit":"","source_updated_at":"","stars":0,"proxy_score":null,"score":null,"grade":null,"dimensions":{},"evaluation":{},"installs":0,"platforms":[],"formats":[],"category_slug":"monetization","category_name":"\u53d8\u73b0\u4e0e\u6210\u4ea4","usage_guide":{},"read_url":"https://shiliuai.cn/api/v2/skills/book-sales-video","skill_url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/SKILL.md","download_url":"https://shiliuai.cn/api/v2/skills/book-sales-video/download","install_url":"https://shiliuai.cn/api/v2/skills/book-sales-video/install","files":[{"path":"LICENSE","bytes":1064,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/LICENSE"},{"path":"README.md","bytes":2622,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/README.md"},{"path":"SKILL.md","bytes":24844,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/SKILL.md"},{"path":"agents/openai.yaml","bytes":344,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/agents/openai.yaml"},{"path":"assets/carousel/manifest.json","bytes":818,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/assets/carousel/manifest.json"},{"path":"assets/visual-style/approved-rough-paper-oil-v3.png","bytes":2942123,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/assets/visual-style/approved-rough-paper-oil-v3.png"},{"path":"assets/visual-style/reference-warm-paper.png","bytes":732660,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/assets/visual-style/reference-warm-paper.png"},{"path":"assets/visual-style/rough-paper-oil-vignette.json","bytes":3783,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/assets/visual-style/rough-paper-oil-vignette.json"},{"path":"references/bilingual-subtitles.md","bytes":2462,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/references/bilingual-subtitles.md"},{"path":"references/body-visual-style.md","bytes":7550,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/references/body-visual-style.md"},{"path":"references/copywriting-and-storyboard.md","bytes":11088,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/references/copywriting-and-storyboard.md"},{"path":"references/editing-effects-and-rhythm.md","bytes":3854,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/references/editing-effects-and-rhythm.md"},{"path":"references/openchatcut-build.md","bytes":6635,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/references/openchatcut-build.md"},{"path":"references/reference-copy-style.md","bytes":3045,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/references/reference-copy-style.md"},{"path":"references/reference-style.md","bytes":3664,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/references/reference-style.md"},{"path":"references/shot-planning.md","bytes":6812,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/references/shot-planning.md"},{"path":"scripts/check_environment.py","bytes":8934,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/scripts/check_environment.py"},{"path":"scripts/doubao_tts.py","bytes":13907,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/scripts/doubao_tts.py"},{"path":"scripts/openchatcut_mcp.py","bytes":5013,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/scripts/openchatcut_mcp.py"},{"path":"scripts/search_pexels_videos.py","bytes":5563,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/scripts/search_pexels_videos.py"},{"path":"scripts/validate_delivery_state.py","bytes":10619,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/scripts/validate_delivery_state.py"},{"path":"scripts/validate_shot_plan.py","bytes":11534,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/scripts/validate_shot_plan.py"},{"path":"scripts/validate_subtitle_cards.py","bytes":16437,"url":"https://shiliuai.cn/api/v2/skills/book-sales-video/files/scripts/validate_subtitle_cards.py"}],"content":"---\nname: book-sales-video\ndescription: \u4ece\u4e66\u540d\u6216\u98de\u4e66\u591a\u7ef4\u8868\u683c\u4e2d\u7684\u6210\u7a3f\u6587\u6848\u51fa\u53d1\uff0c\u7ed3\u5408\u5fae\u4fe1\u8bfb\u4e66\u8d44\u6599\u4e0e\u516c\u5f00\u70b9\u8bc4\u521b\u4f5c\u56fe\u4e66\u5e26\u8d27/\u4e66\u8bc4\u77ed\u89c6\u9891\uff0c\u5e76\u7528\u8c46\u5305 TTS\u3001Pexels\u3001Codex \u751f\u56fe\u548c\u672c\u673a OpenChatCut \u5b8c\u6210\u914d\u97f3\u3001\u914d\u56fe\u3001\u53cc\u8bed\u5b57\u5e55\u3001\u97f3\u6548\u3001\u52a8\u6548\u3001BGM\u3001\u53ef\u7f16\u8f91\u521d\u7a3f\u4e0e\u6309\u9700\u5bfc\u51fa\u3002\u7528\u6237\u63d0\u51fa\u201c\u6839\u636e\u4e00\u672c\u4e66\u505a\u5e26\u8d27\u89c6\u9891\u201d\u201c\u8bfb\u53d6\u98de\u4e66\u6587\u6848\u5236\u4f5c\u56fe\u4e66\u89c6\u9891\u201d\u201c\u5199\u4e66\u8bc4\u53e3\u64ad\u5e76\u81ea\u52a8\u526a\u6210\u6296\u97f3\u89c6\u9891\u201d\u201c\u4eff\u53c2\u8003\u6837\u5f0f\u505a\u56fe\u4e66\u63a8\u8350\u77ed\u89c6\u9891\u201d\u65f6\u4f7f\u7528\uff1b\u4ec5\u67e5\u4e66\u3001\u4ec5\u5199\u666e\u901a\u4e66\u8bc4\u6216\u65e0\u5173\u526a\u8f91\u4e0d\u89e6\u53d1\u3002\n---\n\n# \u56fe\u4e66\u5e26\u8d27\u89c6\u9891\u521b\u4f5c\n\n\u4ece\u4e66\u7c4d\u7814\u7a76\u5230\u672c\u5730\u53ef\u7f16\u8f91\u521d\u7a3f\u7684\u4e00\u4f53\u5316\u6d41\u7a0b\u3002\u53ea\u8bbe\u7f6e\u4e00\u6b21\u6b63\u5e38\u5ba1\u6838\uff1a\u5148\u81ea\u52a8\u9009\u62e9\u6700\u4f73\u89d2\u5ea6\u5e76\u5b8c\u6210\u53e3\u64ad\u548c\u8bed\u4e49\u5206\u955c\uff0c\u7528\u6237\u786e\u8ba4\u540e\u81ea\u52a8\u5b8c\u6210\u914d\u97f3\u3001\u753b\u9762\u3001\u5b57\u5e55\u3001\u97f3\u6548\u3001\u52a8\u6548\u3001BGM\u3001\u65f6\u95f4\u7ebf\u548c\u8d28\u68c0\uff0c\u4e0d\u518d\u9010\u9879\u786e\u8ba4\u3002\n\n## \u4e0d\u53ef\u9000\u8ba9\u7684\u5b8c\u6210\u7ebf\n\n- \u4e66\u7c4d\u4e8b\u5b9e\u6765\u81ea\u5fae\u4fe1\u8bfb\u4e66\uff1b\u516c\u5f00\u70b9\u8bc4\u53ea\u7528\u4e8e\u7406\u89e3\u8bfb\u8005\u89c6\u89d2\uff0c\u4e0d\u5192\u5145\u539f\u4e66\u5185\u5bb9\u3002\n- \u7528\u6237\u6307\u5b9a\u4ece\u98de\u4e66\u591a\u7ef4\u8868\u683c\u8bfb\u53d6\u6587\u6848\u65f6\uff0c\u76ee\u6807\u8bb0\u5f55\u4e2d\u7531\u7528\u6237\u786e\u8ba4\u7684\u6587\u6848\u5b57\u6bb5\u662f\u6743\u5a01\u53e3\u64ad\u6e90\uff1b\u9664\u6e05\u7406\u9996\u5c3e\u7a7a\u767d\u548c\u7edf\u4e00\u6362\u884c\u5916\u4fdd\u6301\u539f\u6587\uff0c\u4e0d\u64c5\u81ea\u6539\u5199\u3001\u62fc\u63a5\u5176\u4ed6\u8bb0\u5f55\u6216\u7528\u7814\u7a76\u7a3f\u8986\u76d6\u3002\n- \u7528\u6237\u63d0\u4f9b\u4e2a\u4eba\u98ce\u683c\u6863\u6848\u548c\u7981\u7528\u8868\u8fbe\u6e05\u5355\u65f6\uff0c\u521b\u4f5c\u53e3\u64ad\u524d\u5fc5\u987b\u8bfb\u53d6\uff1b\u672a\u63d0\u4f9b\u65f6\u4f7f\u7528\u672c Skill \u81ea\u5e26\u7684\u53e3\u64ad\u53c2\u8003\uff0c\u4e0d\u731c\u6d4b\u7528\u6237\u7684\u79c1\u6709\u8def\u5f84\u6216\u98ce\u683c\u89c4\u5219\u3002\n- \u9ed8\u8ba4\u81ea\u52a8\u5f62\u6210 2\u20133 \u4e2a\u5019\u9009\u89d2\u5ea6\u5e76\u8bc4\u5206\uff0c\u76f4\u63a5\u91c7\u7528\u7efc\u5408\u6700\u4f18\u89d2\u5ea6\u5199\u6210\u5b8c\u6574\u6587\u6848\uff1b\u4e0d\u5728\u524d\u671f\u8ba9\u7528\u6237\u9009\u89d2\u5ea6\u3002\n- \u552f\u4e00\u6b63\u5e38\u5ba1\u6838\u70b9\u4f4d\u4e8e\u5b8c\u6574\u53e3\u64ad\u4e0e\u8bed\u4e49\u5206\u955c\u4e4b\u540e\u3002\u82e5\u7528\u6237\u6253\u56de\uff0c\u624d\u5c55\u793a\u5019\u9009\u89d2\u5ea6\u4f9b\u9009\u62e9\uff1b\u9009\u5b9a\u540e\u91cd\u5199\u5e76\u76f4\u63a5\u8fdb\u5165\u5236\u4f5c\uff0c\u4e0d\u65b0\u589e\u7b2c\u4e8c\u6b21\u786e\u8ba4\u3002\n- \u5bf9\u5df2\u786e\u8ba4\u5168\u6587\u53ea\u8fd0\u884c\u4e00\u6b21 `scripts/doubao_tts.py`\uff0c\u6700\u7ec8\u53ea\u4ea7\u751f\u4e00\u4e2a `audio/narration.wav`\u3002\u957f\u7a3f\u5141\u8bb8\u811a\u672c\u5185\u90e8\u6309\u53e5\u754c\u8bf7\u6c42\u5e76\u5408\u5e76\uff0c\u4f46\u4e0d\u80fd\u6309\u955c\u5934\u4eba\u5de5\u751f\u6210\u591a\u4efd\u914d\u97f3\u3002\n- \u5fc5\u987b\u68c0\u67e5\u5f00\u5934\u3001\u7ed3\u5c3e\u548c\u6240\u6709\u53e5\u95f4\u9759\u97f3\uff1a\u666e\u901a\u53e5\u95f4\u4e0d\u8d85\u8fc7 0.45 \u79d2\uff0c\u6bb5\u843d/\u89c6\u89c9\u8f6c\u6298\u4e0d\u8d85\u8fc7 0.70 \u79d2\uff1b\u552f\u4e00\u5141\u8bb8\u7684 0.80\u20131.20 \u79d2\u65e0\u65c1\u767d\u533a\u662f\u6709\u8fde\u7eed\u8f6e\u64ad\u97f3\u6548\u8986\u76d6\u7684\u6a21\u677f\u8f6e\u64ad\u3002\n- \u6700\u7ec8\u914d\u97f3\u7684\u771f\u5b9e\u53ef\u542c\u6beb\u79d2\u662f\u5168\u90e8\u753b\u9762\u3001\u5b57\u5e55\u3001\u97f3\u6548\u548c\u8f6c\u573a\u7684\u552f\u4e00\u65f6\u95f4\u4f9d\u636e\uff1b\u5e27\u4f4d\u7528 OpenChatCut \u5f53\u524d\u9879\u76ee\u7684 timeline fps \u6362\u7b97\u3002\n- \u5f00\u573a\u52a8\u6001\u89c6\u9891\u56fa\u5b9a\u901a\u8fc7 Pexels API \u641c\u7d22 `book`\uff0c\u4e0d\u6839\u636e\u4e66\u540d\u6216\u6587\u6848\u6539\u5173\u952e\u8bcd\u3002\n- \u8f6e\u64ad\u4f7f\u7528 OpenChatCut \u672c\u5730\u5e93 `library:sound:mechanical-clicking-loop`\uff0c\u6bcf\u4e2a\u6709\u6548\u5cf0\u503c\u786c\u5207\u4e00\u5f20\u4e0d\u540c\u5c01\u9762\uff1b\u6700\u540e\u7ecf\u77ed\u5149\u6eb6\u8fdb\u5165\u4e3b\u4e66\u63ed\u793a\u3002\n- \u4e3b\u4e66\u5c01\u5f39\u51fa\u4f7f\u7528 OpenChatCut \u672c\u5730\u5e93 `library:sound:cash-register-success`\uff0c\u89c6\u89c9\u91cd\u97f3\u4e0e\u97f3\u6548\u951a\u70b9\u5bf9\u9f50\u3002\n- \u6b63\u6587\u6bcf\u5f20\u56fe\u7247\u5fc5\u987b\u6709\u8f7b\u5fae\u547c\u5438/\u63a8\u8fd1\u52a8\u6548\uff0c\u76f8\u90bb\u56fe\u7247\u5fc5\u987b\u6709\u8f6c\u573a\uff1b\u4e0d\u80fd\u53ea\u628a\u9759\u6001\u56fe\u7247\u9996\u5c3e\u62fc\u63a5\u3002\n- \u4e2d\u6587\u5b57\u5e55\u4e0e\u82f1\u6587\u5b57\u5e55\u5747\u4e3a\u767d\u5b57\u3001\u6e05\u6670\u9ed1\u63cf\u8fb9\uff1b\u4e2d\u6587\u5728\u4e0a\u3001\u82f1\u6587\u5728\u4e0b\uff0c\u53ea\u4fdd\u7559\u4e00\u5957\u53ef\u89c1\u5b57\u5e55\u3002\n- \u6b63\u6587\u9501\u5b9a\u201c\u7c97\u7eb8\u6cb9\u753b\u753b\u5916\u7559\u767d v3\u201d\uff1a\u6cb9\u753b\u53d9\u4e8b\u573a\u666f\u5360\u753b\u5e45\u81f3\u5c11 70%\uff08\u9ed8\u8ba4 70%\u201380%\uff09\uff0c\u6a2a\u5411\u4e00\u76f4\u94fa\u5230\u5de6\u53f3\u8fb9\u7f18\uff1b\u672a\u4e0a\u8272\u7c97\u7eb8\u53ea\u5141\u8bb8\u5728\u4e0a\u65b9\u3001\u4e0b\u65b9\u6216\u4e0a\u4e0b\u4e24\u7aef\uff0c\u603b\u5360\u6bd4 20%\u201330%\u3002\u6bcf\u6b21\u4ee5 `assets/visual-style/approved-rough-paper-oil-v3.png` \u4e3a\u4e3b\u951a\u70b9\u3002\n- \u6240\u6709\u7d20\u6750\u4ee5\u72ec\u7acb\u53ef\u7f16\u8f91\u9879\u8fdb\u5165\u672c\u673a OpenChatCut\uff1b\u4e0d\u4ee5\u672c\u5730\u9884\u5408\u6210\u6241\u5e73\u89c6\u9891\u5192\u5145\u53ef\u7f16\u8f91\u521d\u7a3f\u3002\n- \u672c Skill \u7981\u7528\u65e7 ChatCut \u4e91\u7aef MCP\u3001\u8d26\u53f7\u767b\u5f55\u3001\u4e91\u7aef\u9879\u76ee\u94fe\u63a5\u548c\u79ef\u5206\u751f\u6210\u8def\u7ebf\u3002\u672c\u5730 OpenChatCut \u53ef\u7528\u65f6\u4e0d\u5f97\u56de\u9000\u4e91\u7aef\u3002\n\n## \u9996\u6b21\u4f7f\u7528\u4e0e\u9884\u68c0\n\n\u6bcf\u4e2a\u65b0\u73af\u5883\u7b2c\u4e00\u6b21\u89e6\u53d1\u672c Skill \u65f6\uff0c\u5148\u8bfb\u53d6\u5f53\u524d\u9879\u76ee\u7684 `AGENTS.md`\uff0c\u518d\u8fd0\u884c\u53ea\u8bfb\u9884\u68c0\uff1b\u4f7f\u7528\u98de\u4e66\u8def\u7ebf\u65f6\u628a\u7528\u6237\u63d0\u4f9b\u7684 Base URL \u4e00\u5e76\u4f20\u5165\uff0c\u5b9e\u6d4b\u673a\u5668\u4eba\u8eab\u4efd\u3001Base \u6743\u9650\u548c\u6587\u6848\u5b57\u6bb5\uff0c\u4e0d\u4ee5\u201c\u5df2\u7ecf\u914d\u7f6e\u8fc7\u201d\u4ee3\u66ff\u9a8c\u8bc1\uff1a\n\n```bash\npython3 \"${CODEX_HOME:-$HOME/.codex}/skills/book-sales-video/scripts/check_environment.py\" --json\npython3 \"${CODEX_HOME:-$HOME/.codex}/skills/book-sales-video/scripts/check_environment.py\" \\\n  --json --base-url \"<\u7528\u6237\u63d0\u4f9b\u7684\u98de\u4e66 Base URL>\" \\\n  --lark-profile \"<profile>\" --script-field \"<\u6587\u6848\u5b57\u6bb5\u540d>\"\npython3 \"${CODEX_HOME:-$HOME/.codex}/skills/book-sales-video/scripts/openchatcut_mcp.py\" status\n```\n\n\u8bfb\u53d6\u9884\u68c0\u8f93\u51fa\u4e2d\u7684 `checks`\u3001`gates` \u548c `actions`\u3002\u7f3a\u5c11\u4f9d\u8d56\u3001\u73af\u5883\u53d8\u91cf\u3001\u5e94\u7528\u3001Skill\u3001\u98de\u4e66 scope \u6216\u8d44\u6e90\u534f\u4f5c\u8005\u6743\u9650\u65f6\uff0c\u5148\u7528\u4e2d\u6587\u8bf4\u660e\u201c\u7f3a\u4ec0\u4e48\u3001\u5f71\u54cd\u54ea\u4e2a\u9636\u6bb5\u3001\u5982\u4f55\u5b89\u88c5\u6216\u6388\u6743\u3001\u5b89\u88c5\u540e\u600e\u6837\u590d\u9a8c\u201d\uff0c\u63d0\u4f9b\u9884\u68c0\u7ed9\u51fa\u7684\u51c6\u786e\u547d\u4ee4\u6216\u5b98\u65b9\u5730\u5740\uff1b\u6d89\u53ca\u8d26\u53f7\u767b\u5f55\u3001App Secret\u3001API Key \u65f6\u5f15\u5bfc\u7528\u6237\u5728\u672c\u673a\u5b89\u5168\u8f93\u5165\uff0c\u7981\u6b62\u8981\u6c42\u7c98\u8d34\u5230\u5bf9\u8bdd\u3002\u53ea\u5141\u8bb8\u5b89\u88c5\u7528\u6237\u5f53\u524d\u8def\u7ebf\u771f\u6b63\u9700\u8981\u7684\u9879\u76ee\uff0c\u5b89\u88c5\u6216\u6388\u6743\u5b8c\u6210\u540e\u91cd\u8dd1\u540c\u4e00\u9884\u68c0\u3002\u5bf9\u5e94 gate \u672a\u901a\u8fc7\u524d\u4e0d\u5f97\u8fdb\u5165\u8be5\u9636\u6bb5\uff0c\u4e5f\u4e0d\u5f97\u4f2a\u88c5\u5df2\u7ecf\u5b8c\u6210\u3002\n\n\u82e5\u4efb\u52a1\u4f7f\u7528\u98de\u4e66\u6587\u6848\u8f93\u5165\uff0c\u8fd8\u8981\u786e\u8ba4 `larkBase.status` \u4e3a `ready`\u3002App Secret \u53ea\u5141\u8bb8\u901a\u8fc7 `lark-cli config init --app-secret-stdin` \u5199\u5165\u672c\u673a\u5b89\u5168\u914d\u7f6e\uff1b\u7981\u6b62\u51fa\u73b0\u5728\u5bf9\u8bdd\u3001\u547d\u4ee4\u53c2\u6570\u3001\u5de5\u4f5c\u76ee\u5f55\u6216\u65e5\u5fd7\u4e2d\u3002\n\n### \u7f3a\u5931\u9879\u5b89\u88c5\u4e0e\u6388\u6743\u6307\u5f15\n\n\u9884\u68c0\u53d1\u73b0\u7f3a\u5931\u9879\u65f6\uff0c\u53ea\u5f15\u5bfc\u5b89\u88c5\u5f53\u524d\u8def\u7ebf\u9700\u8981\u7684\u80fd\u529b\uff0c\u5e76\u5728\u5b8c\u6210\u540e\u590d\u9a8c\uff1a\n\n- Python \u4f9d\u8d56\uff1a`python3 -m pip install requests`\n- FFmpeg\uff1amacOS \u4f7f\u7528 `brew install ffmpeg`\uff1b\u5176\u4ed6\u7cfb\u7edf\u4f7f\u7528\u5bf9\u5e94\u5305\u7ba1\u7406\u5668\uff0c\u5e76\u786e\u8ba4 `ffmpeg`\u3001`ffprobe` \u53ef\u6267\u884c\u3002\n- \u98de\u4e66\u5b98\u65b9 CLI\uff1a`npx @larksuite/cli@latest install`\uff1b\u968f\u540e\u8fd0\u884c `lark-cli config init --new`\uff0c\u901a\u8fc7\u672c\u673a\u4ea4\u4e92\u914d\u7f6e\u4f01\u4e1a\u81ea\u5efa\u5e94\u7528\u3002\n- \u98de\u4e66 Base \u6743\u9650\uff1a\u4f01\u4e1a\u5e94\u7528\u81f3\u5c11\u5f00\u901a `base:field:read`\u3001`base:record:read`\u3001`base:table:read`\u3001`base:view:read`\uff0c\u5e76\u628a\u673a\u5668\u4eba\u52a0\u5165\u76ee\u6807\u591a\u7ef4\u8868\u683c\u534f\u4f5c\u8005\u3002\n- \u5fae\u4fe1\u8bfb\u4e66\u80fd\u529b\uff1a`npx skills add Tencent/WeChatReading -g`\uff0c\u518d\u6309\u8be5 Skill \u7684\u8bf4\u660e\u5b89\u5168\u914d\u7f6e `WEREAD_API_KEY`\u3002\n- Pexels\uff1a\u4ece `https://www.pexels.com/api/` \u7533\u8bf7\u53ea\u4f9b\u672c\u673a\u4f7f\u7528\u7684 API Key\u3002\n- \u8c46\u5305 TTS\uff1a\u5728\u706b\u5c71\u5f15\u64ce\u63a7\u5236\u53f0\u53d6\u5f97 API Key\u3001resource ID \u548c speaker\uff0c\u4fdd\u5b58\u5230\u5b89\u5168\u73af\u5883\u6216\u7cfb\u7edf\u94a5\u5319\u4e32\u3002\n- OpenChatCut\uff1a\u4ece `https://github.com/0xsline/OpenChatCut/releases` \u5b89\u88c5\u684c\u9762\u7248\uff1bmacOS \u653e\u5165 `/Applications`\u3002\u9996\u6b21\u542f\u52a8\u540e\u6253\u5f00\u76ee\u6807\u5de5\u7a0b\uff0c\u518d\u590d\u9a8c\u672c\u5730 MCP \u5de5\u5177\u3002\n\n\u6d89\u53ca\u7f51\u9875\u5ba1\u6279\u3001\u8d26\u53f7\u767b\u5f55\u6216\u5bc6\u94a5\u5f55\u5165\u65f6\uff0c\u7ed9\u51fa\u6700\u5c0f\u6743\u9650\u548c\u64cd\u4f5c\u5165\u53e3\u540e\u7b49\u5f85\u7528\u6237\u5b8c\u6210\uff1b\u4e0d\u8981\u4ee3\u66ff\u7528\u6237\u516c\u5f00\u51ed\u636e\uff0c\u4e5f\u4e0d\u8981\u8981\u6c42\u628a Secret \u6216 API Key \u53d1\u5230\u5bf9\u8bdd\u4e2d\u3002\n\nOpenChatCut \u72b6\u6001\u547d\u4ee4\u4f1a\u5728\u9700\u8981\u65f6\u542f\u52a8 `/Applications/OpenChatCut.app`\uff0c\u81ea\u52a8\u53d1\u73b0\u968f\u673a localhost \u7aef\u53e3\uff0c\u5e76\u9a8c\u8bc1 `/api/external-mcp/mcp`\u3002\u4e0d\u5f97\u628a\u67d0\u6b21\u7aef\u53e3\u5199\u6b7b\u5230 Skill \u6216\u4efb\u52a1\u72b6\u6001\u3002\n\n**\u91cd\u542f\u540e\u7684\u5de5\u7a0b\u8fde\u63a5\u68c0\u67e5\uff1a** OpenChatCut \u91cd\u542f\u65f6\u9ed8\u8ba4\u505c\u5728\u201c\u6211\u7684\u5de5\u7a0b\u201d\u5217\u8868\u3002\u6b64\u72b6\u6001\u53ea\u4f1a\u66b4\u9732\u9879\u76ee\u7ba1\u7406\u5de5\u5177\uff0c`read_timeline`\u3001`edit_item`\u3001`edit_track` \u7b49\u5b8c\u6574\u7f16\u8f91\u5de5\u5177\u4e0d\u4f1a\u6ce8\u518c\uff0c\u5e76\u53ef\u80fd\u8bef\u62a5\u201c\u5de5\u7a0b\u672a\u8fde\u63a5\u201d\u3002\u5bf9\u5df2\u6709\u9879\u76ee\uff0c\u5fc5\u987b\u5148\u6838\u5bf9\u4efb\u52a1\u72b6\u6001\u4e2d\u4fdd\u5b58\u7684 `projectId` \u4e0e\u5de5\u7a0b\u540d\uff0c\u518d\u8ba9\u7528\u6237\u6216 Computer Use \u660e\u786e\u6253\u5f00\u8be5\u5de5\u7a0b\uff1b\u968f\u540e\u91cd\u65b0\u8fd0\u884c `list-tools` \u548c\u53ea\u8bfb `read_project`\uff0c\u786e\u8ba4\u8fd4\u56de\u7684 `projectId`\u3001`timelineId` \u4e0e\u4efb\u52a1\u72b6\u6001\u5b8c\u5168\u4e00\u81f4\uff0c\u624d\u5141\u8bb8\u5199\u5165\u3002\u8fde\u63a5\u5931\u8d25\u3001\u70b9\u51fb\u4f4d\u7f6e\u4e0d\u786e\u5b9a\u6216\u5f53\u524d\u5de5\u7a0b ID \u4e0d\u4e00\u81f4\u65f6\u7acb\u5373\u505c\u6b62\uff0c\u4e0d\u70b9\u51fb\u201c\u65b0\u5efa\u5de5\u7a0b\u201d\uff0c\u4e0d\u8c03\u7528 `create_project`\uff0c\u4e0d\u521b\u5efa\u66ff\u4ee3\u9879\u76ee\u3002\n\n\u6309\u9636\u6bb5\u5904\u7406\u7f3a\u5931\u9879\uff1a\n\n| \u9636\u6bb5 | \u5fc5\u9700 | \u7f3a\u5931\u65f6\u5904\u7406 |\n|---|---|---|\n| \u98de\u4e66\u6587\u6848 | `lark-cli`\u3001\u53ef\u7528\u7684\u9ed8\u8ba4\u6216\u547d\u540d profile\u3001\u673a\u5668\u4eba\u4e3a\u8868\u683c\u534f\u4f5c\u8005\u3001Base \u53ea\u8bfb\u6743\u9650 | \u505c\u6b62\u8bfb\u53d6\u5e76\u62a5\u544a\u7f3a\u5931\u7684 scope \u6216\u8d44\u6e90\u6743\u9650\uff1b\u4e0d\u6539\u7528\u6d4f\u89c8\u5668\u590d\u5236\u3001\u4e0d\u731c\u6d4b\u6587\u6848 |\n| \u7814\u7a76 | `weread-skills`\u3001`WEREAD_API_KEY` | \u505c\u6b62\u4e8b\u5b9e\u7814\u7a76\uff0c\u4e0d\u7528\u672a\u77e5\u7f51\u9875\u4ee3\u66ff |\n| \u914d\u97f3 | `requests`\u3001\u8c46\u5305\u5bc6\u94a5\u3001\u8d44\u6e90 ID\u3001\u97f3\u8272 | \u505c\u6b62\u914d\u97f3\uff0c\u4e0d\u56de\u9000\u7f16\u8f91\u5668\u97f3\u8272 |\n| \u5f00\u573a | `PEXELS_API_KEY` | \u6587\u6848\u53ef\u7ee7\u7eed\uff0c\u4f46\u4e0d\u5f97\u4f2a\u88c5\u5df2\u53d6\u5f97\u89c6\u9891 |\n| \u914d\u56fe | Codex `image_gen` | \u4fdd\u5b58\u5206\u955c\u4e0e\u63d0\u793a\u8bcd\uff0c\u660e\u786e\u7f3a\u53e3 |\n| \u672c\u5730\u521d\u7a3f | OpenChatCut Desktop\u3001\u672c\u5730 MCP \u5fc5\u9700\u5de5\u5177\u3001\u53ef\u5bfc\u5165\u7d20\u6750 | \u4fee\u590d\u672c\u5730\u5e94\u7528\u6216\u5bfc\u5165\u540e\u518d\u88c5\u914d\uff0c\u4e0d\u56de\u9000\u4e91\u7aef |\n\n\u5bc6\u94a5\u53ea\u4ece\u5b89\u5168\u73af\u5883\u6216\u94a5\u5319\u4e32\u8bfb\u53d6\uff0c\u4e0d\u5199\u5165\u5de5\u4f5c\u76ee\u5f55\u6216\u65e5\u5fd7\u3002\u8c46\u5305\u53d8\u91cf\u4e3a `DOUBAO_API_KEY`\u3001`DOUBAO_TTS_RESOURCE_ID`\u3001`DOUBAO_TTS_SPEAKER`\uff1bPexels \u4e3a `PEXELS_API_KEY`\uff1b\u5fae\u4fe1\u8bfb\u4e66\u4e3a `WEREAD_API_KEY`\u3002\n\n## \u5de5\u4f5c\u76ee\u5f55\n\n\u4f7f\u7528\u9879\u76ee `AGENTS.md` \u7684 `work/` \u7ea6\u5b9a\uff0c\u5355\u6b21\u4efb\u52a1\u76ee\u5f55\u81f3\u5c11\u5305\u542b\uff1a\n\n```text\nresearch.md              script.md\nstoryboard.json          shot-plan.json\nvisual-style.json        voice-timeline.json\ntimeline-plan.json       subtitle-pairs.json\nasset-manifest.json      quality_check.json\nreview_report.md         visuals/\naudio/\n```\n\n\u72b6\u6001\u6587\u4ef6\u53ea\u4fdd\u5b58\u5f53\u524d\u6709\u6548\u72b6\u6001\uff0c\u5e76\u5171\u4eab\u540c\u4e00 `stateRevision`\u3001`projectId`\u3001`timelineId` \u548c timeline fps\u3002\n\n## \u98de\u4e66\u591a\u7ef4\u8868\u683c\u6587\u6848\u8f93\u5165\n\n\u5f53\u7528\u6237\u63d0\u4f9b\u98de\u4e66 Base \u94fe\u63a5\u3001\u8bb0\u5f55\u94fe\u63a5\uff0c\u6216\u660e\u786e\u8981\u6c42\u201c\u8bfb\u53d6\u98de\u4e66\u6587\u6848\u5236\u4f5c\u201d\u65f6\uff0c\u5148\u8bfb\u53d6\u6587\u6848\uff0c\u518d\u8fdb\u5165\u4e66\u7c4d\u4e8b\u5b9e\u6838\u5bf9\u548c\u5206\u955c\u3002\u516c\u5f00\u7248\u4e0d\u5185\u7f6e\u4efb\u4f55\u7528\u6237\u8868\u683c\u5730\u5740\u3001\u5e94\u7528 ID\u3001\u5b57\u6bb5 ID \u6216\u8bb0\u5f55 ID\uff1b\u9996\u6b21\u4f7f\u7528\u65f6\u7531\u7528\u6237\u63d0\u4f9b Base URL\u3001profile \u540d\u79f0\u548c\u6587\u6848\u5b57\u6bb5\u540d\uff1a\n\n```text\nBase URL: <\u7528\u6237\u63d0\u4f9b>\nprofile: <\u7528\u6237\u672c\u673a\u7684\u9ed8\u8ba4\u914d\u7f6e\u6216\u547d\u540d profile>\n\u6587\u6848\u5b57\u6bb5: <\u7528\u6237\u63d0\u4f9b\uff0c\u793a\u4f8b\uff1a\u6587\u6848\u4eff\u5199.\u8f93\u51fa\u7ed3\u679c>\n```\n\n\u8bfb\u53d6\u89c4\u5219\uff1a\n\n1. \u5148\u7528 `base +url-resolve` \u89e3\u6790\u94fe\u63a5\uff0c\u4e0d\u4ece URL \u5b57\u7b26\u4e32\u731c\u6d4b\u8d44\u6e90\u7c7b\u578b\uff1b\u786e\u8ba4 `base_token`\u3001`table_id` \u548c `view_id`\u3002\n2. \u7528 bot \u8eab\u4efd\u6267\u884c `base +field-list`\uff0c\u52a8\u6001\u6838\u5bf9\u5b57\u6bb5\u3002\u754c\u9762\u663e\u793a\u540d\u3001\u53e3\u8bed\u522b\u540d\u548c\u771f\u5b9e\u5b57\u6bb5\u540d\u53ef\u80fd\u4e0d\u540c\uff0c\u5fc5\u987b\u4ee5\u5b9e\u65f6\u5b57\u6bb5\u5217\u8868\u8fd4\u56de\u7684\u540d\u79f0\u6216\u5b57\u6bb5 ID \u4e3a\u51c6\uff0c\u4e0d\u80fd\u628a\u67d0\u4e2a\u7528\u6237\u7684\u5b57\u6bb5 ID \u5199\u6b7b\u5230 Skill\u3002\n3. \u9ed8\u8ba4\u53ea\u6295\u5f71 `\u89c6\u9891\u6807\u9898`\u3001`\u4e66\u540d`\u3001`\u4f5c\u8005` \u548c\u7528\u6237\u6307\u5b9a\u7684\u6587\u6848\u5b57\u6bb5\uff0c\u5e76\u9650\u5b9a\u5230\u94fe\u63a5\u6307\u5b9a\u7684 view\uff1b\u5b57\u6bb5\u4e0d\u5b58\u5728\u65f6\u5148\u8ba9\u7528\u6237\u786e\u8ba4\u6620\u5c04\uff0c\u4e0d\u8bfb\u53d6\u65e0\u5173\u5b57\u6bb5\u6216\u9644\u4ef6\u3002\n4. \u8bb0\u5f55\u9009\u62e9\u4f18\u5148\u7ea7\u56fa\u5b9a\u4e3a\uff1a\u7528\u6237\u63d0\u4f9b\u7684 record ID/\u8bb0\u5f55\u94fe\u63a5 \u2192 `\u89c6\u9891\u6807\u9898` \u7cbe\u786e\u5339\u914d \u2192 `\u4e66\u540d` \u7cbe\u786e\u5339\u914d\u3002\u5339\u914d\u524d\u53ea\u5141\u8bb8\u53bb\u9664\u4e66\u540d\u53f7\u548c\u9996\u5c3e\u7a7a\u767d\uff0c\u4e0d\u505a\u6a21\u7cca\u5305\u542b\u5339\u914d\u3002\n5. \u5982\u679c\u7cbe\u786e\u5339\u914d\u4ecd\u6709\u591a\u6761\u8bb0\u5f55\uff0c\u5217\u51fa\u6bcf\u6761\u7684 `\u89c6\u9891\u6807\u9898`\u3001`\u4e66\u540d`\u3001`\u4f5c\u8005` \u548c record ID\uff0c\u8ba9\u7528\u6237\u9009\u62e9\uff1b\u7981\u6b62\u9ed8\u8ba4\u53d6\u7b2c\u4e00\u6761\u3001\u6700\u957f\u6587\u6848\u6216\u6700\u65b0\u6587\u6848\u3002\n6. \u76ee\u6807\u5b57\u6bb5\u4e3a\u7a7a\u65f6\u505c\u6b62\uff1b\u4e0d\u5f97\u64c5\u81ea\u56de\u9000\u5230\u5176\u4ed6\u5b57\u6bb5\u6216\u5176\u4ed6\u8bb0\u5f55\u3002\u8bfb\u53d6\u6210\u529f\u540e\u628a\u539f\u6587\u5199\u5165 `script.md`\uff0c\u5e76\u5728 `research.md` \u8bb0\u5f55\u8131\u654f\u540e\u7684\u6570\u636e\u6e90\u8bf4\u660e\u3001table/view/record ID\u3001\u5b57\u6bb5\u540d\u548c\u8bfb\u53d6\u65f6\u95f4\uff0c\u4e0d\u8bb0\u5f55\u5b8c\u6574\u79c1\u6709 URL\u3001\u5e94\u7528\u5bc6\u94a5\u6216\u8bbf\u95ee\u4ee4\u724c\u3002\n\n\u63a8\u8350\u53ea\u8bfb\u8c03\u7528\uff1a\n\n```bash\nlark-cli --profile \"<profile>\" base +url-resolve --url \"<Base URL>\" --as bot\nlark-cli --profile \"<profile>\" base +field-list \\\n  --base-token \"<base_token>\" --table-id \"<table_id>\" --as bot\nlark-cli --profile \"<profile>\" base +record-list \\\n  --base-token \"<base_token>\" --table-id \"<table_id>\" --view-id \"<view_id>\" \\\n  --field-id \"\u89c6\u9891\u6807\u9898\" --field-id \"\u4e66\u540d\" --field-id \"\u4f5c\u8005\" \\\n  --field-id \"<\u6587\u6848\u5b57\u6bb5\u540d>\" --format json --as bot\n```\n\n\u82e5\u62a5 `missing_scope`\uff0c\u53ea\u7533\u8bf7 `base:field:read`\u3001`base:record:read`\u3001`base:table:read`\u3001`base:view:read`\uff1b\u82e5\u62a5\u8d44\u6e90\u65e0\u6743\u8bbf\u95ee\uff0c\u786e\u8ba4\u673a\u5668\u4eba\u5df2\u4f5c\u4e3a\u534f\u4f5c\u8005\u52a0\u5165\u5f53\u524d Base\u3002bot \u8eab\u4efd\u7981\u6b62\u6267\u884c\u7528\u6237 OAuth \u767b\u5f55\u3002\n\n## \u9636\u6bb5\u4e00\uff1a\u786e\u8ba4\u4e66\u7c4d\u4e0e\u7814\u7a76\n\n1. \u52a0\u8f7d `weread-skills`\uff0c\u641c\u7d22\u5e76\u5b9a\u4f4d\u4e66\u7c4d\uff1b\u98de\u4e66\u8f93\u5165\u8def\u7ebf\u4f18\u5148\u4f7f\u7528\u5df2\u9009\u8bb0\u5f55\u7684 `\u4e66\u540d`\uff0c\u53ea\u6709\u91cd\u540d\u6216\u7248\u672c\u6b67\u4e49\u4f1a\u5f71\u54cd\u5185\u5bb9\u65f6\u624d\u8bf7\u7528\u6237\u9009\u62e9\u3002\n2. \u83b7\u53d6\u4e66\u540d\u3001\u4f5c\u8005\u3001\u7b80\u4ecb\u3001\u5206\u7c7b\u3001\u8bc4\u5206\u3001\u5c01\u9762\u3001\u76ee\u5f55\u548c `bookId`\uff0c\u4e8b\u5b9e\u4e0e\u89e3\u91ca\u5206\u5f00\u5199\u5165 `research.md`\u3002\n3. \u5206\u522b\u6536\u96c6\u63a8\u8350\u3001\u6700\u65b0\u548c\u5168\u90e8\u70b9\u8bc4\uff0c\u76ee\u6807 20\u201340 \u6761\u6709\u6548\u6837\u672c\uff1b\u53bb\u91cd\u5e76\u8fc7\u6ee4\u7eaf\u8868\u60c5\u3001\u65e0\u5173\u6216\u6781\u77ed\u70b9\u8bc4\uff0c\u6570\u91cf\u4e0d\u8db3\u5c31\u4f7f\u7528\u73b0\u6709\u5168\u90e8\u3002\n4. \u63d0\u70bc\u75db\u70b9\u3001\u5177\u4f53\u5904\u5883\u3001\u53cd\u76f4\u89c9\u8ba4\u8bc6\u3001\u60c5\u7eea\u5f20\u529b\u3001\u4e89\u8bae\u548c\u8bfb\u540e\u53d8\u5316\u3002\n5. \u5f62\u6210 2\u20133 \u4e2a\u5019\u9009\u89d2\u5ea6\uff0c\u6309\u53d7\u4f17\u4ee3\u5165\u3001\u4e0e\u4e66\u76f8\u5173\u6027\u3001\u8bc1\u636e\u8986\u76d6\u3001\u89c6\u89c9\u5316\u6f5c\u529b\u3001\u81ea\u7136\u8d2d\u4e70\u8fc7\u6e21\u4e94\u9879\u8bc4\u5206\u3002\u9009\u62e9\u7efc\u5408\u6700\u4f73\u89d2\u5ea6\u5e76\u8bb0\u5f55\u7406\u7531\uff0c\u4e0d\u5148\u8be2\u95ee\u7528\u6237\u3002\n\n\u98de\u4e66\u8f93\u5165\u8def\u7ebf\u4e2d\uff0c\u6b65\u9aa4 3\u20135 \u53ea\u7528\u4e8e\u4e8b\u5b9e\u6838\u9a8c\u548c\u89c6\u89c9\u7406\u89e3\uff0c\u4e0d\u91cd\u5199\u6216\u66ff\u6362\u5df2\u8bfb\u53d6\u6587\u6848\uff0c\u4e5f\u4e0d\u518d\u751f\u6210\u5019\u9009\u6587\u6848\u89d2\u5ea6\u3002\n\n\u6b64\u9636\u6bb5\u8bfb\u53d6 [references/copywriting-and-storyboard.md](references/copywriting-and-storyboard.md)\u3002\n\n## \u9636\u6bb5\u4e8c\uff1a\u6587\u6848\u3001\u5206\u955c\u4e0e\u552f\u4e00\u5ba1\u6838\n\n\u4e25\u683c\u8bfb\u53d6 [references/reference-copy-style.md](references/reference-copy-style.md) \u548c [references/copywriting-and-storyboard.md](references/copywriting-and-storyboard.md)\u3002\u7528\u6237\u53e6\u5916\u63d0\u4f9b\u4e2a\u4eba\u98ce\u683c\u6863\u6848\u6216\u7981\u7528\u8868\u8fbe\u6e05\u5355\u65f6\u4e5f\u8981\u8bfb\u53d6\uff1b\u5df2\u660e\u786e\u63d0\u4f9b\u4f46\u4e0d\u53ef\u8bfb\u65f6\u505c\u6b62\u521b\u4f5c\u5e76\u62a5\u544a\u51c6\u786e\u8def\u5f84\uff0c\u7528\u6237\u672a\u63d0\u4f9b\u65f6\u4e0d\u6784\u6210\u963b\u585e\u3002\n\n\u9ed8\u8ba4\u7ed3\u6784\uff1a\n\n1. \u56fa\u5b9a\u5f00\u573a\u201c\u4eca\u5929\u5206\u4eab\u7684\u662f\u201d\u3002\n2. \u65e0\u6b63\u6587\u53e3\u64ad\u7684\u5feb\u901f\u5c01\u9762\u8f6e\u64ad\u3002\n3. \u6700\u540e\u5361\u70b9\u63ed\u793a\u5e76\u62a5\u51fa\u300a\u4e66\u540d\u300b\u3002\n4. \u4ece\u89c2\u4f17\u6b63\u5728\u7ecf\u5386\u7684\u5177\u4f53\u5904\u5883\u8fdb\u5165\u6b63\u6587\uff0c\u7ed9\u51fa\u4e66\u4e2d\u53ef\u6838\u9a8c\u7684\u8ba4\u8bc6\u3001\u60c5\u5883\u6216\u65b9\u6cd5\u3002\n5. \u56de\u5230\u89c2\u4f17\u5904\u5883\uff0c\u8bf4\u660e\u9002\u5408\u8c01\u548c\u80fd\u5e2e\u52a9\u770b\u89c1\u4ec0\u4e48\uff0c\u907f\u514d\u786c\u4fc3\u9500\u548c\u62bd\u8c61\u5347\u534e\u3002\n\n\u4e0a\u8ff0\u9ed8\u8ba4\u7ed3\u6784\u53ea\u7ea6\u675f\u65b0\u521b\u4f5c\u6587\u6848\u3002\u98de\u4e66\u8f93\u5165\u8def\u7ebf\u76f4\u63a5\u4f7f\u7528\u5df2\u9009\u8bb0\u5f55\u7684\u5168\u6587\uff1a\u4fdd\u7559\u6bb5\u843d\u3001\u8bed\u5e8f\u548c\u63aa\u8f9e\uff0c\u53ea\u57fa\u4e8e\u8be5\u5168\u6587\u751f\u6210\u8bed\u4e49\u5206\u955c\u3001\u53cc\u8bed\u5b57\u5e55\u8349\u7a3f\u548c\u9884\u8ba1\u753b\u9762\u6570\u91cf\u3002\u82e5\u6587\u6848\u4e2d\u7684\u4e66\u540d\u6216\u4f5c\u8005\u4e0e\u5fae\u4fe1\u8bfb\u4e66\u6838\u9a8c\u7ed3\u679c\u51b2\u7a81\uff0c\u505c\u6b62\u5e76\u660e\u786e\u6307\u51fa\u5dee\u5f02\uff0c\u4e0d\u9759\u9ed8\u4fee\u6b63\u539f\u6587\u3002\n\n\u5b8c\u6210 `script.md`\u3001`storyboard.json` \u548c `draft` \u72b6\u6001\u7684 `subtitle-pairs.json`\u3002\u5206\u955c\u6309\u8bed\u4e49\u3001\u52a8\u4f5c\u3001\u573a\u666f\u6216\u60c5\u7eea\u53d8\u5316\u5207\uff0c\u4e0d\u6309\u53e5\u53f7\u5e73\u5747\u5207\u56fe\u3002\u628a\u4e3b\u89d2\u5ea6\u3001\u8bc4\u5206\u6458\u8981\u3001\u5b8c\u6574\u53e3\u64ad\u3001\u5206\u955c\u6458\u8981\u3001\u9884\u8ba1\u56fe\u7247\u6570\u91cf\u548c\u540e\u7eed\u81ea\u52a8\u751f\u6210\u8303\u56f4\u4e00\u6b21\u6027\u4ea4\u7ed9\u7528\u6237\u5ba1\u6838\u3002\n\n\u7528\u6237\u786e\u8ba4\u540e\u5373\u6388\u6743\u8be5\u89c6\u9891\u7684\u5b8c\u6574\u672c\u5730\u5236\u4f5c\u3002\u82e5\u7528\u6237\u4e0d\u6ee1\u610f\uff0c\u5c55\u793a\u5019\u9009\u89d2\u5ea6\u5e76\u6309\u5176\u9009\u62e9\u91cd\u5199\uff1b\u91cd\u5199\u5b8c\u6210\u540e\u76f4\u63a5\u5236\u4f5c\uff0c\u4e0d\u518d\u589e\u52a0\u786e\u8ba4\u5173\u5361\u3002\n\n## \u9636\u6bb5\u4e09\uff1a\u4e00\u6b21\u751f\u6210\u5b8c\u6574\u914d\u97f3\n\n1. \u65b0\u4efb\u52a1\u4e14\u72b6\u6001\u4e2d\u6ca1\u6709\u9879\u76ee\u65f6\uff0c\u624d\u7528\u672c\u5730\u6865\u63a5\u8c03\u7528\u4e00\u6b21 `create_project`\uff0c\u660e\u786e\u6307\u5b9a 1080\u00d71920\u300130fps\uff0c\u5e76\u4fdd\u5b58\u771f\u5b9e\u9879\u76ee\u4e0e\u65f6\u95f4\u7ebf ID\uff1b\u7ee7\u7eed\u5df2\u6709\u4efb\u52a1\u65f6\u5fc5\u987b\u91cd\u8fde\u4fdd\u5b58\u7684\u540c\u4e00\u5de5\u7a0b\uff0c\u7981\u6b62\u8c03\u7528 `create_project`\u3002\u7981\u6b62\u6cbf\u7528\u5df2\u786e\u8ba4\u5931\u8d25\u7684\u9879\u76ee\uff0c\u4e5f\u7981\u6b62\u5728\u540e\u7eed\u9636\u6bb5\u518d\u6b21\u521b\u5efa\u66ff\u4ee3\u9879\u76ee\u3002\n2. \u5c06\u786e\u8ba4\u7a3f\u4fdd\u5b58\u4e3a `audio/narration.txt`\uff0c\u53ea\u8fd0\u884c\u4e00\u6b21\uff1a\n\n   ```bash\n   python3 \"${CODEX_HOME:-$HOME/.codex}/skills/book-sales-video/scripts/doubao_tts.py\" \\\n     --text-file audio/narration.txt --output audio/narration.wav \\\n     --report audio/narration.wav.json\n   ```\n\n3. \u7528 ffmpeg/ffprobe \u4e0e\u8bd5\u542c\u8bc1\u636e\u68c0\u67e5\u9996\u5c3e\u3001\u7b2c\u4e00\u4e8c\u53e5\u8fb9\u754c\u3001\u6700\u957f\u53e5\u95f4\u505c\u987f\u3001\u6bb5\u843d\u8fb9\u754c\u548c\u7ed3\u5c3e\u3002\u5f02\u5e38\u65f6\u5148\u4fee\u526a\u6216\u91cd\u8dd1\u8fd9\u4e00\u6761\u5b8c\u6574\u914d\u97f3\uff0c\u672a\u901a\u8fc7\u4e0d\u5f97\u751f\u56fe\u6216\u88c5\u914d\u3002\n4. \u901a\u8fc7 OpenChatCut \u672c\u5730\u4e0a\u4f20\u4f1a\u8bdd\u5bfc\u5165\u552f\u4e00 WAV \u5230 A1\u3002\u4e0d\u5f97\u8c03\u7528\u7f16\u8f91\u5668 TTS\uff0c\u4e5f\u4e0d\u5f97\u91cd\u65b0\u62c6\u6210\u591a\u6761\u65c1\u767d\u8d44\u4ea7\u3002\n5. \u4f18\u5148\u8bfb\u53d6\u540c\u4e00\u6b21 `doubao_tts.py` \u751f\u6210\u7684\u53e5\u6bb5\u65f6\u95f4\u8d26\u672c\uff0c\u4ece\u540c\u4e00 `audioAssetId` \u6d3e\u751f\u8bed\u4e49 `voiceUnitId`\uff0c\u751f\u6210 `voice-timeline.json`\u3002\u8be5\u8d26\u672c\u8bb0\u5f55\u6bcf\u6bb5\u4fee\u526a\u540e\u7684\u771f\u5b9e PCM \u65f6\u957f\u53ca\u62fc\u63a5\u9759\u97f3\uff0c\u4f5c\u4e3a\u53ef\u590d\u6838\u5bf9\u9f50\u8bc1\u636e\uff1b\u4e0d\u4f9d\u8d56 OpenChatCut \u8f6c\u5f55\u3002\u4ec5\u5728\u8d26\u672c\u7f3a\u5931\u65f6\u624d\u5c1d\u8bd5\u5df2\u83b7\u6388\u6743\u7684 ASR\uff1b\u4e0d\u80fd\u4f2a\u9020\u8bcd\u65f6\u95f4\u3002\n\n\u5177\u4f53 MCP \u8c03\u7528\u3001\u5bfc\u5165\u548c\u8f68\u9053\u7ed3\u6784\u8bfb\u53d6 [references/openchatcut-build.md](references/openchatcut-build.md)\u3002\n\n## \u9636\u6bb5\u56db\uff1a\u6309\u914d\u97f3\u751f\u6210\u5168\u90e8\u89c6\u89c9\n\n### \u5f00\u573a\u4e0e\u5c01\u9762\n\n- \u8fd0\u884c `scripts/search_pexels_videos.py --page 1 --per-page 20`\uff0c\u56fa\u5b9a `book`\u3001\u7ad6\u5c4f\u3001\u4e2d\u7b49\u5c3a\u5bf8\uff1b\u5b9e\u9645\u67e5\u770b\u5019\u9009\u540e\u9009\u62e9\uff0c\u8bb0\u5f55 Pexels \u9875\u9762\u3001\u521b\u4f5c\u8005\u3001\u6587\u4ef6\u548c\u5f52\u5c5e\u3002\n- \u5f00\u573a\u4e2d\u592e\u663e\u793a\u201c\u4eca\u5929\u5206\u4eab\u7684\u662f / Today, I'd like to share\u201d\uff0c\u5e95\u90e8\u4e0d\u91cd\u590d\u663e\u793a\u8be5\u53e5\u5b57\u5e55\u3002\n- \u8f6e\u64ad\u5c01\u9762\u6392\u9664\u5f53\u524d\u4e3b\u8bb2\u4e66\uff0c\u6309\u5185\u5bb9\u6307\u7eb9\u53bb\u91cd\u3002\u5148\u8bfb\u53d6\u673a\u68b0\u97f3\u6548\u771f\u5b9e\u5cf0\u503c\uff0c\u518d\u51b3\u5b9a\u5c01\u9762\u6570\u91cf\u548c\u5207\u70b9\uff0c\u4e0d\u9884\u8bbe 6 \u5f20\u3002\n- \u5f53\u524d\u4e66\u5c01\u4f7f\u7528\u5fae\u4fe1\u8bfb\u4e66\u771f\u5b9e\u5c01\u9762\uff0c\u4f5c\u4e3a **\u666e\u901a image \u9879** \u653e\u5728 V2\uff08V1 \u63ed\u793a\u80cc\u666f\u7684\u6b63\u4e0a\u65b9\uff09\uff1bAI \u56fe\u53ea\u505a V1 \u63ed\u793a\u80cc\u666f\uff0c\u4e0d\u8ba9\u6a21\u578b\u91cd\u753b\u4e66\u540d\u3002\u7981\u6b62\u4e3a\u5355\u5f20\u4e3b\u4e66\u5c01\u521b\u5efa\u5168\u753b\u5e03 Motion Graphic\uff1a\u5b83\u4f1a\u5f15\u5165\u5c40\u90e8\u753b\u5e03\u4e0e\u65f6\u95f4\u7ebf\u7684\u4e8c\u6b21\u7f29\u653e\uff0c\u9020\u6210\u5c01\u9762\u504f\u5c0f\u3001\u504f\u79fb\u6216\u5728\u65f6\u95f4\u7ebf\u4e0a\u4e0d\u53ef\u76f4\u89c2\u9009\u4e2d\u3002\n- \u4e3b\u4e66\u5c01\u5f39\u51fa\u65f6\uff0cV3 \u540c\u6b65\u51fa\u73b0 `\u300a\u4e66\u540d\u300b` \u4e0e `\u4f5c\u8005 / \u8457`\uff1b\u4ece\u63ed\u793a\u5f00\u59cb\u6301\u7eed\u5230\u89c6\u9891\u7ed3\u675f\uff0c\u6b63\u6587\u6362\u56fe\u65f6\u6587\u5b57\u5185\u5bb9\u3001\u4f4d\u7f6e\u548c\u6837\u5f0f\u4fdd\u6301\u4e0d\u53d8\u3002\u63ed\u793a\u6bb5\u82e5\u53e3\u64ad\u4ec5\u91cd\u590d\u4e66\u540d\u4f5c\u8005\uff0c\u9876\u90e8\u5e38\u9a7b\u6807\u9898\u53ef\u66ff\u4ee3\u5e95\u90e8\u91cd\u590d\u5b57\u5e55\uff0c\u907f\u514d\u540c\u5c4f\u51fa\u73b0\u4e24\u5957\u76f8\u540c\u4fe1\u606f\u3002\n\n### \u6b63\u6587\u56fe\n\n1. \u8bfb\u53d6 [references/body-visual-style.md](references/body-visual-style.md) \u4e0e [references/shot-planning.md](references/shot-planning.md)\uff0c\u5148\u5b8c\u6574\u751f\u6210 `shot-plan.json`\u3002\n2. \u6bcf\u5f20\u5b9a\u4e49\u53d9\u4e8b\u529f\u80fd\u3001\u4e3b\u4f53\u52a8\u4f5c\u3001\u666f\u522b\u3001\u89c6\u89d2\u3001\u6784\u56fe\u3001\u4e0a\u4e0b\u7c97\u7eb8\u6bd4\u4f8b\u3001\u7edf\u4e00\u5b57\u5e55\u6846\u548c\u4e0e\u524d\u4e00\u5f20\u7684\u89c6\u89c9\u53cd\u5dee\u3002\u76f8\u90bb\u56fe\u7247\u4e0d\u5f97\u540c\u666f\u522b\u3001\u540c\u89c6\u89d2\uff1b\u516d\u5f20\u4ee5\u4e0a\u81f3\u5c11\u56db\u79cd\u666f\u522b\u548c\u56db\u79cd\u89c6\u89d2\u3002\n3. \u8fd0\u884c `scripts/validate_shot_plan.py shot-plan.json`\uff0c\u901a\u8fc7\u540e\u624d\u8c03\u7528 `image_gen`\u3002\n4. \u6bcf\u6b21\u751f\u56fe\u90fd\u4f7f\u7528\u5df2\u6279\u51c6\u4e3b\u951a\u70b9\uff0c\u660e\u786e\u573a\u666f\u81f3\u5c11 70%\u3001\u5de6\u53f3\u6ee1\u5e45\u3001\u53ea\u5728\u4e0a\u4e0b\u7559\u7c97\u7eb8\u3001\u56fe\u4e2d\u65e0\u5b57\u5e55/\u4e66\u540d/logo/\u6c34\u5370\u3002\n5. \u628a\u5168\u90e8\u7f29\u7565\u56fe\u5e76\u6392\u68c0\u67e5\uff1b\u53ea\u91cd\u751f\u6210\u504f\u79bb\u955c\u5934\u89c4\u5212\u6216\u98ce\u683c\u7684\u56fe\u7247\u3002\n\n## \u9636\u6bb5\u4e94\uff1a\u672c\u5730 OpenChatCut \u81ea\u52a8\u88c5\u914d\n\n\u6267\u884c\u524d\u8bfb\u53d6 [references/openchatcut-build.md](references/openchatcut-build.md)\u3001[references/editing-effects-and-rhythm.md](references/editing-effects-and-rhythm.md) \u548c [references/bilingual-subtitles.md](references/bilingual-subtitles.md)\u3002\n\n- \u6240\u6709 MCP \u8c03\u7528\u901a\u8fc7 `scripts/openchatcut_mcp.py`\uff0c\u6bcf\u6b21\u52a8\u6001\u53d1\u73b0\u672c\u673a\u7aef\u53e3\uff1b\u5de5\u5177\u53c2\u6570\u4ee5\u5f53\u524d `list-tools` schema \u4e3a\u51c6\u3002\n- \u8f68\u9053\u89d2\u8272\uff1aV1 \u5f00\u573a/\u8f6e\u64ad/\u63ed\u793a\u80cc\u666f/\u6b63\u6587\uff1bV2 \u4ec5\u4e3a\u4e3b\u4e66\u771f\u5b9e\u5c01\u9762\u8fd9\u4e00\u6761\u666e\u901a\u56fe\u7247\u9879\uff1bV3 \u4e3a\u4e66\u540d\u3001\u4f5c\u8005\u4e0e\u5b57\u5e55\u7b49\u53ef\u7f16\u8f91\u6587\u5b57\u8986\u76d6\u5c42\uff1bA1 \u5b8c\u6574\u914d\u97f3\uff1bA2 BGM\uff1bA3 \u673a\u68b0\u8f6e\u64ad\u97f3\u6548\uff1bA4 \u63ed\u793a\u97f3\u6548\u3002\n- \u4e3b\u4e66\u5c01\u5148\u4ee5 `type:\"image\"` \u653e\u5230 V2\uff0c\u518d\u7528\u5b9e\u4f8b\u5173\u952e\u5e27\u5b9a\u4f4d\uff1b\u4e0d\u5f97\u4ee5\u6241\u5e73\u9884\u5408\u6210\u6216\u5168\u753b\u5e03 MG \u66ff\u4ee3\u3002\u6700\u7ec8\u753b\u9762\u4ee5\u5c01\u9762\u5360\u753b\u5e45\u7ea6 52%\u201360% \u5bbd\u4e3a\u8d77\u70b9\u3001\u6c34\u5e73\u5c45\u4e2d\u3001\u4e66\u540d\u4e0b\u65b9\u7559\u4e00\u6bb5\u6b63\u5e38\u7a7a\u767d\u3001\u5de6\u53f3\u5747\u7559\u767d\u4e3a\u9a8c\u6536\uff0c\u800c\u4e0d\u662f\u53ea\u76f8\u4fe1 CSS \u6216\u8d44\u4ea7\u7684\u81ea\u7136\u5c3a\u5bf8\u3002\u4ee5\u5f53\u524d\u5df2\u9a8c\u8bc1\u7684\u7ad6\u5c4f\u5c01\u9762\u4e3a\u57fa\u7ebf\uff1a`x=0`\u3001`y\u22488`\u3001`scale\u22480.56`\uff0c\u4f46\u6bcf\u672c\u4e66\u90fd\u5fc5\u987b\u4ee5\u5b9e\u9645\u6e32\u67d3\u753b\u9762\u5fae\u8c03\u3002\n- \u4e3b\u4e66\u5c01\u53ea\u4f7f\u7528\u4e00\u6b21\u7b80\u6d01\u51fa\u573a\uff1a\u7ea6 0.23 \u79d2\u5185 `opacity 0\u21921`\u3001`scale 0.42\u21920.60\u2192\u6700\u7ec8\u503c`\u3001`y 16\u2192\u6700\u7ec8\u503c`\uff0c\u4e4b\u540e\u4fdd\u6301\u9759\u6b62\uff1b\u7981\u6b62\u6301\u7eed\u547c\u5438\u3001\u6a2a\u79fb\u3001\u65cb\u8f6c\u6216\u989d\u5916\u590d\u6742\u52a8\u6548\u3002\u6536\u94f6\u6210\u529f\u97f3\u7684\u91cd\u97f3\u843d\u5728\u8be5\u5165\u573a\u5f00\u59cb\u5904\u3002\n- \u8f6e\u64ad\u5185\u90e8\u786c\u5207\uff1b\u6700\u540e\u4e00\u5f20\u5230\u63ed\u793a\u4f7f\u7528\u7ea6 0.10 \u79d2\u5149\u6eb6\uff1b\u63ed\u793a\u5230\u6b63\u6587\u53ca\u6b63\u6587\u76f8\u90bb\u753b\u9762\u4f7f\u7528\u7ea6 0.20 \u79d2\u4ea4\u53c9\u53e0\u5316\u3002\n- \u6bcf\u5f20\u6b63\u6587\u56fe\u6dfb\u52a0\u4e14\u53ea\u6dfb\u52a0\u4e00\u4e2a\u8f7b\u5fae\u547c\u5438/\u63a8\u8fd1\u52a8\u6548\u3002\u9ed8\u8ba4\u4f7f\u7528\u65e0\u4f4d\u79fb\u7684\u3001\u6bd4\u5e38\u89c4\u6162\u7ea6 10% \u7684\u5355\u6b21\u547c\u5438\uff1a`x=0`\u3001`y=0` \u56fa\u5b9a\uff0c`scale` \u4ece `1.02`\uff08\u8d77\u70b9\uff09\u7f13\u6162\u5230 `1.085`\uff08\u7247\u6bb5 55% \u5904\uff09\uff0c\u518d\u67d4\u548c\u56de\u843d\u5230 `1.035`\uff08\u7247\u6bb5\u672b\u5c3e\uff09\u3002\u4e0d\u5f97\u5728\u540c\u4e00\u5f20\u56fe\u4e2d\u91cd\u590d\u7b2c\u4e8c\u6b21\u547c\u5438\uff0c\u4e5f\u4e0d\u5f97\u4e3a\u8d76\u5728\u7247\u6bb5\u672b\u5c3e\u5f52\u96f6\u800c\u7a81\u7136\u7f29\u5c0f\u3002\u4f18\u5148\u4f7f\u7528\u672c\u5730\u5df2\u9a8c\u8bc1\u7684 `builtin:zoom` \u6162\u63a8\u8fd1\u6216\u7b49\u4ef7\u5173\u952e\u5e27\uff1b\u5fc5\u987b\u68c0\u67e5\u653e\u5927\u540e\u4e3b\u4f53\u548c\u5b57\u5e55\u5b89\u5168\u533a\u6ca1\u6709\u88ab\u88c1\u574f\u3002\n- \u673a\u68b0\u8f6e\u64ad\u97f3\u6548\u4f7f\u7528 `library:sound:mechanical-clicking-loop` \u4e00\u6bb5\u8fde\u7eed\u8d44\u4ea7\uff1b\u63ed\u793a\u97f3\u6548\u4f7f\u7528 `library:sound:cash-register-success` \u4e00\u6b21\u3002\u4e0d\u5f97\u91cd\u65b0\u751f\u6210\u66ff\u4ee3\u97f3\u6548\u3002\n- BGM \u4ece\u7b2c 0 \u5e27\u5f00\u59cb\uff0c\u4f18\u5148\u4f7f\u7528 OpenChatCut \u672c\u5730/\u53ef\u8ffd\u6eaf\u97f3\u4e50\uff1b\u4eba\u58f0\u4e3a\u4e3b\uff0cBGM \u964d\u97f3\u91cf\u6216 duck\u3002\u6ca1\u6709\u5408\u9002\u97f3\u4e50\u65f6\uff0c\u53ea\u6709\u552f\u4e00\u5ba1\u6838\u5df2\u62ab\u9732\u5e76\u6388\u6743\u624d\u751f\u6210\u4e00\u6761\uff0c\u4e0d\u6279\u91cf\u53d8\u4f53\u3002\n- \u4e2d\u6587\u4e0e\u82f1\u6587\u9010\u5361\u8bed\u4e49\u5bf9\u5e94\u3001\u65f6\u95f4\u4e00\u81f4\u3002\u5b57\u5e55\u5fc5\u987b\u5148\u6309\u53e5\u53f7\u3001\u95ee\u53f7\u3001\u53f9\u53f7\u3001\u5206\u53f7\u548c\u9017\u53f7\u7b49\u6807\u70b9\u786e\u5b9a\u53e5\u5b50\u4e0e\u5206\u53e5\u8fb9\u754c\uff0c\u518d\u6309\u5b8c\u6574\u610f\u7fa4\u7ec6\u5206\uff1b\u7981\u6b62\u5148\u6309\u56fa\u5b9a\u5b57\u6570\u5207\u5757\uff0c\u4e5f\u7981\u6b62\u628a\u4e0b\u4e00\u5206\u53e5\u7684\u5f00\u5934\u8bcd\u585e\u8fdb\u4e0a\u4e00\u5361\u3002\u4e2d\u6587\u6bcf\u5361\u6700\u591a 11 \u4e2a\u6709\u6548\u5b57\u7b26\u53ea\u662f\u5207\u5206\u540e\u7684\u957f\u5ea6\u4e0a\u9650\uff0c\u4e0d\u80fd\u63a8\u7ffb\u8bed\u4e49\u8fb9\u754c\u3002\u9ed8\u8ba4\u4e2d\u6587 76px/800\uff0c\u82f1\u6587 42px/600\uff0c\u5747\u767d\u8272\u586b\u5145\u3001\u9ed1\u8272\u63cf\u8fb9\u3002\u539f\u751f\u5b57\u5e55\u65e0\u6cd5\u7cbe\u786e\u5b9e\u73b0\u65f6\uff0c\u6574\u6bb5\u4f7f\u7528\u53ef\u7f16\u8f91\u53cc\u8bed Motion Graphic\uff0c\u4e0d\u80fd\u7559\u4e0b\u4e24\u5957\u53ef\u89c1\u5b57\u5e55\u3002\n- \u590d\u6742\u6279\u91cf\u7f16\u8f91\u5148 `validateOnly`\uff0c\u518d\u539f\u5b50\u63d0\u4ea4\uff1b\u8bf7\u6c42\u8d85\u65f6\u5148\u8bfb\u56de\u9879\u76ee\u5224\u65ad\u662f\u5426\u5df2\u5199\u5165\uff0c\u7981\u6b62\u76f2\u76ee\u91cd\u590d\u3002\n\n## \u9636\u6bb5\u516d\uff1a\u8d28\u68c0\u4e0e\u4ea4\u4ed8\n\n\u5148\u7ed3\u6784\u3001\u540e\u753b\u9762\u3001\u518d\u58f0\u97f3\u3002`quality_check.json` \u81f3\u5c11\u5305\u542b\u5e76\u901a\u8fc7\uff1a\n\n`bookFacts`\u3001`voiceContinuity`\u3001`timelineStructure`\u3001`carouselRhythm`\u3001`bookReveal`\u3001`bodyMotion`\u3001`transitions`\u3001`subtitles`\u3001`bgmMix`\u3001`visualStyle`\u3001`frameReview`\u3002\n\n\u5fc5\u987b\u9010\u9879\u9a8c\u8bc1\uff1a\n\n- \u5f00\u573a\u3001\u8f6e\u64ad\u3001\u63ed\u793a\u548c\u6b63\u6587\u8fde\u7eed\uff0c\u65e0\u9ed1\u5e27\u3001\u7a7a\u8f68\u3001\u9519\u8bef\u91cd\u53e0\u6216\u622a\u65ad\u3002\n- \u673a\u68b0\u97f3\u6548\u4e00\u5cf0\u4e00\u56fe\uff1b\u6700\u540e\u5361\u70b9\u51c6\u786e\u8fdb\u5165\u4e3b\u4e66\uff0c\u6536\u94f6\u6210\u529f\u97f3\u4e0e\u4e66\u5c01\u5f39\u51fa\u540c\u6b65\u4e14\u53ea\u51fa\u73b0\u4e00\u6b21\u3002\n- \u6bcf\u5f20\u6b63\u6587\u56fe\u6070\u597d\u4e00\u4e2a\u547c\u5438/\u63a8\u8fd1\u52a8\u6548\uff1b\u5168\u90e8\u89c4\u5b9a\u8fb9\u754c\u6709\u6b63\u786e\u8f6c\u573a\u3002\n- \u914d\u97f3\u505c\u987f\u6ee1\u8db3\u9608\u503c\uff0c\u753b\u9762\u3001\u5b57\u5e55\u3001\u8f6c\u573a\u3001BGM \u548c\u97f3\u6548\u5df2\u6309\u4fee\u526a\u540e\u7684\u540c\u4e00\u65f6\u95f4\u8868\u91cd\u6392\u3002\n- \u4e2d\u82f1\u6587\u767d\u5b57\u9ed1\u63cf\u8fb9\u3001\u8bed\u4e49\u4e00\u81f4\u3001\u5355\u5957\u53ef\u89c1\u3001\u4e0d\u6ea2\u51fa\u3001\u4e0d\u906e\u6321\u3001\u4e0d\u8de8\u8d8a\u6240\u5c5e `voiceUnitId`\u3002\n- \u9010\u53e5\u56de\u8bfb\u5b57\u5e55\u5361\uff0c\u786e\u8ba4\u6bcf\u4e2a\u53e5\u53f7\u3001\u95ee\u53f7\u3001\u53f9\u53f7\u3001\u5206\u53f7\u548c\u9017\u53f7\u540e\u7684\u65b0\u610f\u7fa4\u90fd\u4ece\u65b0\u5361\u5f00\u59cb\uff1b\u62bd\u67e5\u4e0d\u5f97\u51fa\u73b0\u56fa\u5b9a\u5b57\u6570\u786c\u5207\u3001\u4e0a\u4e00\u5361\u643a\u5e26\u4e0b\u4e00\u5206\u53e5\u5f00\u5934\u6216\u63ed\u793a\u6bb5\u91cd\u590d\u663e\u793a\u4e66\u540d\u4f5c\u8005\u3002\n- \u4ece\u4e3b\u4e66\u5c01\u7a33\u5b9a\u5e27\u5230\u6700\u540e\u4e00\u5e27\uff0cV3 \u7684\u4e66\u540d\u4f5c\u8005\u5fc5\u987b\u6301\u7eed\u53ef\u89c1\u4e14\u5185\u5bb9\u3001\u4f4d\u7f6e\u3001\u6837\u5f0f\u4e0d\u53d8\uff1b\u5206\u522b\u68c0\u67e5\u63ed\u793a\u7a33\u5b9a\u5e27\u3001\u6b63\u6587\u9996\u5e27\u3001\u4e2d\u6bb5\u548c\u672b\u5e27\u3002\n- BGM \u4ece\u7b2c 0 \u5e27\u5f00\u59cb\u4e14\u4e0d\u76d6\u4eba\u58f0\u3002\n- \u6b63\u6587\u56fe\u8fbe\u5230 70% \u4ee5\u4e0a\u753b\u9762\u3001\u5de6\u53f3\u6ee1\u5e45\u3001\u4ec5\u4e0a\u4e0b\u7559\u7c97\u7eb8\uff1b\u5b9e\u9645\u955c\u5934\u7b26\u5408 `shot-plan.json`\u3002\n- \u4f7f\u7528 OpenChatCut `read_project`/`read_timeline` \u8bfb\u56de\u7ed3\u6784\uff0c\u5e76\u68c0\u67e5\u5f00\u573a\u3001\u8f6e\u64ad\u4e2d\u70b9\u3001\u4e3b\u4e66\u63ed\u793a\u7684\u5165\u573a/\u4e2d\u6bb5/\u7a33\u5b9a\u4e09\u5e27\u3001\u6bcf\u4e2a\u6b63\u6587\u8fb9\u754c\u548c\u6700\u540e\u4e00\u5e27\u3002\u4e3b\u4e66\u5c01\u9a8c\u6536\u540c\u65f6\u8981\u6c42\uff1aV2 \u5b58\u5728\u4e00\u6761 `kind:\"image\"` \u7684\u53ef\u89c1\u7247\u6bb5\u3001\u7247\u6bb5\u53ef\u76f4\u63a5\u5728\u65f6\u95f4\u7ebf\u4e0a\u9009\u4e2d\uff0c\u4e14\u6e32\u67d3\u753b\u9762\u4e2d\u5c01\u9762\u5c45\u4e2d\u3001\u4e0d\u88c1\u8fb9\u3001\u4e0d\u538b\u4f4f\u4e66\u540d\u4f5c\u8005\u3002\n\n\u4efb\u4f55\u7ed3\u6784\u6027\u4fee\u6539\u90fd\u4f1a\u8ba9\u65e7\u68c0\u67e5\u53d8\u4e3a `stale`\u3002\u4fee\u590d\u540e\u5fc5\u987b\u91cd\u65b0\u8bfb\u9879\u76ee\u3001\u62bd\u67e5\u753b\u9762\u548c\u8bd5\u542c\u3002\u8fd0\u884c\uff1a\n\n```bash\npython3 scripts/validate_subtitle_cards.py subtitle-pairs.json --voice-timeline voice-timeline.json --strict\npython3 scripts/validate_delivery_state.py .\n```\n\n\u5168\u90e8\u901a\u8fc7\u540e\u4ea4\u4ed8\uff1a\u672c\u673a OpenChatCut \u4e2d\u53ef\u7f16\u8f91\u9879\u76ee\u3001\u6587\u6848\u3001\u5b57\u5e55\u5bf9\u7167\u3001\u5206\u955c\u3001\u72b6\u6001\u6587\u4ef6\u548c `review_report.md`\u3002\u9ed8\u8ba4\u505c\u5728\u53ef\u7f16\u8f91\u521d\u7a3f\u4f9b\u7528\u6237\u68c0\u67e5\uff1b\u7528\u6237\u660e\u786e\u8981\u6c42\u6216\u786e\u8ba4\u6700\u7ec8\u7248\u540e\u624d\u8c03\u7528\u672c\u5730\u5bfc\u51fa\uff0c\u5e76\u9a8c\u8bc1\u5bfc\u51fa\u5386\u53f2\u4e0e\u5b9e\u9645\u6587\u4ef6\u3002\n\n## \u5931\u8d25\u5904\u7406\n\n- OpenChatCut \u672a\u5b89\u88c5\uff1a\u62a5\u544a `/Applications/OpenChatCut.app` \u7f3a\u5931\u5e76\u505c\u6b62\u672c\u5730\u88c5\u914d\u3002\n- \u5e94\u7528\u672a\u8fd0\u884c\uff1a\u6865\u63a5\u811a\u672c\u81ea\u52a8\u542f\u52a8\u5e76\u6709\u9650\u7b49\u5f85\uff1b\u4ecd\u4e0d\u53ef\u8fbe\u65f6\u62a5\u544a\u672c\u5730\u8fdb\u7a0b\u548c\u7aef\u53e3\u53d1\u73b0\u7ed3\u679c\u3002\n- MCP \u5de5\u5177\u7f3a\u5931\u6216 schema \u53d8\u5316\uff1a\u5148 `list-tools`\uff0c\u6309\u5f53\u524d schema \u8c03\u6574\u8c03\u7528\uff1b\u4e0d\u56de\u9000\u65e7\u4e91\u7aef\u63a5\u53e3\u3002\n- \u672c\u5730\u7d20\u6750\u4e0a\u4f20\u5931\u8d25\uff1a\u8bfb\u53d6\u4e0a\u4f20\u4f1a\u8bdd\u548c\u8d44\u4ea7\u5217\u8868\u5224\u65ad\u662f\u5426\u5df2\u7ecf\u5bfc\u5165\uff1b\u672a\u786e\u8ba4\u524d\u4e0d\u91cd\u590d\u4e0a\u4f20\u3002\n- \u8c46\u5305\u3001Pexels\u3001\u5fae\u4fe1\u8bfb\u4e66\u6216\u56fe\u50cf\u751f\u6210\u5931\u8d25\uff1a\u4fdd\u7559\u5df2\u5b8c\u6210\u72b6\u6001\u548c\u51c6\u786e\u7f3a\u53e3\uff0c\u4e0d\u7528\u865a\u6784\u8d44\u4ea7\u9876\u66ff\u3002\n- \u97f3\u6548\u3001\u52a8\u6548\u3001\u8f6c\u573a\u3001\u53cc\u8bed\u5b57\u5e55\u6837\u5f0f\u3001BGM \u6216\u5173\u952e\u5e27\u68c0\u67e5\u7f3a\u4e00\u9879\uff0c\u72b6\u6001\u5fc5\u987b\u4e3a `blocked-not-deliverable`\uff0c\u4e0d\u5f97\u79f0\u4e3a\u201c\u53ef\u5ba1\u6838\u521d\u7a3f\u201d\u3002\n\n## \u8d44\u6e90\u8def\u7531\n\n- \u53c2\u8003\u8282\u594f\uff1a[references/reference-style.md](references/reference-style.md)\n- \u53e3\u64ad\u8bed\u8a00\uff1a[references/reference-copy-style.md](references/reference-copy-style.md)\n- \u7814\u7a76\u3001\u89d2\u5ea6\u3001\u6587\u6848\u548c\u5206\u955c\uff1a[references/copywriting-and-storyboard.md](references/copywriting-and-storyboard.md)\n- \u6b63\u6587\u89c6\u89c9\uff1a[references/body-visual-style.md](references/body-visual-style.md)\n- \u955c\u5934\u89c4\u5212\uff1a[references/shot-planning.md](references/shot-planning.md)\n- \u53cc\u8bed\u5b57\u5e55\uff1a[references/bilingual-subtitles.md](references/bilingual-subtitles.md)\n- \u52a8\u6548\u4e0e\u8282\u594f\uff1a[references/editing-effects-and-rhythm.md](references/editing-effects-and-rhythm.md)\n- \u672c\u5730\u9879\u76ee\u3001\u5bfc\u5165\u3001\u65f6\u95f4\u7ebf\u548c\u5bfc\u51fa\uff1a[references/openchatcut-build.md](references/openchatcut-build.md)\n- \u672c\u5730 MCP\uff1a`scripts/openchatcut_mcp.py`\n- \u73af\u5883\u68c0\u67e5\uff1a`scripts/check_environment.py`\n- \u5b8c\u6574\u914d\u97f3\uff1a`scripts/doubao_tts.py`\n- Pexels \u641c\u7d22\uff1a`scripts/search_pexels_videos.py`\n- \u6821\u9a8c\uff1a`scripts/validate_shot_plan.py`\u3001`scripts/validate_subtitle_cards.py`\u3001`scripts/validate_delivery_state.py`\n","usage":"\u8bfb\u53d6 SKILL.md\uff0c\u5e76\u6309\u9700\u8bfb\u53d6\u914d\u5957\u6587\u4ef6\uff1b\u4e0b\u8f7d ZIP \u83b7\u53d6\u5b8c\u6574\u5305\u3002\u6280\u80fd\u662f\u4efb\u52a1\u65b9\u6cd5\uff0c\u4e0d\u6388\u4e88\u65b0\u589e\u8d26\u6237\u3001\u4ed8\u8d39\u6216\u7cfb\u7edf\u6743\u9650\u3002"}
