移植自 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 带网关原话 / 正常返回)。
15 KiB
15 KiB
2026-05-01 记忆提炼摘要
提炼时间: 2026-05-02 09:46:32
统计
- 新增事实: 0
- 重复跳过: 56
- 冲突处理: 56
提取的事实
- 📌 [personal-management]
验证→ [已完成] - 完整的账号登录管理标准化流程(环境检查→状态查看→重登录→验证→切换→故障排查) - 📌 [personal-management]
更新→ [已完成] - 已更新 SKILL.md 引用该 SOP - 📌 [personal-management]
验证→ [已完成] - Phase 2a: douyin_01 Chrome ✅ 全部通过(启动→登录→蓝图→关闭→重启持久化验证) - 📌 [personal-management]
创建→ [修复] -camoufox_manager.py的--launch添加了persistent_context=True和user_data_dir参数(之前创建了 profile_dir 变量但未传入 As - 📌 [personal-management]
修复→ [关键发现] 1.switch_account.py的 DOM 头像检测在桌面端视口不可用,导致误报"未登录"(P0 需要修复) - 📌 [personal-management]
验证→ [关键发现] 4. Chrome Profile 持久化验证通过(关闭→重启后 Cookie 仍然有效) - 📌 [personal-management]
确认→ [修复] - 修复后用户确认扫码显示"登录 Windows" ✅ - 📌 [personal-management]
完成→ [当前账号状态] - douyin_camo01: 已停止(测试完成后关闭) - 📌 [personal-management]
修复→ [已完成] 2. switch_account.py 修复 — 登录检测从 DOM 改为 auth_manager Cookie 检测 - 📌 [personal-management]
修复→ [已完成] 3. cdp_connector.py 修复 — Camoufox 中文字体支持 - 📌 [personal-management]
更新→ [已完成] 5. 全量文档更新 — SKILL.md / FULL_TEST_REPORT.md / MEMORY.md - 📌 [personal-management]
更新→ [统一升级引擎 agentos upgrade(22:00-22:15)] - CHANGELOG v2.2.0 / README 已更新 - 📌 [personal-management]
创建→ [SOUL.md v3.0 升级方案(23:35)] - 4 个协议文件已创建到03_knowledge/20_methods/agent-protocols/ - 📌 [personal-management]
确认→ [SOUL.md v3.0 升级方案(23:35)] - SOUL.md 本身尚未替换,等待用户确认后执行 - 📌 [personal-management]
配置→ [agentos config 配置管理(00:07 5/2)] - 新建config_mgr.py— 配置管理(status/diff/apply/rollback) - 📌 [personal-management]
配置→ [agentos config 配置管理(00:07 5/2)] - 新建01_core/CONFIG_MANIFEST.yaml— 配置清单(9文件,A/B/C三类) - 📌 [personal-management]
部署→ [agentos config 配置管理(00:07 5/2)] - A类6个全部部署一致:SOUL/IDENTITY/USER/HOST_ID/MAINTENANCE/CHANGELOG - 📌 [personal-management]
选择→ [agentos config 配置管理(00:07 5/2)] - B类 mcp.json 保留(待手动选择) - 📌 [personal-management]
确认→ [agentos config 配置管理(00:07 5/2)] - C类 models/settings 确认存在 - 📌 [personal-management]
部署→ [SOUL.md v3.3 升级执行完成(23:41)] - ✅ 4 个协议文件部署到 03_knowledge/20_methods/agent-protocols/ - 📌 [personal-management]
更新→ [SOUL.md v3.3 升级执行完成(23:41)] - ✅ 活动目录 ~/.workbuddy/SOUL.md 已更新 - 📌 [personal-management]
更新→ [SOUL.md v3.3 升级执行完成(23:41)] - 关键词索引已更新(12条) - 📌 [personal-management]
配置→ [agentos init PATH 自动配置(09:38)] -init.py新增step_check_path()— 新机初始化时自动检测并配置 PATH - 📌 [personal-management]
name→ 13754826808 - 📌 [personal-management]
username→ 为 chengzige - 💭 [personal-management]
preference→ 偏好中文交流,工作风格严谨,关注系统完整性和细节验证,提供详细的分步自动化指令并期望结构化的执行报告。遵循结构化工作流:读取历史 → 执行任务 → 汇报结果 → 更新记忆。文档需求高,要求非常详细的文档涵盖项目各个方面和文件,用于与他人讨论 - 📌 [personal-management]
完成→ [提取的事实] - 📌 [personal-management]验证→ [已完成] - 完整的账号登录管理标准化流程(环境检查→状态查看→重登录→验证→切换→故障排查) - 📌 [personal-management]
更新→ [提取的事实] - 📌 [personal-management]更新→ [已完成] - 已更新 SKILL.md 引用该 SOP - 📌 [personal-management]
完成→ [提取的事实] - 📌 [personal-management]验证→ [已完成] - Phase 2a: douyin_01 Chrome ✅ 全部通过(启动→登录→蓝图→关闭→重启持久化验证) - 📌 [personal-management]
修复→ [提取的事实] - 📌 [personal-management]创建→ [修复] -camoufox_manager.py的--launch添加了persistent_context=True和 ` - 📌 [personal-management]
修复→ [提取的事实] - 📌 [personal-management]修复→ [关键发现] 1.switch_account.py的 DOM 头像检测在桌面端视口不可用,导致误报"未登录"(P0 需要修复) - 📌 [personal-management]
验证→ [提取的事实] - 📌 [personal-management]验证→ [关键发现] 4. Chrome Profile 持久化验证通过(关闭→重启后 Cookie 仍然有效) - 📌 [personal-management]
确认→ [提取的事实] - 📌 [personal-management]确认→ [修复] - 修复后用户确认扫码显示"登录 Windows" ✅ - 📌 [personal-management]
完成→ [提取的事实] - 📌 [personal-management]完成→ [当前账号状态] - douyin_camo01: 已停止(测试完成后关闭) - 📌 [personal-management]
修复→ [提取的事实] - 📌 [personal-management]修复→ [已完成] 2. switch_account.py 修复 — 登录检测从 DOM 改为 auth_manager Cookie 检测 - 📌 [personal-management]
修复→ [提取的事实] - 📌 [personal-management]修复→ [已完成] 3. cdp_connector.py 修复 — Camoufox 中文字体支持 - 📌 [personal-management]
更新→ [提取的事实] - 📌 [personal-management]更新→ [已完成] 5. 全量文档更新 — SKILL.md / FULL_TEST_REPORT.md / MEMORY.md - 📌 [personal-management]
更新→ [提取的事实] - 📌 [personal-management]更新→ [统一升级引擎 agentos upgrade(22:00-22:15)] - CHANGELOG v2.2.0 / README 已更新 - 📌 [personal-management]
安装→ [提取的事实] - 📌 [personal-management]安装→ [当前状态] - agentos CLI 已安装到 ~/.local/bin/agentos - 📌 [personal-management]
更新→ [提取的事实] - 💭 [personal-management]preference→ 偏好中文交流,工作风格严谨,关注系统完整性和细节验证,提供详细的分步自动化指令并期望结构化的执行报告。遵循结构化工作流:读取历史 → - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0001: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0002: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0003: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0004: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0005: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0006: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0007: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0008: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0009: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0010: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0011: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0012: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0013: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0014: skip — 旧事实置信度更高(0.9 >= 0.9),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0015: skip — 旧事实置信度更高(0.9 >= 0.9),需用户确认 - 📌 [personal-management]
确认→ [冲突记录] -FACT-2026-05-01-0016: skip — 旧事实置信度更高(0.85 >= 0.85),需用户确认
冲突记录
FACT-2026-05-01-0001: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0002: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0003: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0004: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0005: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0006: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0007: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0008: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0009: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0010: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0011: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0012: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0013: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0014: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0015: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0016: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0017: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0018: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0019: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0020: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0021: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0022: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0023: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0024: skip — 旧事实置信度更高(0.9 >= 0.9),需用户确认FACT-2026-05-01-0025: skip — 旧事实置信度更高(0.9 >= 0.9),需用户确认FACT-2026-05-01-0026: skip — 旧事实置信度更高(0.85 >= 0.85),需用户确认FACT-2026-05-01-0027: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0028: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0029: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0030: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0031: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0032: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0033: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0034: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0035: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0036: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0037: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0038: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0039: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0040: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0041: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0042: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0043: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0044: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0045: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0046: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0047: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0048: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0049: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0050: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0051: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0052: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0053: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0054: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0055: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认FACT-2026-05-01-0056: skip — 旧事实置信度更高(0.75 >= 0.75),需用户确认