Codex 全流程网络素材视频制作
把用户目标转换为可执行、可追溯的制作流水线:
主题与受众
→ 网络研究与来源核验
→ 开放授权或已获许可素材搜索
→ 素材清单与版权闸门
→ 原创文案与逐镜头分镜
→ 配音、字幕和音乐
→ 自动粗剪与包装
→ 成片、工程文件、来源清单和事实核查报告
“全网”表示在公开可访问且允许使用的来源中广泛研究,不代表无边界抓取互联网。技术上能够下载的内容,不能自动视为拥有复制、改编或再发布权。
一、启动与运行时配置
1. 下载锁定版本
普通研究与主题短视频:
python scripts/install_web_media_stack.py --profile creator
python scripts/check_video_editing_tools.py
影视解说、已有视频分析和多语言配音:
python scripts/install_web_media_stack.py --profile full
install_web_media_stack.py 负责下载并锁定源码,不自动安装所有重型依赖。
2. 配置需要使用的应用
MoneyPrinterTurbo:
python scripts/configure_web_media_apps.py --app moneyprinterturbo
NarratoAI:
python scripts/configure_web_media_apps.py --app narratoai
VideoLingo:
python scripts/configure_web_media_apps.py --app videolingo
一次配置全部:
python scripts/configure_web_media_apps.py --app all
首次只想确认命令和锁定提交时使用:
python scripts/install_web_media_stack.py --profile full --dry-run
python scripts/configure_web_media_apps.py --app all --dry-run
VideoLingo 默认跳过可选 Demucs;需要人声分离时:
python scripts/configure_web_media_apps.py \
--app videolingo \
--include-demucs
完整运行时配置见 docs/WEB_MEDIA_APP_SETUP.md。
3. 密钥位置
tools/web-media/.env
该文件由 config/web-media.env.example 创建并被 Git 忽略。Agent 不得打印、提交或复述 API Key、Token 或完整凭据配置。
二、先建立项目
python scripts/scaffold_web_media_project.py \
--name "项目名称" \
--topic "研究主题" \
--duration 60 \
--aspect-ratio 9:16 \
--language zh-CN
项目至少包含:
projects/<name>/
├── brief.md
├── project.json
├── research/
├── assets/
├── manifests/assets.jsonl
├── script/script.md
├── storyboard/storyboard.csv
├── edit/edit-plan.json
├── subtitles/
├── voice/
└── outputs/
所有中间产物必须进入该项目,不能散落在仓库根目录。
三、确定需求和交付规格
优先从用户已有信息提取,不重复询问已经明确的内容。至少确定:
topic:主题或核心问题;goal:解释、营销、新闻梳理、教程、故事、影视解说或翻译配音;audience:受众知识水平;duration:目标时长;aspect_ratio:9:16、16:9、1:1 或 4:5;language:文案、配音和字幕语言;platform:抖音、B站、视频号、YouTube 等;source_scope:开放网络、指定网站、用户文件或 URL;commercial_use:是否商用;delivery:成片、字幕、文案、剪辑工程和来源清单。
信息不足但可以安全推进时,使用明确假设并写入 brief.md。
四、网络研究
研究原则
- 优先原始资料、官方文档、论文、机构页面和可信新闻来源。
- 搜索摘要只能用于发现来源,不能直接作为事实依据。
- 每个关键事实记录标题、URL、作者/机构、发布日期和局限。
- 不整篇复制文章、视频字幕、书籍章节或付费内容;只保存必要摘要和短引文。
- 最新新闻、价格、政策、人物身份、软件版本和产品规格必须联网核验。
- 对矛盾来源保留不同说法,不擅自拼成确定结论。
提取公开网页正文
python scripts/ingest_authorized_source.py \
--type document \
--url "https://example.com/article" \
--project "projects/项目名称" \
--asset-id "source-001" \
--license "Research reference; quotation limits apply" \
--rights-status restricted
restricted 文档可以用于研究和事实核查,但不得把其大段正文直接作为旁白或画面素材。
默认一次处理少量已选定页面,不使用批量爬取扫描整个站点,除非站点明确允许且任务确有必要。
五、素材搜索与下载
来源优先级
- Wikimedia Commons 公共领域或 Creative Commons 文件;
- Openverse 聚合的 CC 或公共领域图片与音频;
- Pexels 图片和视频;
- Pixabay 图片和视频;
- MoneyPrinterTurbo 当前支持的 Coverr;
- 用户自有素材或有书面许可的链接。
Wikimedia Commons
python scripts/search_open_media.py \
--provider commons \
--media-type image \
--query "space solar power station" \
--limit 20 \
--output "projects/项目名称/research/search-results/commons.json"
Pexels 视频候选
python scripts/search_open_media.py \
--provider pexels \
--media-type video \
--query "solar panels satellite earth" \
--limit 12 \
--download-first 3 \
--download-dir "projects/项目名称/assets/videos" \
--manifest "projects/项目名称/manifests/assets.jsonl" \
--output "projects/项目名称/research/search-results/pexels.json"
Pixabay 图片候选
python scripts/search_open_media.py \
--provider pixabay \
--media-type image \
--query "satellite energy" \
--limit 12 \
--download-first 3 \
--download-dir "projects/项目名称/assets/images" \
--manifest "projects/项目名称/manifests/assets.jsonl"
下载项目默认以 selected=false 写入素材清单。Codex 必须查看内容、相关性、清晰度、隐私和授权信息后,才能选入镜头表。
用户授权的视频链接
python scripts/ingest_authorized_source.py \
--type video \
--url "https://example.com/public-video" \
--project "projects/项目名称" \
--asset-id "user-video-001" \
--license "User owns or has permission to reuse" \
--rights-status permission-granted \
--permission-note "用户在当前任务中确认拥有再利用许可"
用户授权的公开图库
python scripts/ingest_authorized_source.py \
--type gallery \
--url "https://example.com/public-gallery" \
--project "projects/项目名称" \
--asset-id "gallery-001" \
--license "CC BY 4.0" \
--license-url "https://creativecommons.org/licenses/by/4.0/" \
--rights-status cc-by \
--creator "作者名称" \
--attribution "作者名称,CC BY 4.0"
不得绕过登录、地区限制、付费墙、DRM、私密账号、验证码或平台反爬安全措施。本仓库包装器故意不提供浏览器 Cookie、账号密码和 DRM 绕过参数。
六、素材版权闸门
最终剪辑前必须运行:
python scripts/media_asset_manifest.py validate \
--manifest "projects/项目名称/manifests/assets.jsonl"
默认允许:
public-domain
cc0
cc-by
cc-by-sa
provider-licensed
user-owned
permission-granted
默认禁止进入最终成片:
unknown
restricted
CC BY 与 CC BY-SA 必须记录作者和许可证 URL;permission-granted 必须记录许可说明。需要署名的素材应在片尾、简介或交付清单中正确署名。
七、文案和镜头表
文案
写入 script/script.md,至少包括:
- 标题候选;
- 前 3–8 秒钩子;
- 背景和问题;
- 核心解释或故事推进;
- 证据、数据和例子;
- 结论;
- 行动引导;
- 事实核查清单。
文案必须原创表达,不把多个来源句子简单拼接,也不模仿在世创作者的独特表达风格。
镜头表
写入 storyboard/storyboard.csv,每个镜头记录:
- 起止时间;
- 对应旁白;
- 视觉搜索词;
- 选用
asset_id; - 推拉摇移、裁切、缩放和转场;
- 字幕;
- 对应事实来源;
- 状态。
镜头必须与文案语义匹配,不能只因画面好看使用无关素材。
八、选择制作路线
路线 A:主题直接生成短视频
适合科普、营销、知识解释和社交媒体视频,不要求逐个使用指定素材。
加载:
skills/moneyprinterturbo-video
MoneyPrinterTurbo 完成文案、Pexels/Pixabay/Coverr 素材、配音、字幕、音乐和成片。完成后把最终 MP4、任务目录、文案与素材来源并入当前项目。
路线 B:研究驱动、指定素材混剪
适合必须使用指定文档、图片、视频或严格镜头表的项目。
加载:
skills/ai-video-editing
流程:
素材预处理 → 旁白/配音 → 镜头拼接 → 字幕 → 音乐
→ 自动粗剪 → 人工抽检 → MP4 或专业剪辑工程
路线 C:已有视频解说
适合用户有权使用的电影、短剧、纪录片或长视频,需要视觉理解、解说文案、配音和自动剪辑。
应用路径:
tools/web-media/apps/NarratoAI
必须先运行:
python scripts/configure_web_media_apps.py --app narratoai
NarratoAI 只处理用户自有、公共领域或已获许可的视频。不要默认抓取商业影视作品再发布。
路线 D:翻译、字幕和多语言配音
适合把已有视频翻译为另一种语言并生成单行字幕和配音。
应用路径:
tools/web-media/apps/VideoLingo
必须先运行:
python scripts/configure_web_media_apps.py --app videolingo
其能力包括 yt-dlp 输入、WhisperX、字幕分段、翻译、术语表和多种 TTS。必须检查原视频的使用权、翻译权和配音发布权。
九、质量检查
内容
- 每个关键事实有来源;
- 日期、数据、人物和机构名称准确;
- 没有把推测写成事实;
- 文案没有大段复制来源。
素材
asset_id与实际文件一致;- 所有选中素材通过 manifest 校验;
- 需要署名的素材已生成署名清单;
- 没有水印、个人隐私、敏感信息或误导性画面。
视频
- 句首句尾未被误剪;
- 画面与旁白同步;
- 字幕无明显错字且时间轴正确;
- 配音清晰,音乐不过度压过人声;
- 横竖屏裁切没有切掉主体;
- 最终文件可播放,时长、分辨率和帧率符合要求。
十、最终交付
至少交付:
outputs/final.mp4
script/script.md
storyboard/storyboard.csv
subtitles/final.srt
manifests/assets.jsonl
research/sources.md
edit/edit-plan.json
同时给出简短报告:
- 研究了哪些主要来源;
- 使用了哪些素材平台;
- 哪些素材需要署名;
- 使用哪条制作路线;
- 哪些步骤已实际运行;
- 哪些内容仍需人工确认。
没有实际运行成片流程时,不能声称视频已经生成。素材版权闸门未通过时,不能进入最终渲染。