Skip to main content

longform-documentary-producer

让 Codex 制作 60 分钟以上的长篇纪录片、科普、课程、历史叙事、调查解释或专题视频。负责批量读取 PDF、DOCX、PPTX、网页、字幕和本地资料,建立可检索语料库,逐来源摘要,生成多章大纲和数万字文案,批量规划数百镜头,搜索并审核图片/视频/音频素材,逐章配音、字幕、渲染并最终拼接。适用于“一小时以上视频”“超长文案和大量素材”“多章节系列合成长片”“失败后只重跑一章”等任务。必须保留事实来源和素材许可证,不允许用一个超长提示词或一次性渲染整片。

الانتقال إلى التثبيت

معلومات المصدر

المستودع
yniantongtian-oss/ai-video-creation-collection
آخر نشاط في المصدر
٢٩ يوليو ٢٠٢٦ في ٠٩:٣٩
لغة SKILL.md المكتشفة
الصينية
النجوم
٠
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
longform-documentary-producer
description
让 Codex 制作 60 分钟以上的长篇纪录片、科普、课程、历史叙事、调查解释或专题视频。负责批量读取 PDF、DOCX、PPTX、网页、字幕和本地资料,建立可检索语料库,逐来源摘要,生成多章大纲和数万字文案,批量规划数百镜头,搜索并审核图片/视频/音频素材,逐章配音、字幕、渲染并最终拼接。适用于“一小时以上视频”“超长文案和大量素材”“多章节系列合成长片”“失败后只重跑一章”等任务。必须保留事实来源和素材许可证,不允许用一个超长提示词或一次性渲染整片。
metadata
{"version":"1.0.0","language":"zh-CN","orchestrates":["web-media-producer","moneyprinterturbo-video","ai-video-editing","NarratoAI","VideoLingo","Edge-TTS","FFmpeg"]}
# Codex 长篇视频制作 本 Skill 面向 60–360 分钟视频。长视频必须采用章节化流水线: ```text 项目规格 → 研究资料入库 → 逐来源摘要 → 全片章节大纲 → 逐章检索和写稿 → 逐章镜头规划 → 批量搜索开放授权素材 → 人工/Codex 相关性与版权审核 → 逐章配音和字幕 → 逐章素材匹配与渲染 → 最终拼接、章节元数据和质量报告 ``` 不得把短视频生成器简单设置成 60 分钟。不得一次把所有资料塞进一个模型请求。不得一次渲染整片。 ## 一、默认设计 用户只说明“一个多小时”而没有给具体规格时,采用: - 目标时长:90 分钟; - 画幅:16:9,1920×1080,30 fps; - 章节:约 13 章,每章约 7 分钟; - 中文旁白:每分钟约 260 字符,总计约 23,400 字符; - 视觉节奏:约每 10 秒更换主要画面,总计约 540 个镜头段; - 编码:H.264 + AAC; - 视频码率:8 Mbps; - 字幕:独立 SRT,并在 MP4 中附加字幕轨; - 自动下载素材全部先作为候选,默认 `selected=false`; - 每章独立配音和渲染,支持断点续跑。 用户明确要求的时长、画幅、语言、风格、平台和受众优先。 ## 二、安装 仓库根目录执行: ```bash python scripts/install_web_media_stack.py --profile full python scripts/install_longform_stack.py python scripts/install_auto_editor.py ``` 先预览而不安装: ```bash python scripts/install_longform_stack.py --dry-run ``` 长视频环境变量位于: ```text tools/longform/.env ``` 至少配置: ```text LONGFORM_LLM_BASE_URL LONGFORM_LLM_API_KEY LONGFORM_LLM_MODEL ``` 不得打印、提交或复述密钥。 ## 三、创建项目 ```bash python scripts/scaffold_longform_project.py \ --name "项目名称" \ --topic "视频主题" \ --duration 90 \ --chapter-minutes 7 \ --aspect-ratio 16:9 \ --audience "目标观众" \ --style "纪录片式科普,信息密度高但表达自然" ``` 项目目录: ```text projects/<name>/ ├── brief.md ├── project.json ├── research/ │ ├── inbox/ │ ├── extracted/ │ ├── summaries/ │ ├── sources.jsonl │ ├── chunks.jsonl │ └── index.sqlite ├── outline/ ├── manifests/ ├── chapters/ │ ├── 01/ │ ├── 02/ │ └── ... ├── state/ ├── logs/ └── outputs/ ``` 所有资料、素材、中间文件和成片都放在项目目录中。 ## 四、资料入库 把资料放进: ```text projects/<name>/research/inbox/ ``` 支持: ```text PDF DOCX PPTX TXT Markdown HTML CSV / TSV JSON SRT / VTT ``` 然后运行: ```bash python scripts/ingest_longform_corpus.py \ --project "projects/<name>" ``` 也可直接指定多个文件或目录: ```bash python scripts/ingest_longform_corpus.py \ --project "projects/<name>" \ --input "/path/to/documents" \ --input "/path/to/subtitles" ``` 脚本会: 1. 复制外部文档到项目; 2. 计算 SHA-256; 3. PDF 按页、PPTX 按幻灯片保留定位; 4. 提取正文; 5. 切成重叠语料块; 6. 写入 JSONL 和 SQLite 检索索引; 7. 跳过已经入库的相同文件。 扫描版 PDF 无文本时不能伪造读取结果,应先使用可靠 OCR 或要求提供可复制文本版本。 ## 五、研究、大纲、文案和镜头 一条命令完成: ```bash python scripts/run_longform_project.py \ --project "projects/<name>" \ research ``` 它会按以下顺序执行: ```text 逐来源摘要 → 全片大纲 → 逐章检索资料 → 逐章撰写文案 → 逐章生成镜头表 ``` 单独运行: ```bash python scripts/longform_pipeline.py --project "projects/<name>" summarize python scripts/longform_pipeline.py --project "projects/<name>" plan python scripts/longform_pipeline.py --project "projects/<name>" write python scripts/longform_pipeline.py --project "projects/<name>" shots ``` 只重做第 4 章: ```bash python scripts/longform_pipeline.py \ --project "projects/<name>" \ write \ --chapter 4 \ --force python scripts/longform_pipeline.py \ --project "projects/<name>" \ shots \ --chapter 4 \ --force ``` 每章必须输出: ```text brief.md script.md narration.txt claims.json open-questions.json shots.json ``` `script.md` 保留 `[S:source_id#locator]` 来源标记;`narration.txt` 是不朗读来源标记的配音稿。资料不足处必须写 `NEEDS_SOURCE`。 ## 六、长视频素材策略 不要为每个镜头进行一次独立网络搜索。先把镜头查询去重为每章 8–15 个查询组: ```bash python scripts/build_longform_asset_plan.py \ --project "projects/<name>" ``` 执行 Wikimedia Commons、Openverse、Pexels 和 Pixabay 搜索,并为每个平台下载一个候选: ```bash python scripts/run_longform_project.py \ --project "projects/<name>" \ assets \ --execute-search \ --download-first 1 ``` 候选进入: ```text assets/global/images/ assets/global/videos/ manifests/assets.jsonl ``` 自动下载的素材始终为候选,不得直接进入成片。 ### 素材不足时的优先级 1. Wikimedia Commons 的公共领域、CC BY、CC BY-SA 档案; 2. Openverse 中许可证明确的图片和音频; 3. Pexels、Pixabay 的平台授权 B-roll; 4. 官方机构、博物馆、大学和政府公开资料; 5. 用户自有素材; 6. 用 ComfyUI 自制缺失的概念画面; 7. 自制地图、时间线、流程图和数据图; 8. 仅在合法合理引用范围内使用必要短片,并保留单独法律审核,不自动认定可发布。 不得用来源不明的影视、音乐、图库或社交平台搬运内容填满一小时。 ## 七、素材审核和批准 列出候选: ```bash python scripts/media_asset_manifest.py list \ --manifest "projects/<name>/manifests/assets.jsonl" \ --candidates ``` Codex 应逐项查看: - 画面是否与旁白匹配; - 是否有水印、低清、错误人物或错误地点; - 来源页是否存在; - 许可证是否允许当前用途; - 是否需要作者署名; - 是否包含隐私、人像、商标、未成年人或敏感内容风险。 批准一个素材: ```bash python scripts/media_asset_manifest.py set-selected \ --manifest "projects/<name>/manifests/assets.jsonl" \ --id "asset-id" \ --value true \ --note "已核对画面相关性、来源页和许可证" ``` 批量批准: ```bash python scripts/media_asset_manifest.py set-selected \ --manifest "projects/<name>/manifests/assets.jsonl" \ --ids-file approved-assets.txt \ --value true ``` 取消批准: ```bash python scripts/media_asset_manifest.py set-selected \ --manifest "projects/<name>/manifests/assets.jsonl" \ --id "asset-id" \ --value false ``` 批准时会重新验证文件哈希、来源、许可证、作者署名和许可说明。 ## 八、配音、时间线和章节渲染 一条命令: ```bash python scripts/run_longform_project.py \ --project "projects/<name>" \ produce ``` 它会执行: ```text 版权预检 → 逐章分段配音 → 合并逐章字幕 → 素材自动匹配 → 逐镜头缓存 → 逐章渲染 → 最终拼接 → 全片字幕与章节时间戳 ``` 如果没有足够的已批准素材,命令必须停止并输出: ```text LONGFORM_NEEDS_ASSET_REVIEW ``` 不得绕过该闸门。 ### 单独运行 ```bash python scripts/render_longform_narration.py \ --project "projects/<name>" python scripts/build_longform_timeline.py \ --project "projects/<name>" python scripts/render_longform_chapters.py \ --project "projects/<name>" python scripts/assemble_longform_video.py \ --project "projects/<name>" ``` 只重做一章: ```bash python scripts/render_longform_narration.py \ --project "projects/<name>" \ --chapter 4 \ --force python scripts/build_longform_timeline.py \ --project "projects/<name>" \ --chapter 4 python scripts/render_longform_chapters.py \ --project "projects/<name>" \ --chapter 4 \ --force ``` 重做单章后,再运行最终拼接。 ## 九、现有视频分析 用户提供长视频、采访、课程、纪录片或大量视频素材时: 1. 使用 yt-dlp 或用户本地文件取得合法素材; 2. 使用 VideoLingo、NarratoAI 或 Auto-Editor 转录音频; 3. 按固定间隔和场景切换抽帧; 4. 让视觉模型分析抽帧,而不是声称一次看完数小时原视频; 5. 将字幕、时间码、人物、地点、镜头类型和主题标签写入项目; 6. 再参与章节检索和素材匹配。 不得未经运行视频理解或抽帧步骤就声称已经看完所有素材。 ## 十、质量预检 任何阶段均可运行: ```bash python scripts/longform_preflight.py \ --project "projects/<name>" \ --stage setup ``` 可选阶段: ```text setup research writing assets narration render final ``` 预检内容包括: - 长视频虚拟环境; - LLM 配置; - Edge TTS; - FFmpeg; - 可用磁盘空间; - 资料来源和语料块; - 来源摘要和章节大纲; - 文案长度和章节完整度; - 镜头数量; - 已批准素材和许可证; - 时间线黑屏占位; - 配音章数和时长; - 已渲染章节和时长。 渲染前预检失败时不得继续。 ## 十一、断点和状态 查看状态: ```bash python scripts/run_longform_project.py \ --project "projects/<name>" \ status ``` 状态文件: ```text state/pipeline.json chapters/<id>/status.json ``` 已有摘要、文案、语音片段、镜头视频和章节视频默认跳过。只有用户明确要求或产物损坏时使用 `--force`。 ## 十二、最终交付 最终目录至少包括: ```text outputs/final/<project>.mp4 outputs/final/full.srt outputs/final/youtube-chapters.txt outputs/final/chapters.ffmetadata outputs/final/assembly-report.json outline/outline.json outline/chapter-map.csv manifests/assets.jsonl research/sources.jsonl chapters/*/script.md chapters/*/claims.json ``` 交付前检查: 1. `assembly-report.json` 的时长检查通过; 2. 总时长符合用户要求; 3. 无 `NEEDS_SOURCE` 遗留,或已明确列为待核查; 4. 无占位镜头; 5. 无丢失素材和哈希变化; 6. 字幕、旁白和画面同步; 7. 音量一致,无明显爆音和长时间静音; 8. 开头、章节转场和结尾完整; 9. 署名清单满足许可证; 10. 没有实际生成 MP4 时,不得声称视频已完成。 ## 十三、禁止事项 - 不用一个超长提示词生成整部一小时文案; - 不把所有原始资料无筛选塞入上下文; - 不一次渲染完整长片; - 不自动批准下载的素材; - 不绕过登录、付费墙、验证码、地区限制、robots 或 DRM; - 不因为来源很多就省略事实核查; - 不覆盖原始素材; - 不在仓库提交 API Key、模型、原视频、音频、成片或大型缓存; - 不在缺少实际运行结果时声称已经完成。
عرض على GitHub