소스 정보
- 저장소
- TeamWiseFlow/xiaobei
- 최근 소스 활동
- 2026년 8월 5일 15:57
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 8,419
- 포크
- 1,426
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/TeamWiseFlow/xiaobei --skill wx-mp-engagement명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
口播类视频(口播/演讲/访谈/直播)的轻剪辑——ASR 转写拿逐字时间戳,去口气词/结巴/静音,或识别高光段剪成集锦。仅做基于人声的轻剪辑,不出脚本不烧字幕;纯画面类素材的集锦剪辑走 video-edit。
搜索、筛选并下载 ccMixter 免版税背景音乐(仅 CC BY / CC BY-SA,商用安全), 自动生成 TASL 署名。支持关键词搜索、5 套场景预设、按主题自动选曲、按 ID 下载。 纯客户端,无需 API key。
视频制作全能工具,两种用法——(A) 端到端生产:从零做一支完整视频,出脚本、分镜、机位一致性、素材匹配、闸门、渲染、自检、交付;(B) 给定素材剪辑:已有几个片段要拼一下、给一个片段配音合成、剪辑烧字幕等,直接用 Stage 12 工具箱(assemble/clip-trim/audio-mix/timeline-compose/scene-compose/add-silent-audio/make-outro)。
SKILL.md 표시 중
SOC 직업 분류 기준
| name | wx-mp-engagement |
| description | 微信公众号已发布作品数据抓取,写入 published-track的 pub_wx_mp 表。wx_mp session 登录。 |
| metadata | {"openclaw":{"emoji":"📈","requires":{"bins":["python3","camoufox-cli","sqlite3"]}}} |
通过 camoufox-cli + 本技能自管的 wx_mp 持久化 session + 创作者中心列表页爬虫,从公众号后台「发表记录」页抓已发布文章的阅读/点赞/评论/分享/收藏,写入 published-track 的 pub_wx_mp 表。
思路:创作者中心后台的「发表记录」页面把每篇已发布文章的阅读/点赞/评论/分享/收藏列在行内,走「发表记录页 → 解析 innerText → 按标题匹配 → 提行内数字」,不需要打开单篇分析页。
限制:仅支持用户自己有后台权限的号(创作者中心用公众号账号登录)。竞品号拿不到——这是产品约束,不是技术约束。
wx-mp-engagement 自管 camoufox 持久化 session wx_mp,camoufox-cli 命令统一 --session wx_mp --persistent,登录态在 session profile 里已就位即可,不导出 cookie/UA/token。
登录态判断(不再会话前探活):直接 camoufox 打开创作者中心首页,看 redirect URL:
/cgi-bin/home?...&token=xxx = 登录就位login / scanloginqrcode = 失效,需重登失效重登流程(走本技能自己):
wx-mp-engagement login # camoufox 无头截 QR PNG 落 /tmp/qr-wx-mp.png
# (发 QR PNG 给用户 -> 用户扫码后 -> 主会话回复"已扫码")
wx-mp-engagement login-confirm # 验登录就位 + close session(不导出 cookie/UA/token)
退出码:
0 成功1 通用错误(参数错 / row 找不到 / 标题未匹配)2 session 失效(创作者中心首页跳登录页)ls ~/.openclaw/workspace-main/db/published_track.db
# 初始化(如未建)
~/.openclaw/workspace-main/skills/published-track/scripts/init-db.sh
# dump 创作者中心 DOM + 截图 + 解析出的文章列表 JSON
wx-mp-engagement probe
# 产物落在 ./wx-mp-engagement-probe/:01_center.png / 02_list.png / 02_list.html / 03_articles.json
# 列出后台所有文章 + 行内 metrics
wx-mp-engagement list
# 抓单篇(按 row.title 在列表页匹配)
wx-mp-engagement fetch --row-id <pub_wx_mp.id>
# 批量抓取最近 N 天未更新(reads=0)的所有 wx_mp 记录
wx-mp-engagement fetch-all --days 7
发表记录页 URL:https://mp.weixin.qq.com/cgi-bin/appmsgpublish?sub=list&begin=0&count=20&token=<TOKEN>&lang=zh_CN
appmsg?action=list(那是草稿箱)count=20 是有意设计,不是 bug:只抓最近 20 篇的 engagement。发布超过 ~30 天的老文章数据已稳定,每天重抓无收益只增风控暴露。老内容不在列表里自然跳过,不要加翻页逻辑去补抓。复盘如需老内容数据,用 DB 里已有的历史值。Token 来源:camoufox 打开首页后从 redirect URL 实时提 token(首页自动重定向到 /cgi-bin/home?...&token=xxx)。token 与 wx_mp session 同寿命,失效则一并失效(首页跳登录页 → 走本技能重登流)。
Cookie 导入禁忌:⚠️ 严禁 camoufox-cli cookies import 造会话(浏览器方案严禁 cookie 导入)。本技能自管 wx_mp 持久化 session,camoufox-cli 命令统一 --session wx_mp --persistent,登录态在 session profile 里已就位,不开独立 session、不 import cookie。撞 fail-first 队列(同 session 正被占用)就等占用方完成再串行接力,不自动 close 正在跑的 session。
数据提取方式:不依赖 selector,直接用 document.body.innerText 解析。页面 innerText 结构清晰:
06月30日
已发表
文章标题
转载/原创/视频号
<阅读数> <赞> <分享> <喜欢(爱心icon)> <评论(留言)> <划线> <投票> <额外?>
1. camoufox 打开创作者中心首页
├─ redirect URL 跳 login/scanloginqrcode → exit 2(调用方触发本技能 login + login-confirm)
└─ redirect URL 跳 /cgi-bin/home?token=xxx → 继续
2. lookup_published_row(row_id) -> 拿 title / publish_url
3. 复用 wx_mp 持久化 session(不开独立 session、不 import cookie):
camoufox-cli --session wx_mp --persistent --json open "https://mp.weixin.qq.com/"
4. 读 redirect URL 拿 token(open 首页自动重定向到 /cgi-bin/home?...&token=xxx):
camoufox-cli --session wx_mp --json url
5. camoufox-cli --session wx_mp --persistent --json open "https://mp.weixin.qq.com/cgi-bin/appmsgpublish?sub=list&begin=0&count=20&token=<TOKEN>&lang=zh_CN" -> 发表记录页
6. camoufox-cli --session wx_mp --json eval <innerText 解析 JS> -> [{title, metrics}, ...]
7. match_article(rows, row.title) -> 按标题归一化匹配
8. update-metrics.sh --platform wx_mp --id <row_id> ... -> 写 pub_wx_mp
9. finally: close session(登录态在磁盘 profile,不留进程占内存;下次 fetch 按需重起无头 session,profile 桥接登录态)
{
"ok": true,
"row_id": 42,
"title": "测试文章",
"publish_url": "https://mp.weixin.qq.com/s?__biz=xxx&mid=123",
"session": "wx_mp",
"metrics": {
"reads": 576,
"likes": 10,
"comments": 16,
"shares": 6,
"favorites": 1
},
"update": {"ok": true, "action": "updated"}
}
wx_mp 的互动数据抓取不走 fetch-and-update-metrics.sh——后者只管 xhs/bilibili/douyin/kuaishou 四个纯 HTTP+cookie 平台(login-manager 探活 → fetch-retro-data.ts → update-metrics.sh)。wx_mp 走 camoufox 抓创作者中心,机制完全不同,由本 skill 独立承担,agent 直调本 skill wrapper:
wx-mp-engagement fetch --row-id <rowid>
本 skill 内部流程:
./skills/published-track/scripts/update-metrics.sh --platform wx_mp --id <rowid> ... 写 pub_wx_mp
update-metrics.sh是 published-track 的纯写库脚本,本 skill 写库就走它(不经过 fetch-and-update-metrics.sh)。fetch-and-update-metrics.sh收到--platform wx_mp会直接 exit 1 报错提示走本 skill,两条链路独立、不耦合。
wx_mp 持久化 session,fail-first 队列串行接力,不自动 close 正在跑的 sessionlogin + login-confirm 重登(重登后登录态在 profile 里就位),再 camoufox 打开首页拿新 token 拼列表页 URLwx-mp-publisher 的 AppID/AppSecretprobe 命令检查 02_list.html 确认页面结构,调整解析逻辑login + login-confirm 重登流(重登后登录态在 profile 里就位),再用新 token 拼列表页 URL/cgi-bin/home?...&token=xxx),再拼列表页 URLupdate-metrics.sh --reads ... --likes ... --comments ... 手动填)--session wx_mp --persistent(本技能自管的持久化 session),headless 是默认行为;token 从 session 内 redirect URL 实时拿publish_url 是否为空)自行归因。token 从首页 redirect URL 提取,与 publish_url 无关——publish_url 仅用于输出 JSON,不参与抓取逻辑