移植自 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 带网关原话 / 正常返回)。
角色一致性参考资料(外部学习)
来源:GitHub 开源项目(2026-10-04 抓取)
shuohao-skills / character-refs(4095 star,Apache-2.0)
仓库:https://github.com/eternityspring/shuohao-skills 作者定位:「给任何故事里的角色真出参考图……先出一张正面全身锚点, 其余视图(大头照、90°侧面、背面、细节、45°大头照)都只参考这张锚点」
本目录:
01_skill_原文.md—— SKILL.md(工作流 + 分档 + 冻结机制)02_提示词规范_原文.md—— 最核心:每条都是实测失败换来的03_角色卡schema_原文.md—— 角色卡字段结构04_字段拆解_原文.md—— 一段话描述 → 分层字段的拆解规则
核心方法论(提炼,用于我们的实现)
- 一组图只有一个根:正面全身锚点;只有它是文生图,其余全是「锚点 + 一句改图指令」
- 改图模型只听第一句 —— 派生图第一句必须是明确构图指令
(
Zoom in to an extreme close-up.../Rotate the camera 180 degrees around her) - 正面要写几何 —— 「肩、髋、脚都正对镜头,鼻子在脸中线上,两耳一样可见」;
反向词禁
three-quarter view/turned body(不写几何,模型会画成微侧身) - 一致性清单要短、按视图取层 —— 大头照只写脸/头发/上装(写下装 → 镜头拉远); 细节图不列整套服装(列了 → 模型画整个人,实测 8/8 失败)
- 不写
character sheet/turnaround/model sheet—— 会让模型在一张图里画多视图 - 写实画风:写
A real photograph, not a render+ 85mm f/5.6 + 真实白平衡 + 不修图不美颜 + 轻微颗粒; 不写photorealistic/ 超高清 / 浅景深(会往 CG 带) 反向词压 AI 感:CGI、塑料皮肤、蜡质皮肤、娃娃脸、过度对称、HDR、过饱和、平光 - 写光的效果,不写光源(写 window 会把窗户画进画面)
- 细节图露肤要带年龄(
Any visible skin is the skin of a 16-year-old)否则皮肤会画老 - 模型不锁定 —— 一致性来自「同一张锚点」,不来自「同一个模型」
- 冻结三样:锚点 sha256 / 画风快照 / 描述指纹;变了就标「过期」,只标记不删除
用户提供的另一份资料要点
- 母版图要摇一批候选,挑最有辨识度的(不要指望观众记住"漂亮")
- 记忆点:袖口卷到哪、发尾挑染、领子立起、左耳银钉(一致性检查的抓手)
- 纯灰 #808080 + 同一 seed + 保存 job ID/seed
- 角色卡 5 硬字段:脸型 / 发型发色 / 五官比例(可测量)/ 服装剪裁 / 固定配饰 —— 一旦定下,所有提示词原样复用("齐肩直发"→"中长发"会被当新角色)
- 分镜提示词结构:角色字段前置占 60%,动作/场景/镜头后置 40%
- 防串脸:双人镜头拆开;开
input_fidelity(可灵为image_fidelity)