潜在触达 · 全流程 + 复刻 SOP + 常态运维

已 DM 触达过、≥1 天没回的高/中意向用户(反评 RC 纳入为待做项)做成事件驱动盯防:本人一发新视频,就在发布 ≤10 分钟内自动完成点赞 + 评论1(评这条视频内容)+ 评论2(逐字搬首触原文)。每人每天 ≤1 次、累计 ≤7 次、对方一回复就停、商家/同行排除。监控 + 三连发送都搬无影一台云电脑常驻(路 B),队列与发送同机闭环。

样板账号:饭粒 / 一筑 c5d236e1 ✅ 三连真视频首落地 2026-06-14 头号坑:连播 autoplay 打偏 待解:无影空闲挂起 → 真 7×24

⏱ 绑死全局的硬约束:视频发布 → 三连完成 ≤ 10 分钟

「趁新鲜」是潜在触达的命门。监控延迟(≤60s)+ 回复门 + 话术(评论1 JIT 秒级 / 评论2 查表零延迟)+ 三连执行(1–3min)必须全部挤进这 10 分钟;超过则该视频作废、不触。每一步耗时不是孤立的,是在跟这 10 分钟预算赛跑。

六步全流程耗时 · 原理 · 是否可云自动

#步骤耗时原理可云自动
0关注补齐
(前置·瓶颈)
日限 30/号
补 164 ≈ 5–6 天
监控只能看到「号关注了的人」。关注动作被抖音反爬挡死(raw API 403、Playwright 空白页),唯一通路 = 无影 GUI 原生登录点关注(_follow_grounded.py)。半自动
无影 GUI 常驻
1进池筛选
(候选计算)
秒级
批量 SQL
second-touch-worklist.ts:本号 DM 过 · 距最后一条 DM ≥1 天 · 原评论高/中意向 · 未停(未回未满 7 次)。可全云
纯 DB,可 cron
2实时监控
发新视频
检测延迟
≤60s + 网络
f2 签名拉账号关注流 follow/feed,每 60s 翻 3 页,视频 age≤10min 才算新鲜入队。_realtime_touch_watch_wuying.py,纯只读 API。无影已跑
无 VPN、无 fake-IP
3回复识别
(去重停发)
scan 扫收件箱
分钟级
列表预览指纹比对判 replied → 回了就停。洞② P0 已落库 conversations.last_inbound_at,回复真相首次可查、跨机收敛。半自动
scan 需登录设备 GUI
4话术生成评论1 LLM 秒级
评论2 查表 0 延迟
评论1 = 逮到视频那刻 JIT:看这条视频标题/正文现场用 qwen3 生成对内容的反应(空正文 → 「赞赞赞」表情兜底)。评论2 = 查表逐字搬首触原文(DM/反评)照发不挡空(带微信/报价也发,封号风险走节奏层兜)。已实现
评论1 无影 JIT / 评论2 mac 预生成查表
5三连执行
点赞+评论1+评论2
每条 ~1–3min
须 ≤10min 窗内打完
无影 GUI douyin_comment_grounded.py:搜人 → 身份门 → 开视频 → 暂停 → 点赞 → 评论1 → 评论2(VL/模板匹配 + SendInput)。consumer _realtime_touch_consume_wuying.py 常驻 drain 队列。卡 GUI
无影专用,桌面须醒着
6节奏控制
/ 出库
秒级mark-second-touch.ts + RPC:每天 ≤1 次、累计满 7 次 / 对方回复 → 永久出库;second_touch_state 单调推进、跨机去重。comment_log 摆渡回 mac 回写。可全云
纯 DB

实时监控原理 ·「不点界面、纯后台读数据」为什么监控稳、发送脆

监控(读)= 直接向抖音服务器要数据,不开界面

你平时看抖音"关注"页,背后其实是 APP 偷偷向抖音服务器要了一份"我关注的人最新视频清单"。监控跳过"开 APP、画画面",直接向服务器要这份清单,拿回的是纯文字数据(作者 / 视频ID / 发布时间 / 文案),代码直接读、挑出"池里的人 + 发布<10min"。全程没有鼠标点击、没有画面、不用抖音窗口在前台。

f2 + cookie:服务器要求请求带"签名"证明是合法登录用户——f2 算签名、cookie 是一筑登录凭证,凑齐就能要到数据。

发送 / 关注(写)= 只能像真人一样点界面,所以脆

抖音把"读"和"写"分两种态度:(看别人发了啥)服务器愿意给(带签名就行)→ 监控走后台;(点赞 / 评论 / 关注)抖音严防机器人、把接口封死了(直接调 403 / 封号)→ 只能像真人一样点界面糊弄反爬。点界面靠"鼠标点对坐标、屏幕长对样",坐标偏 / 窗口没最大化 / 视频在轮播就点空——这就是当前发送出问题的根源

对比点界面(发送 / 关注 · 写)后台读数据(监控 · 读)
靠什么鼠标点对坐标、屏幕长对样一个数据请求
快慢慢,一条 1–3 分钟秒级,一次几十条
怕坐标 / 窗口 坐标偏就点空不怕 跟屏幕无关
抢不抢鼠标 跑时别碰不抢 后台静默
怕不怕黑屏 黑屏就瘫不怕 不看屏幕

翻页能力 · 会不会漏视频现状 + 关注涨到 500 人

监控每 60 秒翻 3 页 ≈ 45–60 条最新视频。「漏」= 某视频在它发布后 10 分钟里一直被更新的视频挤出前 3 页。

现状(关注 ~21 人):不会漏

21 个关注一天发的视频总量远低于 45–60 条 → 3 页绰绰有余。配合"发布<10min 才触达":视频发出后 10 分钟里每 60 秒查一次 = 10 次露面机会,足够逮到。

未来(关注 500 人):取决于"发帖多不多",不是 500 这个数

500 个正常号(一天发 1 条左右)→ 每 10 分钟才约 3–4 条新视频 → 3 页照样不漏真正风险 = 混进高频商家号 / MCN(一天发几十条),60 秒冒出几十条把目标挤出前 3 页才会漏——但这种号本就该在进池筛选时挡掉,不是潜在触达对象。

同事复刻 SOP换一个账号 / 换一个运营,从零跑起来

前提:你有①一台已登录抖音 PC 的无影云电脑(目录 C:\akke-wuying\wuying-dm\);②本机(mac)能跑仓库 pnpm tsx + worker/.venv;③你的 messaging 账号 idAKKE_ACCOUNT_ID)+ AKKE_ORG_ID。把下面命令里的账号换成你自己的。

  1. 本机出关注池 + 话术表mac
    关注池 = 你号 DM/反评过、≥1 天没回的高中意向名单(special-follow-*.json);话术表 = 每人「评论2 搬首触原文」查表(零 LLM、秒出)。
    pnpm tsx scripts/second-touch-worklist.ts            # 先出 worklist(评论2 文本源)
    worker/.venv/bin/python worker/scripts/wuying-dm/_gen-realtime-touch-table.py \
      --pool /tmp/special-follow-你.json --out /tmp/realtime-touch-table.json
    # 需 .env.local 的 AKKE_ORG_ID;评论1 不在表里(无影 JIT 现生成)
  2. 打包摆渡到无影mac无影
    5 个文件打 tar.gz 传 paste.rs,无影一条命令拉下解压(必须 curl.exe,不能用 Invoke-WebRequest——会损坏 UTF-8 中文)。
    # mac:打包 + 上传
    tar -czf /tmp/rtb.tgz -C worker/scripts/wuying-dm \
      _realtime_touch_watch_wuying.py _realtime_touch_consume_wuying.py \
      _jit_comment1_wuying.py _start-realtime-touch.bat \
      -C /tmp realtime-touch-table.json
    curl -s --data-binary @/tmp/rtb.tgz https://paste.rs     # 拿到 URL + 记字节数
    
    # 无影 PowerShell:下载 + 核字节 + 解压
    cd C:\akke-wuying\wuying-dm
    curl.exe -s <URL> -o rtb.tgz
    (Get-Item rtb.tgz).Length        # 必须 == mac 那边字节数
    tar -xf rtb.tgz
    另需无影本地已有:dy_cookie.txt(你号 cookie)、special-follow.json(关注池,注意文件名)、douyin_comment_grounded.py(三连执行器)、_probe_follow_feed_wuying.py.env(含 OPENROUTER_API_KEY + OCR key)。
  3. 无影一次性环境无影
    pip install f2==0.0.1.7(硬钉这版,它锁 httpx==0.27.2,别升 httpx);确认 .env 里有 OPENROUTER_API_KEY(评论1 JIT 用,缺了就全退「赞赞赞」)。
  4. 验 JIT 评论1 能用无影
    py _jit_comment1_wuying.py "复式loft改造 楼梯下做了嵌入式储物柜"
    打印 key=有 + 一条贴合视频的评论 = ✅;打印 key=无(退兜底) + 赞赞赞 = .env 缺 key(补上才有内容反应版)。
  5. 发送前置(每次开机必查)无影
    抖音 PC 已登录 + 最大化 + 前台;屏幕分辨率锁 2560×1600;输入法切 英文
  6. 启动常驻无影
    双击 _start-realtime-touch.bat → 弹两个黑窗口(Akke-watch 监控 + Akke-consume 消费),各带崩溃自动重启。跑批期间别碰鼠标键盘(发评论时全程控 GUI)。
  7. 验证真发了mac
    别信消费日志的「✅已点发送」——它会假阳性。铁证两层:①执行器验证闸当场截图验(点赞验爱心变红、评论验气泡出现),验不过记 unverified 不算成功;②人工复核 = 用一筑「喜欢」列表看视频在不在 + 另号/无痕看评论气泡。⚠️ 三连的点赞不写 outreach_eventsvideo_like/comment_like 恒 0,别拿它当铁证),证据看 comment_log + second_touch_state.last_touch_at。comment_log 摆渡回 mac 跑 mark-second-touch.ts --from-comment-log 回写节奏。

常态运维:要一直开着吗?最常被问

⚠️ 核心真相:发送那步要桌面「醒着」

无影是云电脑(跑在阿里服务器,不是你自己 mac),但它有个老毛病——客户端一断开、桌面容易黑屏/挂起(历史上「87% 黑屏」是自动发失败头号根因)。而点赞+评论是 GUI 自动化,必须桌面亮着、抖音在前台才能干活。所以:

监控(逮视频):纯 API 只读,进程不挂就一直跑,黑屏也不影响检测。
发送(点赞评论):需要无影桌面是醒着的。你把无影客户端关了/断开 → 桌面可能黑屏 → 发送失败、逮到的视频过期作废。

✅ 当前可靠跑法

①两个黑窗口别关(关 = 停)。②抖音 PC 保持登录 + 最大化 + 前台。③无影桌面保持连接/醒着——你自己的 mac 可以休眠/断网(那只是连无影的客户端),但无影那台云桌面要保持活跃,否则黑屏发不出。④发评论时别碰鼠标键盘。

说人话:你不用一直盯着,但无影那台云电脑得保持"亮屏在线"状态,别让它断开挂起。覆盖才 12%、一天就 1–2 条,所以它大部分时间在空等,逮到才动几分钟。

🚧 真 7×24 无人值守还没完全解

无影黑屏 + 要保持前台,意味着现在还做不到「关掉一切它自己 7×24 跑」。治本方向(待做):无影企业版 EDS 官方远程命令(ecd run-command 推 PS 脚本)+ 按需唤醒(定时窗口拉起桌面)+ 防黑屏保活。当前阶段 = 保持无影在线 + 常驻脚本这套半自动。

常见 QA

一天能发多少条?为什么这么少?
关注覆盖率卡死。监控只能看到号关注了的人发的视频,样板号 164 池只关注了 ~21(覆盖 12%),所以一天可能就 1–2 条甚至 0。这是设计内、不是坏了。要提产量=先补关注(第 0 步)。
评论1 和评论2 分别是什么?
评论1 = 对 ta 刚发的这条视频内容的真实反应(看标题/正文 JIT 生成,干净、不带价格微信);视频没文案就发「赞赞赞」。评论2 = 逐字搬你之前给 ta 发的首触原文(DM 或反评),带产品/微信也照发。两条都是公开评论。
为什么有的人只发了「点赞 + 评论1」,没有评论2?
那个人在 worklist 里没取到首触原文(多为只反评过、没 DM 过的人——反评记录在 reverse_comment_queue,当前 worklist 只读 messages)。评论2 空就只发点赞+评论1,不报错。要补这批,让 worklist 多 union 反评表(扩量项)。
带微信/报价的公开评论会被限号吗?
本项目未实测到限号(2026-06-02 反评衍生公开评论实跑记录是「零风控」),PM 6/6 已拍板「首触原文照发、不做私信→公开安全转换」,封号风险靠节奏层兜:同人每天 ≤1、累计 ≤7、灰度从低起。所以评论2 照发、不挡空。
会不会重复骚扰同一个人?
三道去重:①无影本地「同人每天 ≤1 次」;②DB second_touch_state 累计满 7 次 / 对方一回复 → 永久出库;③监控按 aweme_id 去重,同一条视频只触一次。
发评论时我能用这台无影干别的吗?
不能。点赞+评论是模拟人手操作(控鼠标键盘 + 截图找控件),跑批期间你碰鼠标/切窗口会打断它。它一天只动几分钟,其余时间空等,那时可以用。
我(一筑)号不是都关注了吗?为什么覆盖只 12%?
抖音里「关注」是独立动作(点对方主页"关注"按钮),跟给对方发私信、对方评论你、你回复评论都不是一回事。监控只能看到你主动点过"关注"的人发的视频。给 164 人发过 DM ≠ 关注了他们。2026-06-11 实测:你号关注流深挖 588 条/124 人,跟 164 池只命中 21 → 只关注了 ~21 个,其余 143 个没点关注、发视频监控看不到。提覆盖 = 第 0 步补关注(无影 GUI 点关注,日限 30/号)。
进池拉的是什么意向的人?包含反评(RC)吗?
当前 second-touch-worklist.tsintent_label ∈ {高意向, 中意向}高+中都拉,不是只高);且只读 messages(DM 记录)、不读 reverse_comment_queue(反评)→ 只反评过没 DM 过的人当前不进池。「只高意向 + 纳入 RC」是待定改动项(需改 worklist + 重生成池/表 + 重摆渡;注意只留高意向会让池更小、12% 覆盖更紧)。
实时监控、回复识别到底怎么工作?
实时监控:每 60s 用你号登录态拉一次「你关注的人最近发了啥」(走数据接口,等于 APP 的"关注"信息流),看到池里人发了 10min 内新视频就排队,纯读取不操作。回复识别:发之前扫你号私信收件箱,用之前发给 ta 那句话当指纹比对,对方已回 → 标"已回"、不再触达(回了还发不礼貌也没必要)。
「节奏层兜底」是什么意思?
评论2 照搬私信原文会带微信/报价,公开评论理论有封号风险。「节奏层兜」= 不靠改话术、靠控频率压风险:同人每天最多 1 次、累计满 7 次出库、灰度从小量起。即"话术带敏感词没关系,靠发得克制不密集把封号概率压住"。
三连最快多久发完一条?
实测约 1.5–3 分钟(搜人→开视频→点赞→评论1→评论2)。快不下去不是程序慢,是故意加了防风控停顿(每步间 sleep 几十秒模拟人手),硬压到几秒反而像机器人更易被抓。1.5–3min 是"安全速度"地板,10min 窗口够发 1 条。
话术表重生成能更自动、少依赖 mac 吗?
现在表在 mac 生成(要连库)+ 手动摆渡。最优解(待做):做一个 Vercel 定时接口(有库权限、自动重算最新表、挂固定网址),无影消费脚本每轮直接 HTTP 拉表(无影有外网)→ 表全自动更新、零 mac、零手动摆渡。关注补齐(第0步)+cookie 续期依赖登录态,暂仍需 GUI。
API 取关注流会标「已读」吗?手工刷会不会让监控漏?
大概率不按已读过滤(证据:关注流能翻 ~46 页历史、日志里 2.5 天前老视频也会被取到——若按已读门控不会有这么多历史)。监控去重靠本地 seen 清单(aweme_id)、不依赖抖音已读。但有个待实测点:手工刷"一筑"关注页会不会因账号级已读共享、让 API 取不到 → 漏。观察法:连取两次第 0 页比对 aweme_id 是否一样 + 手工滑走几条再取是否还在。兜底规则:监控跑着时别用一筑号手工刷关注页,这号专给监控用。

常见坑 · 踩过的

.bat 双击全是乱码 / 报「不是内部命令」

cmd.exe 把 .bat 里的 UTF-8 中文按 GBK 读 → 乱码 + 行结构冲断。修法:.bat 必须纯 ASCII(英文),中文只留在 .py 里(Python 自己按 UTF-8 读,不受影响)。

文件传过去就坏 / 中文乱

PowerShell 的 curlInvoke-WebRequest 别名,下载会把 UTF-8 文本重新编码弄坏。一律用 curl.exe(写原始字节)。每次传完两端核字节数,不等就是坏了。paste.rs 单文件 ~384KB 截断,大文件分开传。

监控找不到关注池

监控脚本默认找 special-follow-饭粒.json,但无影上文件名常是 special-follow.json.bat 里给监控传 --pool special-follow.json,或把文件改成默认名。

评论1 全是「赞赞赞」

无影 .envOPENROUTER_API_KEY,或连不上 OpenRouter(无影是中国 IP,先 python -c "import urllib.request;print(urllib.request.urlopen('https://openrouter.ai/api/v1/models',timeout=10).status)" 测 200)。补上 key 即恢复内容反应版。

无影黑屏 → 发不出

客户端断开 / 桌面挂起 → GUI 自动化看不到屏幕 → 发送失败。保持无影桌面在线醒着(见上「常态运维」)。

升了 httpx → f2 签名炸

f2==0.0.1.7 硬锁 httpx==0.27.2,监控拉关注流靠 f2 签名。别单独升 httpx,否则签名失败拉不到 feed。

实战问题 & 解决2026-06-13~14 路 B 真跑无影踩的坑 + 解法

🎉 里程碑:三连首次在真视频落地(点赞 + 评论)

2026-06-14,监控 → 入队 → 身份门 → 点赞 → 评论1 → 评论2 → 验证闸 全链路在一筑号实测跑通,第一条真视频三连成功落地并验证通过。executor 修复已提交主仓(commit 0a1e62b)。下面是这两天真跑踩出来的坑和解法。

🥇 头号执行坑:连播(autoplay)把点赞评论打偏

抖音 PC 打开一条视频后播完会自动跳下一条。脚本以为还停在目标视频上,结果点赞 / 评论全打到了下一条别人的视频——目标视频既没赞也没评论,脚本却走完流程、还因为读到跳过去那条的红心误判"已赞"
解法:取消连播。右下角连播开关关一次持久记住(开新视频仍是关闭态)→ 靠人手关一次即可,脚本不点它(它是 toggle,每条点反而又打开)。执行器另加 pause_video 暂停作双保险。

暂停演进:空格为什么不管用

试了三种暂停:①空格键——焦点不在播放器上时变成"翻页",不暂停;②点视频画面中心——能暂停但受网速/时机影响不稳,短视频常在点到之前就跳了;③取消连播——最稳,根上不跳。最终:人手关连播 + 脚本 hover 唤出控制条、定位左下角播放/暂停键点它兜底。

「✅ 已点发送」不可信 → 加了真发验证闸

6/12 整夜跑、日志写"3 条三连✅已点发送",实测全是假阳性:以一筑身份看,爱心不红、评论没有、"喜欢"列表里也没有——GUI 点击点空了但脚本仍 return 成功。
解法:把"点一下=成功"改成"验到才算"。点赞后验爱心真变红、评论后验气泡真出现 + 输入框清空;验不过记 unverified不计成功、不标 touched、不假报。6/14 真视频落地就是这道闸放行的。

「覆盖率 12%」是误判 → 盲关 200 已否决

之前以为关注流只命中 12%=号没关注那些人、得批量补关注。实测是误判:监控关注流只露最近发过视频的人,"没出现 ≠ 没关注"。一筑号到本人页一看 18 个里 10 个已关、一轮监控就逮到 7 个池里人的视频 → 关注覆盖其实够,不是瓶颈。"盲关 200 人"的计划已否决,省下日限 30/号的几天铺设。真正的 wrong_user 问题用按抖音号反查_enrich-follow-douyin-number.ts)定点修,不靠盲关。

文件摆渡:paste.rs / 0x0 / tmpfiles 全挂 → 改 gh gist

把脚本/表从 mac 传无影的中转站接连失效:paste.rs0x0.sttmpfiles 全挂或限流。改用 gh gist 上传(走 GitHub,git 级稳)+ 无影 curl.exe 下载(下载方向一直通)。比临时 paste 站可靠得多。

无影平台层会"空闲挂起" → 真 7×24 还没解

实测一段 23:30 → 09:02 共 9.5 小时全空白:不是脚本崩,是无影平台层把空闲会话挂起了——powercfg 改电源策略管的是 OS 层,管不到平台层这层挂起。所以"关掉一切它自己 7×24 跑"目前还做不到,要解无影空闲断开(保持连接 / 控制台保活策略)。生产档监控 --max-age-min 10,两窗口(监控+消费)可见、能自重启常驻。

关注流导航三根因已修(6/13)

之前批量~9 成"点空/落到非主页",根因三条全修:①用户tab 坐标与首条结果重叠成同一点→改 VL 定位「用户」二字;②搜人前没回首页 → 搜索框漂移点空 → goto_home() 钉死首页再搜;③already_followed() 用诱导式提问"找已关注按钮"→问就答已关注、一个不关 → 改裁剪头部"读按钮文字"判别。配 OCR 身份门"非主页/加载中"重试 3 次。

坐标体系:千分比 + 抓坐标小工具

无影上所有点击坐标用千分比(0–1000)而非绝对像素,换分辨率不用全量重标。要精确坐标时用 _capture_pos.py(倒数 5 秒捕获鼠标位置 → 打印千分比)。连播开关、左下角暂停键这些都靠它量。另有 seen 去重表按 aweme_id 防同一视频重复触。

当前真实状态(2026-06-14 · 不粉饰)

Akke · 潜在触达流程 + 复刻 SOP + 常态运维 · 口径随实现演进,以代码为准 · 2026-06-14