feat(monitor): 抖音 Web 接口客户端 —— 绕开爬虫子进程,直接发 HTTP
Deploy VitePress site to Pages / build (push) Canceled after 0s
Deploy VitePress site to Pages / Deploy (push) Canceled after 0s

移植自 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 带网关原话 / 正常返回)。
This commit is contained in:
2026-10-10 17:12:25 +08:00
parent 21ff01b894
commit 2112c1a870
1601 changed files with 367425 additions and 0 deletions
@@ -0,0 +1,194 @@
# 08 · 避坑 12 问
> 火山方舟官方 PDF 收录的 12 类高频问题。每个问题按"**典型现象 → 根因 → 解决方案**"组织,需要时按问题名搜索即可。
---
## 1. 人物 ID 漂移
**典型现象**:生成的角色形象与参考图不一致,或在视频中途发生"换脸"(ID 漂移),导致视频中人物撞脸明星被审核拦截。
**根因**:人脸参考图的有效性不足。
- 参考图混用:将人脸参考图与全身/半身姿态图、服装参考图、细节图等合并在同一张图片中提供给模型
- 人脸占比过小:在混用参考图中,人脸区域占整张图的比例过小,模型在提取人脸特征时权重不够,容易被背景或其他元素干扰
**解决方案**(强化人脸参考的独立性和权重):
1. **准备人脸特写图**:在原有全身照之外,额外准备一张**只包含角色头部的人脸特写图**(大头照,仅保留面部,无表情最佳,尽量减少肩颈、背景等干扰元素)
2. **提示词中主体定义清晰**:`<主体1> 的面部特征参考图片1(大头照),妆造参考图片2(全身照)`
3. **重要素材前置**:越需要精准参考的素材,放在提示词中越靠前的位置
> ⚠️ 人物参考使用**大头照 + 全身照**即可,**不建议使用人物多视图**。多视图素材包含同一人物的不同角度,模型易将其识别为多个不同主体,反而加剧 ID 漂移问题。
---
## 2. 视频中包含字幕
**典型现象**:提示词中未要求生成字幕,生成的视频中包含字幕。
**根因**:参考图/视频中包含文字。
**解决方案**:目前无法直接做到 100% 避免生成字幕,只能通过以下方法降低其出现概率、提升抽卡成功率。
1. 在提示词中加入明确的约束指令:`保持无字幕`、`避免生成任何文字或字幕`
2. 如果参考的图片/视频中包含的文字并非必要信息,建议先通过工具去除文字(例如使用 Seedream/Seedance 模型的图片/视频编辑能力),再使用无文字素材作为输入
3. 在业务允许的前提下,**优先选择横屏尺寸生成视频**(横屏生成字幕的概率明显低于竖屏),后续可通过剪辑软件裁剪为竖屏
---
## 3. 视频中有 Logo / 水印
**典型现象**:提示词中未提及水印相关内容,生成的视频包含其他视频平台的 Logo / 水印。
**解决方案**:在提示词中加入明确的约束指令:
```
不要生成水印
不要生成Logo
```
---
## 4. 风格漂移
**典型现象**:期望生成 2D 或者 3D 动漫风格,但输入的参考图片的风格比较写实,并且提示词中未强调视频风格,生成的视频有概率漂移成真人写实风格。
**解决方案**:
1. 在提示词中加入明确的风格约束词,例如 `2D 日漫风格`、`3D 国风漫画`
2. 如果需要更精准的风格控制,建议**将参考图先变为目标风格再进行生视频**
---
## 5. 延长视频衔接处跳变
**典型现象**:使用视频延长功能生成新视频后,将新视频与原视频进行拼接,在衔接处可能出现画面跳变、回退的问题。
**解决方案**(当前建议通过后期剪辑修补,对齐关键帧):
1. 将待拼接的视频导入剪映或其他专业视频剪辑软件
2. 在第一个衔接处,将**前一段视频的末尾删减 6 帧**
3. 同时,将**后一段视频的开头删减 1 帧**
4. 对所有的拼接点重复以上操作
5. 导出并检查拼接后视频的流畅度
> 💡 视频帧对齐后,仍可能存在细微跳变,建议在续写生成视频的时候**以转场切镜的时刻结尾**,下一段视频以结尾切镜后的新场景为起始。
---
## 6. 双胞胎问题
**典型现象**:在画面人物较多且传入人物三视图作为参考素材的场景下,生成视频同一画面中易出现两个完全相同的人物。
**根因**:
- 提示词中对人物主体的定义不清晰,模型无法精准区分不同人物角色
- 以人物三视图 / 多视图作为参考素材时,易造成模型人物识别混淆,从而生成重复同款人物
**解决方案**:
1. **明确人物主体关联**:在提示词中清晰定义每个人物角色,明确角色与参考图的对应关系。建议在人物名称后标注对应参考图,并保持格式统一。
- 示例:`张三(对应图片 1)将绿色存折扔向站立的李四(对应图片 2)`
2. **添加全局约束指令**:在提示词末尾增加固定约束:
```
视频全程禁止出现外形、着装、配饰完全一致的人物,
禁止生成同款分身、双胞胎效果,
同一画面中仅保留单个对应人物,不出现人物重复复刻。
```
3. **优化参考素材**:人物参考图优先使用单人独立照片,**不建议使用三视图、多视图素材**
4. **精简优化提示词**:请勿直接将完整剧本作为提示词使用,文案内容过度冗余易造成模型理解混乱,需精简无关表述、保证指令清晰聚焦
---
## 7. 视频延长画质劣化
**典型现象**:将模型生成的视频作为输入素材进行延长续写时,会出现画质劣化。多次续写会叠加劣化效果,尤其人物人脸区域易出现斑驳色块。
**解决方案**(当前可通过以下方式缓解画质劣化):
1. **将原始视频通过 Seedance 2.0 转为白模视频,再作为续写输入素材**
- 参考提示词:`将视频转为白色 3D 模型,人物统一为纯白 3D 模型,无色彩、无纹理、无阴影,纯白背景,结构稳定、运动流畅`
2. 优先选用高清图片作为参考素材
3. 合理控制视频续写次数,避免多次叠加续写
---
## 8. 特效效果不符合预期
**典型现象**:通过提示词文字描述特定特效时,可能会出现特效效果与预期不符的情况,例如:提示词指定"数字'2999'以倒计时动画出场",实际生成的数字滚动特效出现无序跳变,不符合标准倒计时逻辑。
**解决方案**:建议采用**参考视频**定义特效——将目标特效视频作为参考素材输入模型,让模型精准理解特效形态与运动逻辑,生成效果更贴合预期。
例如:`数字"2999"出场方式参考视频1`
---
## 9. 参考人物过多
**典型现象**:当参考人物数量超过 4 人时,模型输出稳定性下降,生成的视频可能出现人物数量不符(如少人、多人)或人物重复等问题。
**解决方案**:
1. **分步生成图片**:将人物分组,确保每组生成的图片中人物数量不超过 4 人。例如,6 个人可分成 2 组,每组 3 人,分别生成图片
2. **图片生成视频**:使用第一步生成的多张分组图片作为参考素材,再生成最终视频
---
## 10. 视频结尾有噪音
**典型现象**:视频中包含旁白时,视频片尾容易出现突兀咔哒声、截断杂音。
**解决方案**:重新生成视频,或使用剪映等剪辑工具,对片尾音轨通过**音量包络线**做音频淡出处理,消除截断噪音。
**剪映具体步骤**:
1. 将生成的视频导入剪映
2. 在时间轴上选中视频轨道,点击工具栏中的**音频**
3. 选择**音量包络线**功能(部分版本位于基础/调节菜单内),并选择关键点
4. 在视频临近结尾处,将末尾音量关键点下拉至音量为 0,形成一个向下的斜坡
5. 预览确认片尾音频自然淡出,无突然截断与杂音即可
---
## 11. 中文发音不准
**典型现象**:模型对多音字、生僻字、形近字容易读错。
**解决方案**:可将易读错文字替换为**发音一致的常用同音字**,规避发音偏差,还原预期音频效果。
- 示例:可将提示词中"鳞龙山"改写为同音字"吃龙山"
> ⚠️ 注意该方案仅为优化手段,无法完全规避所有发音问题。
---
## 12. 音色参考不准
**典型现象**:使用参考音频指定音色时,最终生成视频的音频音色与参考音色存在明显偏差。
**解决方案**:
1. 在提示词中补充细致的音色特征描述
- 示例:`使用@音频1低厚温润带细碎颗粒感中年男声的音色说"……"`
2. 保持视频台词风格与参考音频的语气、表述风格相近,有助于提升音色还原度与稳定性
---
## 速查索引
| 现象关键词 | 跳转 |
|---|---|
| 换脸、ID 漂移、撞脸明星 | [1. 人物 ID 漂移](#1-人物-id-漂移) |
| 莫名出现字幕 | [2. 视频中包含字幕](#2-视频中包含字幕) |
| 莫名出现 Logo / 水印 | [3. 视频中有-logo--水印](#3-视频中有-logo--水印) |
| 动漫风格变写实 | [4. 风格漂移](#4-风格漂移) |
| 拼接处跳帧 | [5. 延长视频衔接处跳变](#5-延长视频衔接处跳变) |
| 同款双胞胎 | [6. 双胞胎问题](#6-双胞胎问题) |
| 延长后画质变糊 | [7. 视频延长画质劣化](#7-视频延长画质劣化) |
| 特效不对劲 | [8. 特效效果不符合预期](#8-特效效果不符合预期) |
| 人物多了少了 | [9. 参考人物过多](#9-参考人物过多) |
| 结尾咔哒声 | [10. 视频结尾有噪音](#10-视频结尾有噪音) |
| 中文读错 | [11. 中文发音不准](#11-中文发音不准) |
| 音色不像 | [12. 音色参考不准](#12-音色参考不准) |