# Wechat Channels Crawler

> 视频号作品查询工具。根据用户输入的关键词搜索视频号热门作品，支持按最新、最多点赞、最多收藏和综合排序，结果以结构化表格展示。当用户想要查找视频号热门内容、搜索视频号爆款视频、查询视频号作品数据、了解某类内容在视频号的表现时使用。触发词包括：视频号搜索、视频号作品查询、视频号爆款、视频号热门、视频号内容搜索、搜视频号、微信视频号搜索。

- Skill: `redfox-data/wechat-channels-crawler` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds add redfox-data/wechat-channels-crawler`
- Raw SKILL.md: https://api.skillmd.com/api/skills/redfox-data/wechat-channels-crawler/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: redfox-data (https://skillmd.com/u/redfox-data)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/redfox-data/wechat-channels-crawler

---


# 视频号作品搜索

> 输入关键词 → 搜索视频号热门作品 → 结构化表格展示 → 支持订阅每日推送

***

## 简介

输入关键词即可查询视频号热门作品，以结构化表格呈现点赞、评论、转发、收藏等互动数据，帮你快速掌握各类内容在视频号的真实表现。

***

## 功能特性

| 功能         | 说明                                             |
|------------|------------------------------------------------|
| 🔍 关键词搜索 | 输入内容主题关键词，返回视频号平台相关作品列表              |
| 📊 多维排序   | 支持按综合、最新、最多点赞、最多收藏四种方式排序              |
| 📋 结构化表格  | 默认展示前 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（北京时间）自动执行一次查询。

