微信视频号媒体助手 (WeChat Channels Media Assistant)
Goal
通过 ServiceHub 提供的微信视频号后端接口,面向自媒体运营与数据分析场景,提供统一的对话式数据获取与文案分析能力:
- 博主资料与统计:抓取博主公开资料、签名、作品数、粉丝数及认证信息。
- 博主作品列表翻页:连续翻页获取博主历史发布的作品,支持输入任一作品分享链接自动反查博主,支持断点续翻游标。
- 单视频详情元数据:获取作品点赞/收藏/转发/评论 4 大互动数据、腾讯 CDN 鉴权封面与解密播放流。
- 视频一级评论与二级回复:连续翻页抓取视频根评论与二级子回复列表。
- 微信搜一搜作品:基于关键词在微信搜一搜中检索视频号作品列表。
- 视频文案提取与处理:提取 ASR 原始语音转录(含时间戳)、大模型智能分段整理稿以及核心要点摘要。
Required Inputs
运行本技能前应具备:
- ServiceHub 账户凭证:用户名 (
username) 与密码/通行令牌 (passtoken)。 - 目标视频号标识:
- 微信端复制的任意分享文本(如微信视频号分享:【普通人AI怎么选?】https://channels.weixin.qq.com/...);
- 或视频作品 ID (object_id)、博主 ID (author_user_id/channel_id)、搜索关键词 (keyword)。
> 🔑 账号注册与凭证获取:
> 本技能基于 ServiceHub 数据接口运行。若您尚未拥有账号,请前往官网 https://www.ccailab.top 注册并获取您的用户名与密码(或 passtoken)。
ServiceHub 服务地址固定为:
https://www.ccailab.top
凭证优先级与智能记忆
- 命令行参数:
--username,--password - 专属环境变量:
WECHAT_VIDEO_MEDIA_ASSISTANT_USERNAME,WECHAT_VIDEO_MEDIA_ASSISTANT_PASSWORD - 共享环境变量:
SERVICEHUB_USERNAME,SERVICEHUB_PASSWORD,SERVICEHUB_PASSTOKEN - 本地回退凭证文件:
data/credentials.json
> 💡 智能记忆机制:用户在对话中首次提供账号密码后,脚本自动持久化至本地 data/credentials.json,后续调用自动复用,不再重复追问。
Workflow
- 如需确认详细接口字段与数据结构,先读取 api_spec.md。
- 从用户自然语言中识别任务意图并映射到具体子命令:
-blogger:抓取博主主页资料与统计
-videos:连续翻页拉取博主作品列表
-detail:抓取单个视频详情与互动指标
-comments:抓取视频一级根评论
-replies:抓取评论二级回复(需提供comment_id)
-search:微信搜一搜作品列表(需提供keyword)
-text:提取视频原始文案、整理文案或摘要稿(需指定text_type) - 检查关键参数:若缺失核心标识(如链接/ID/关键词),主动进行针对性追问。
- 确定数据处理模式:默认使用
--type extract(读库,0 积分);当用户要求“更新/最新/刷新”时使用--type update。 - 运行底层脚本执行请求:
bash python scripts/wechat_video_tool.py <subcommand> [options] - 解析脚本返回的 JSON 结构,向用户呈现结构化表格、排版文案或分析总结。
Decision Rules
1. 意图识别规则
- “这个博主是谁 / 博主信息 / 博主资料” ➔
blogger - “博主发了什么作品 / 主页视频列表 / 作品翻页” ➔
videos - “这个视频数据如何 / 视频播放量点赞数 / 视频详情” ➔
detail - “看下评论区 / 评论列表 / 用户评价” ➔
comments - “评论回复 / 子评论 / 楼中楼” ➔
replies(需comment_id) - “搜一下视频号 / 搜一搜关于X的视频” ➔
search(需keyword) - “提取文案 / 整理文案 / 视频摘要 / 口播词” ➔
text(默认--text-type arr)
2. 默认值与模式规则
- 数据模式:默认
--type extract(0 积分保护)。若用户明确包含“最新 / 更新 / 刷新 / 重新抓取 / 最新数据”,则切换为--type update。 - 文案类型 (
text_type): - 用户说“整理 / 排版 / 改写 / 分段” ➔
--text-type arr - 用户说“原始 / 逐字稿 / 字幕 / ASR” ➔
--text-type ori - 用户说“摘要 / 总结 / 核心要点 / 提炼” ➔
--text-type sum - 翻页与游标:默认
--page-turns 1;当存在上一轮返回的next_cursor时,传入--last-buffer <cursor>断点续翻。
Output Requirements
向用户输出时,应保持清晰、结构化和高可读性:
- 博主与视频元数据:以 Markdown 表格或卡片形式展示核心指标(标题、昵称、发布时间、时长、点赞、收藏、转发、评论数)。
- 文案输出:
- 整理文案与摘要以结构化 Markdown 排版;
- 原始转录文案包含字句级时间戳明细时,折叠或结构化呈现。 - 评论列表:列出评论人、IP 属地、点赞数与评论正文。
- 积分与状态透明化:在涉及
update模式调用后,简要注明本次消耗积分与最新余额,并在有下一页数据时提供next_cursor断点续翻提示。
Validation
执行完成后,对照以下检查点进行验证:
- Check 1 (返回状态): JSON 顶层
code == 200且data非空。 - Check 2 (数据完整性): 视频对象包含
video_id、title、cover_url与有效互动数值。 - Check 3 (文案融合有效性): 在
update模式下提取作品时,数据库历史已有文案未被覆盖置空。 - Check 4 (断点游标): 主页作品翻页与搜一搜返回合法的
next_cursor/has_more状态。
Fallback
- 401 未授权 / 凭证错误:提示用户检查 ServiceHub 用户名与密码/passtoken 是否有效。
- 402 积分不足:提示用户当前积分余额不足以支付本次
update操作,引导用户充值或切换为extract模式。 - 404 数据不存在 (extract 模式):说明本地数据库暂无该视频/博主缓存,建议用户授权切换为
--type update模式在线拉取。 - 输入链接解析失败:提示用户确认是否为标准微信视频号分享文本(需包含
channels.weixin.qq.com或weixin.qq.com/sph/格式)。
Examples
示例 1: 抓取单视频详情与互动数据
用户输入: “帮我查一下这个微信视频号的数据:https://weixin.qq.com/sph/AWqPAnsZmW”
执行动作:
python scripts/wechat_video_tool.py detail --share-text "https://weixin.qq.com/sph/AWqPAnsZmW" --type update
示例 2: 抓取博主主页作品列表
用户输入: “抓取这个博主最新的 15 条视频号作品:https://weixin.qq.com/sph/AWqPAnsZmW”
执行动作:
python scripts/wechat_video_tool.py videos --share-text "https://weixin.qq.com/sph/AWqPAnsZmW" --page-turns 1 --type update
示例 3: 提取视频智能整理文案
用户输入: “把这个视频号的文案提取并分段整理出来:https://weixin.qq.com/sph/AWqPAnsZmW”
执行动作:
python scripts/wechat_video_tool.py text --text-type arr --share-text "https://weixin.qq.com/sph/AWqPAnsZmW" --type update
示例 4: 微信搜一搜作品
用户输入: “在视频号搜一下关于'DeepSeek'的最新视频”
执行动作:
python scripts/wechat_video_tool.py search --keyword "DeepSeek" --page-turns 1 --type update