wechat-channels-crawler · git:20260806.c36cc99 · 2026-08-06 · sha256 47d14aad8def40dd
wechat-channels-crawler git:20260806.c36cc99A
Immutable. This exact content is served forever at /api/v1/blob/47d14aad8def40dd.
---
name: wechat-channels-crawler
description: 视频号作品查询工具。根据用户输入的关键词搜索视频号热门作品,支持按最新、最多点赞、最多收藏和综合排序,结果以结构化表格展示。当用户想要查找视频号热门内容、搜索视频号爆款视频、查询视频号作品数据、了解某类内容在视频号的表现时使用。触发词包括:视频号搜索、视频号作品查询、视频号爆款、视频号热门、视频号内容搜索、搜视频号、微信视频号搜索。
---
# 视频号作品搜索
> 输入关键词 → 搜索视频号热门作品 → 结构化表格展示 → 支持订阅每日推送
***
## 简介
输入关键词即可查询视频号热门作品,以结构化表格呈现点赞、评论、转发、收藏等互动数据,帮你快速掌握各类内容在视频号的真实表现。
***
## 功能特性
| 功能 | 说明 |
|------------|------------------------------------------------|
| 🔍 关键词搜索 | 输入内容主题关键词,返回视频号平台相关作品列表 |
| 📊 多维排序 | 支持按综合、最新、最多点赞、最多收藏四种方式排序 |
| 📋 结构化表格 | 默认展示前 20 条,含作品标题、作者、发布时间、互动数据 |
| 🔔 订阅推送 | 查询后可订阅关键词,每天 10:00 自动查询并推送最新作品 |
***
## 使用方式
### CLI 命令行
```bash
# 基础用法:按综合排序搜索
python3 ~/.agents/skills/wechat-channels-crawler/scripts/search_wechat_channels.py "美食"
# 按最新排序
python3 ~/.agents/skills/wechat-channels-crawler/scripts/search_wechat_channels.py "美食" --sort 最新
# 按最多点赞排序
python3 ~/.agents/skills/wechat-channels-crawler/scripts/search_wechat_channels.py "美食" --sort 最多点赞
# 翻页查询
python3 ~/.agents/skills/wechat-channels-crawler/scripts/search_wechat_channels.py "美食" --page 2
# 输出到文件(推荐,避免 Windows GBK 乱码)
python3 ~/.agents/skills/wechat-channels-crawler/scripts/search_wechat_channels.py "美食" -o result.json
```
### 参数说明
| 参数 | 说明 |
|----------|--------------------------------------------------|
| `keyword` | 搜索关键词(必需) |
| `--sort` | 排序方式:`综合` / `最新` / `最多点赞` / `最多收藏`,默认 `综合` |
| `--page` | 页码,从 1 开始,默认 `1` |
| `--size` | 每页条数,默认 `20`,最大 `50` |
| `--output` / `-o` | 输出到 JSON 文件(UTF-8),避免 shell 重定向乱码 |
### 依赖
本脚本仅使用 Python 标准库,无需安装额外依赖。
***
## Agent 集成指南
### 触发词
* 视频号搜索 / 视频号作品查询
* 视频号爆款 / 视频号热门
* 视频号内容搜索 / 搜视频号
* 微信视频号搜索
### 执行流程
### Step 1: 🔍 用户意图理解
**⚠️ 核心规则:优先提取细分方向词,而非泛化的大类词**
| 用户输入 | 处理方式 |
|---------|--------|
| 无赛道关键词("最近热门作品") | 关键词传空字符串 `""`,查询全站热门 |
| 有细分词("职场穿搭"、"减脂餐") | 直接搜索,无需拓展 |
| 有泛化词("穿搭"、"美食") | 执行拓展策略(Step 2) |
细分词判断原则:有场景/人群/风格/意图修饰 → 细分词;纯大类无修饰 → 泛化词。
**提取精确关键词**:从用户描述中提取细分领域词,而非泛化词。例:用户说“帮我找电影领域热门话题”且自称“小众电影、港台文化” → 搜索“小众电影、港台电影、电影乐评”,❌ 而非只搜“电影”。
**过滤触发钩子词**:用户输入中的「热门文章」「热门作品」「爆款」「热门内容」「查询」「搜索」等词是调用 Skill 的触发钩子,不属于搜索关键词,必须剥离。例:用户说“查询AI热门文章” → 关键词为「AI」,❌ 而非「AI热门文章」。
### Step 2: 🔄 泛化词拓展策略
**⚠️ 必须等待用户明确回复后再调用脚本!**
| 步骤 | 操作 |
|------|------|
| 1. 生成细分词 | 生成10个适中大小的细分词(趋势词、人群词、场景词、意图词各2-3个),禁止调用脚本 |
| 2. 等待用户回复 | 用户未回复时禁止调用脚本 |
| 3. 执行 | 回复「拓展」→ 10词以英文逗号连接,仅调用一次脚本;回复「不拓展」→ 搜索原关键词 |
输出示例:
```text
我识别到「中产」是较大的分类,推荐以下细分方向:
老钱,轻奢,品质生活,松弛感,高级感穿搭,体面,法式穿搭,律师,医生,品质家居
回复「拓展」将同时搜索这10个词,回复「不拓展」将继续搜索「中产」
```
### Step 3: 📡 调用 API 接口
```bash
python3 ~/.agents/skills/wechat-channels-crawler/scripts/search_wechat_channels.py "<关键词>" [--sort 排序]
```
脚本返回 JSON:
```json
{
"total": 10877641,
"list": [
{
"title": "作品描述...",
"author": "作者名称",
"like_count": 3052000,
"comment_count": 71000,
"share_count": 510000,
"collect_count": 147000,
"work_url": "https://findermp.video.qq.com/...",
"publish_time": "2026-07-22 14:12:18",
"topics": ["美食", "三明治"],
"duration": 57
}
]
}
```
字段说明:
| 字段 | 说明 | 字段 | 说明 |
|-----|------|-----|------|
| title | 作品描述 | share_count | 转发数 |
| author | 作者名称 | collect_count | 收藏数 |
| like_count | 点赞数 | work_url | 视频链接 |
| comment_count | 评论数 | publish_time | 发布时间 |
| topics | 话题标签数组 | duration | 视频时长(秒) |
#### Step 4: 格式化输出表格
将返回数据渲染为 Markdown 表格,默认展示前 **20 条**:
```markdown
| # | 作品标题 | 作者 | 点赞数 | 评论数 | 转发数 | 收藏数 | 发布时间 |
|---|---------|------|-------|-------|-------|-------|---------|
| 1 | 标题文字 | 作者名 | 305.2w | 7.1w | 51.0w | 14.7w | 07-22 |
```
**数字格式化规则:**
- 小于 10000:直接展示原始数字(如 `320`)
- 大于等于 10000:使用 `x.xw` 格式(如 `1.2w` = 12000)
**发布时间格式化规则:**
- 取 `publish_time` 的月-日部分,格式为 `MM-DD`(如 `2026-07-22 14:12:18` → `07-22`)
**标题展示规则:**
- 标题以纯文本展示,不加链接
- 标题超过 30 字时截断并加 `...`
#### Step 5: 查看更多数据(当还能翻页时)
在表格下方提示:
> 当前为第x页,是否查看下一页数据?
使用 AskUserQuestion 询问:
```
question: "是否查看下一页数据?"
header: "下一页/翻页"
options:
- label: "下一页/翻页" description: "展示下一页数据(续接 #21 开始编号)"
- label: "不用了" description: "仅查看前 20 条"
```
- **查看全部**:从 #21 起续接展示,编号连续递增,完成后进入 Step 6
- **不用了**:直接进入 Step 6
#### Step 6: 提示订阅
表格展示完成后,使用 AskUserQuestion 询问:
```
question: "是否订阅该搜索?订阅后将每天自动推送相关视频号爆款作品数据。"
header: "订阅"
options:
- label: "确认订阅" description: "创建定时任务,每天 10:00 自动查询并推送"
- label: "暂不订阅" description: "仅查看本次数据,不创建定时任务"
```
#### Step 7: 创建定时任务(仅用户确认订阅时执行)
使用 `qoder_cron` 工具创建:
```json
{
"action": "add",
"job": {
"name": "视频号爆款作品订阅 - <关键词>",
"description": "每天查询视频号关键词 <关键词> 的爆款作品数据并推送",
"schedule": {
"kind": "cron",
"expr": "0 10 * * *",
"tz": "Asia/Shanghai"
},
"payload": {
"kind": "agentTurn",
"message": "请执行视频号作品查询:运行 python3 ~/.agents/skills/wechat-channels-crawler/scripts/search_wechat_channels.py \"<关键词>\",将结果整理为表格展示(表头:作品标题 | 作者 | 点赞数 | 评论数 | 转发数 | 收藏数 | 发布时间,展示前 20 条,数字 >= 10000 用 x.xw 格式,发布时间取 MM-DD 格式,标题纯文本不加链接,不展示总条数)。完成后将结果推送到当前对话。"
},
"missedRunPolicy": "skip"
}
}
```
创建成功后告知用户:"已成功订阅关键词「<关键词>」的视频号爆款作品推送,每天 10:00 将自动查询最新数据并通知你。"
### 输出规范
#### ⛔ 强制规则
> **Agent 必须完整展示所有返回数据,禁止省略任何条目。数字必须按规则格式化,发布时间取 MM-DD 格式,标题纯文本不加链接,不展示总条数。**
***
## API 说明
### 认证方式
本技能需要 `REDFOX_API_KEY` 环境变量。
**获取方式:** 前往 [红狐hub](https://redfox.hk/settings/api-keys?source=github) 注册并获取 API Key。
**配置方式:**
方案 1 — 配置文件(推荐):
```json
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
```
方案 2 — 终端环境变量:
```bash
export REDFOX_API_KEY="ak_xxxx..."
```
### 接口信息
| 项目 | 说明 |
|-----|------|
| 端点 | `POST https://redfox.hk/story/api/sphAllData/searchWork` |
| 认证 | Header `X-API-Key` |
| source 参数 | `视频号作品爬虫-GitHub` |
***
## 常见问题
**Q:搜索结果为空怎么办?**
A:可能是关键词过于小众或暂时缺少相关数据。尝试更换关键词重新搜索,如将"母婴好物"改为"母婴"。
**Q:排序方式有什么区别?**
A:「综合」按平台推荐权重排序,「最新」按发布时间倒序,「最多点赞」和「最多收藏」分别按对应互动数据排序。
**Q:订阅推送后如何取消?**
A:通过 `qoder_cron` 工具使用 `action: "list"` 查看已创建的定时任务,找到对应订阅后使用 `action: "remove"` 删除即可。
**Q:数据多久更新一次?**
A:每天更新昨日数据。订阅推送默认每天 10:00(北京时间)自动执行一次查询。