Files
MediaCrawler/mac-agent-os-main/PLANS/VIDEO_FACTORY_AUDIT.md
T
butubb 2112c1a870
Deploy VitePress site to Pages / build (push) Canceled after 0s
Deploy VitePress site to Pages / Deploy (push) Canceled after 0s
feat(monitor): 抖音 Web 接口客户端 —— 绕开爬虫子进程,直接发 HTTP
移植自 mac-agent-os 的 mediacrawler_adapter:不起子进程、不开页面,用浏览器里那份
登录态直接调抖音 Web 接口。产物键名照抄 store/douyin,所以 ingest 那条链路一个字不用改。

**目前能用的(真环境实测,非推断)**:

    profile/other : 200, 7075 字节  —— 博主主页指标(粉丝/获赞/作品数/昵称)
    aweme/detail  : 200, 45425 字节 —— 单条作品详情(含点赞/评论/收藏/分享)

**目前不能用的:作品列表 `aweme/post`。** 两个互相独立的原因:
  1. 这个接口被抖音单独升级成了真校验:不带 x-tt-argus 回 403「Uifid Not Found」,
     带上 dummy 值回 200 + **空 body**。也就是说「头在不在」骗得过,「真校验」过不了。
     同一套头打 profile/other 和 aweme/detail 都是通的 —— 抖音是挑着接口加保护的,
     挑中的恰好是「批量拉作品列表」这个最敏感的动作。
  2. 改走页面截获也不行:CDP 浏览器打开博主主页会落到「验证码中间页」(当天大量探测的
     代价,过几小时要重测)。

  所以现在的边界是:**已知作品的指标刷新能做,自动发现新作品做不了**。

**排查中控住变量后得到的两条事实**(都写进注释了):
  · `Accept` / `Accept-Language` / `Referer` 才是主页接口能返回真数据的原因 —— 只有
    UA+client hints+Cookie 时是 200 但仅 121 字节的空壳,补上这三个头变 7074 字节。
    (我先前猜的 sec-ch-ua 不是关键。)
  · 因此 UA 与 client hints 必须**成套地取自同一个浏览器**,所以 BrowserIdentity 一次
    从 CDP 取齐 cookie + UA + hints,而不是各自写死。

「200 + 空 body 必须当场报错」也是刻意写死的:放过去它会在下游变成「这个博主没作品」,
把一次失败伪装成一条正常结果 —— 爬虫那条路正是这么栽的,还被翻译成「账号被封」。

测试 +11:cookie 解析、请求头成套性(含 uifid 缺失/回退)、产物键名与 store 对齐、
以及 _get 的三条失败路径(空 body / 403 带网关原话 / 正常返回)。
2026-10-10 17:12:25 +08:00

113 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 视频工厂能力现状审计(2026-10-02)
> 回答「是不是缺东西」—— 逐项列出**能用 / 不能用 / 待接**,以及缺的具体是什么
> 基准:三端 `a2b367973`
---
## 一、能力层(25 个注册能力)
**状态**:✅ 可用 19 · 🟡 部分可用 3 · ⚪ 规划中 3
### 执行器已接入(8 个 —— 流程里能自动跑)
| 能力 | 用途 | 依赖 | 状态 |
|:--|:--|:--|:--|
| `storyboard_plan` 分镜规划 | 故事 → 分镜 | LLM(DeepSeek) | ✅ |
| `prompt_gen` 提示词生成 | 分镜 → 六模块提示词 | 无 | ✅ |
| `text_to_video` 视频生成 | 提示词 → 视频 | **可灵**(已配) | ✅ |
| `video_concat` 视频合成 | 片段 → 去AI化 → 拼接 → 混流 | FFmpeg | ✅ |
| `tts_generate` 语音合成 | 文本 → 音频 | **阿里百炼**(已配) | ✅ |
| `material_search` 素材搜索 | 关键词 → 素材 | **Pexels**(已配) | ✅ |
| `music_select` BGM 选择 | 风格 → BGM | 本地音乐库 | ✅ |
| `subtitle` 字幕生成 | 台词 → ASS 字幕 | FFmpeg | ✅ |
### 注册但执行器未接入(流程中**明确跳过并说明原因**,不会静默失败)
`script_generate`(映射已连但实现待补)· `image_to_video` 图生视频 · `text_to_image` 文生图 ·
`person_swap` 人物置换 · `lipsync` 对口型 · `vfx_apply` 特效 · `comfyui_workflow` · `character_3d`
---
## 二、模型与供应商(配置现状)
| 供应商 | 用途 | 配置 | 状态 |
|:--|:--|:--|:--|
| **可灵 Kling** | 视频生成 / 图片生成 | ✅ 已配 | **视频 ✅ 可用**;**图片 ⚠️ 额度不足**(需单独充值) |
| **阿里百炼** | TTS / 人物置换 | ✅ 已配(已充值) | ✅ 可用 |
| **DeepSeek** | 文本(剧本/分镜/评论) | ✅ 已配 | ✅ 可用 |
| **Pexels** | 素材搜索 | ✅ 已配 | ✅ 可用 |
| 火山方舟(即梦) | 图片/视频备选引擎 | ⚪ 未配 / 模型名待确认 | ⚪ 待接 |
| fal.ai | 对口型(Kling Lipsync) | ❌ 未配 | ⚪ 待接 |
---
## 三、资产库(11 类,全部可用)
角色 · 场景 · 真实场地 · 产品 · 道具 · 服装 · 音色 · BGM · 音效 · 特效预设 · 素材
**每类都具备**:搜索/筛选/排序 · 卡片/表格视图 · 编辑字段(**含下拉建议**)· 上传参考图 · **🎨 AI 生成参考图** · 删除
**角色生成器**(专门页面):**10 层 61 字段**(44 个下拉)+ 5 视角 + 引擎选择
---
## 四、导演系统(已接 2 个)
| 导演 | 类型 | 状态 |
|:--|:--|:--|
| `legacy_scene_planner` | 本地分镜 | ✅ 可用 |
| `storyboard_v52`(AI Storyboard Director v5.2) | 技能型 | ✅ 可用(技能文档已入库) |
| ?用户提到的**另 2 种** | — | ⏳ **需名称 / 来源** |
---
## 五、缺什么(明确清单)
| # | 缺的东西 | 影响 | 补法 |
|:--|:--|:--|:--|
| 1 | **可灵「图片生成」额度** | 定妆照 / 资产参考图生成不可用(视频额度不通用) | 可灵开放平台**单独充值图片生成** |
| 2 | **`fal.api_key`** | 口型同步(`lipsync`)不可用 | 申请 fal.ai key → 🔑 API 配置 |
| 3 | **另 2 个导演系统** | 只能选 2 种分镜风格 | 提供名称/来源(接入约 3 步) |
| 4 | **人脸表情精细控制** | 目前只能靠提示词描述 | 接 **ComfyUI**(表情/风格精细)或等可灵支持 |
| 5 | `script_generate` 实现 | 流程里「剧本改编」节点会跳过 | 补实现(约 20 行,复用 LLM) |
| 6 | 火山方舟(即梦) | 少一个图片/视频备选引擎 | 控制台确认模型名后接入 |
| 7 | `person_swap` 参数接入 | 「人物置换」流程节点会跳过 | 补实现(API 与代码已存在) |
---
## 六、现在就能跑的(已验证)
### ✅ 完整可用 ①:口播视频(素材版,**零生成费用**)
```
脚本 → 素材(Pexels) → TTS(阿里) → 字幕 → 混流成片
```
**实测**:20 秒出片 · 3.21MB / 12.46 秒 / 1080x1920 · **含音轨 + 字幕烧录** ✓
### ✅ 完整可用 ②:分镜驱动视频(可灵版,**按镜头计费**)
```
脚本 → 分镜(v5.2) → 可灵逐镜头生成 → 去AI化 → 拼接 → 混流
```
**实测**:3 镜头 **1.9 分钟**(并发生成)· 成片 3.2MB ✓
### ✅ 可用:流程画布
6 个模板 + 节点状态徽章 + 产物预览(视频可播)+ 🔄 重做 + ▶️ 从此起跑 + ⏹ 停止 + **生成前费用确认**
### ✅ 可用:分镜透明化
「🎬 预览生成方案」→ 逐镜头看 **提示词 / 能力 / 引擎 / 参数**(**零费用**)
### ✅ 可用:通知与产物中心
任务完成右上角通知 + 「📋 生产记录」页可播全部产物
---
## 七、建议优先级(我的判断)
| 优先级 | 事项 | 理由 |
|:--|:--|:--|
| 🔴 高 | **可灵图片充值** | 角色/场景参考图是"资产先行"的前提,没有参考图流程就不完整 |
| 🟡 中 | 另 2 个导演系统接入 | 分镜质量多样性(你明确提过) |
| 🟡 中 | `script_generate` + `person_swap` 实现 | 两个流程节点目前会跳过(代码量小) |
| ⚪ 低 | fal.ai 口型 / ComfyUI 表情 | 精细控制,主流程跑顺后再做 |
| ⚪ 低 | 火山方舟即梦 | 备选引擎,可灵够用时不急 |