移植自 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 带网关原话 / 正常返回)。
7.3 KiB
7.3 KiB
即梦(Dreamina) 网页版自动化方案
版本: v0.1 (规划阶段) 创建: 2026-05-14 状态: ⏸️ 暂停(操作路径记录中,生成任务卡在排队) 下次目标: 完成下载步骤的记录,编写 jimeng_ops.py
一、项目背景
1.1 目标
为 AVE 视频工厂提供高质量的 AI 生成视频素材,替代 Pexels 免费素材。 每期口播视频需要 12 段素材,每段 5-10 秒竖屏视频。
1.2 为什么选即梦网页版
| 方案 | 每段5秒成本 | 一期12段 | 备注 |
|---|---|---|---|
| Pexels 免费素材 | 0元 | 0元 | 画面静态,观感差 |
| 腾讯云混元 API | 1.8-3.6元 | 21.6-43.2元 | 后付费,贵 |
| 即梦网页版会员 | 0.22-0.37元 | 2.6-4.4元 | VIP 可用 1080p,便宜 |
| 即梦 CLI | 同会员积分 | 同左 | VIP 模型 CLI 不支持,720p 限制 |
结论:即梦网页版会员(¥79-649/月)性价比最高,但需通过 Peekaboo 自动化操作网页。
1.3 备选方案对比
| 方案 | 结果 | 原因 |
|---|---|---|
| Dreamina CLI 直接调用 | ❌ 放弃 | CLI 免费版锁 720p,VIP 模型不支持 |
| Buddy-cloud.py (腾讯云) | ✅ 可用 | 1080p 可用,但成本是即梦网页版的 5-10x |
| CloakBrowser Playwright 自动化 | 🔧 备用 | 需处理反爬/登录态,不如 Peekaboo 直接 |
| Peekaboo GUI 自动化 | ✅ 主方案 | 基于视觉识别,即梦不管怎么改UI都能用 |
二、当前进度
2.1 已完成
- Dreamina CLI 安装到
~/.local/bin/dreamina - CLI OAuth 登录成功(积分余额: 80)
- 验证 CLI 命令集(
text2video,text2image,user_credit等) - 确认 CLI VIP 模型不可用(网页端会员 ≠ CLI 会员)
- Peekaboo 截图测试成功(可捕获 Chromium 窗口)
- 即梦首页页面结构记录完成
- 文生视频操作路径第 1-5 步记录完成
2.2 待完成
- 步骤 ⑥:下载视频 — 生成完成后下载按钮在哪?如何触发下载?
- 编写
jimeng_ops.py(Peekaboo 原子操作脚本) - 编写 blueprint 蓝图(批量生成多段素材)
- 集成到 AVE pipeline(生成 → 下载到 cache → Ken Burns → 合成)
- 处理异常情况(积分不足、模型降级、生成失败)
三、即梦首页页面结构
3.1 侧边栏(左)
| 图标按钮 | 文字 | 功能 |
|---|---|---|
| 💡 | 灵感 | 默认首页,直接输入 prompt |
| ⚡ | 生成 | 各类生成任务入口 |
| 📦 | 资产 | 历史作品 |
| 🎨 | 画布 | 编辑/合成 |
| ❓ | OCTO | 未知功能 |
底部:开通会员 | 积分(80) | 头像(登录后显示) | 通知🔔 | CLI 介绍
3.2 主输入区(中)
大输入框(类智能体对话框),包含:
| 元素 | 位置 | 说明 |
|---|---|---|
| + 添加文件 | 输入框左上角 | 图生图/图生视频等 |
| 智能体模式(Agent) | 输入框下方左 | 默认模式,自动判断输出类型 |
| 自动/生成偏好 | 模式按钮旁 | 可设图片/视频、比例、模型版本 |
| [使用技能] | 模式按钮区 | 剧情短片、电商套图、海报设计等 |
| [@] | 模式按钮区 | 指定主体/人物 |
| 🎤 麦克风 | 输入框右下角 | 语音输入 |
| ↑ 发送箭头 | 输入框右下角 | 灰色→变亮(输入内容后) |
3.3 模式切换弹窗
点"智能体模式"可切换:
| 模式 | 用途 |
|---|---|
| 图片生成 | 文生图 |
| 视频生成 | 文生视频(本方案目标模式) |
| 数字人 | 数字人出镜 |
| 配音 | 语音合成 |
| 动作模仿 | 动作驱动 |
3.4 自动/生成偏好设置
| 设置项 | 可选值 |
|---|---|
| 输出类型 | 图片 / 视频 |
| 比例 | 21:9 / 16:9 / 9:16(竖屏) / 等 |
| 模型版本 | 图片4.0 / 3.0 / 等 |
四、完整操作路径(已记录 5/7 步)
① 首页(灵感Tab,Agent模式)
状态: 输入框空,发送按钮灰色
操作: 输入 prompt
↓
② 输入 prompt 后
状态: 发送按钮由灰变亮,其他无变化
操作: 按回车 或 点发送箭头
↓
③ 进入对话模式
状态: AI 开始分析 prompt
↓
④ ⚠️ 模型不可用降级(每次都会触发)
状态: 弹出积分确认框
├─ "消耗 X 积分,确认继续生成"
├─ ⭐ "本次对话不再确认"(鼠标悬浮出现小按钮,可勾选)
└─ 点确认 → 扣积分
↓
⑤ 生成排队
状态: 输入框右上方出现生成状态条
内容区: "排队中" → "生成中"
结果区: 图片占位框 + "以上内容由AI生成本次消耗X积分"
+ [重新生成] 按钮 + [引用作品] 按钮(双引号)
↓
⑥ 生成完成
状态: ?(待下次记录)
下载方式: ?(待下次记录)
↓
⑦ 保存到 AVE cache
⏳ 待实现
4.1 关键交互细节
- 积分确认: 每次生成都会弹出,可勾选"本次对话不再确认"
- 模型降级: Agent 模式自动选 VIP 模型 → VIP 不可用 → 降级普通模型 → 重新确认积分
- 排队等待: 生成任务进入队列,排队时间不定(上次卡住未完成)
- 发送方式: 回车键 或 点发送箭头
五、技术方案
5.1 核心工具
- Peekaboo v3.1.2:macOS GUI 自动化(视觉识别 + 点击 + 输入)
- CloakBrowser:备用浏览器(需持久化 profile 保持登录态)
- AVE pipeline:接收生成素材 → Ken Burns → 合成
5.2 原子操作设计(待实现)
# jimeng_ops.py 初步设计
def input_prompt(text): # 输入 prompt
def click_send(): # 点发送
def confirm_credit(): # 确认积分消耗
def disable_credit_confirm(): # 勾选"不再确认"
def wait_generation(): # 轮询检测生成完成
def click_download(): # 点下载
def save_to_ave_cache(): # 保存到 AVE cache
5.3 Peekaboo 命令映射
| 操作 | Peekaboo 命令 | 锚点策略 |
|---|---|---|
| 输入 prompt | peekaboo type "..." |
当前焦点(先点输入框) |
| 点发送 | peekaboo click "↑" 或回车 |
OCR 识别箭头图标或键盘发送 |
| 确认积分 | peekaboo click "确认继续" |
OCR 识别按钮文字 |
| 勾选不再确认 | peekaboo click "不再确认" |
OCR 识别悬浮按钮文字 |
| 等生成完成 | 轮询 peekaboo image 检测下载按钮 |
截图 OCR |
| 下载 | peekaboo click "下载" |
OCR 识别按钮文字 |
六、相关文件
| 文件 | 路径 |
|---|---|
| 本计划文档 | 05_tools/09_ave/PLANS/JIMENG_AUTOMATION_PLAN.md |
| AVE 实施计划 | 05_tools/09_ave/PLANS/AVE_IMPLEMENTATION_PLAN.md |
| AVE 策略体系 | 05_tools/09_ave/PLANS/STRATEGY.md |
| Dreamina CLI | ~/.local/bin/dreamina |
| Dreamina CLI 说明 | ~/.dreamina_cli/dreamina/SKILL.md |
| AVE 主脚本 | 05_tools/09_ave/scripts/main.py |
| 视频合成 | 05_tools/09_ave/scripts/composer/ffmpeg.py |
| 测试道家 YAML | 05_tools/09_ave/scripts/daoist_quotes.yaml |
七、下次启动检查清单
- 确认 CloakBrowser/Chromium 是否还在运行
- 确认即梦网页登录态是否过期
- 确认 Dreamina CLI 登录态(
dreamina user_credit) - 继续步骤 ⑥:生成完成后探索下载方式
- 完整走通一次后开始写
jimeng_ops.py