douyin-realtime-search

抖音作品实时搜索工具。根据用户输入的关键词实时调用 Redfox 接口搜索抖音最新作品,支持按排序方式和发布时间筛选,返回实时数据(非缓存/历史数据)。当用户明确要求「实时」「最新」「现在」「当前」搜索抖音内容,或对已有数据时效性存疑时使用。触发词:抖音实时搜索、抖音最新作品、实时抖音热门、当前抖音数据、抖音实时查询。

Skill file

Preview skill file
---
name: douyin-realtime-search
description: 抖音作品实时搜索工具。根据用户输入的关键词实时调用 Redfox 接口搜索抖音最新作品,支持按排序方式和发布时间筛选,返回实时数据(非缓存/历史数据)。当用户明确要求「实时」「最新」「现在」「当前」搜索抖音内容,或对已有数据时效性存疑时使用。触发词:抖音实时搜索、抖音最新作品、实时抖音热门、当前抖音数据、抖音实时查询。
---

# 抖音作品实时搜索

## 📝 简介

抖音作品实时搜索工具,根据关键词实时调用 Redfox 接口搜索抖音最新作品,返回实时数据(非缓存/历史数据)。支持按排序方式和发布时间筛选。

## ✨ 功能特性

| 功能模块 | 能力描述 | 核心价值 |
|---------|---------|---------|
| 实时搜索 | 关键词实时搜索抖音最新作品 | 获取非缓存的实时数据 |
| 多维排序 | 支持综合/最新/点赞三种排序 | 按不同维度发现优质内容 |
| 时间筛选 | 支持 7天/30天/90天/不限时间范围 | 灵活控制搜索时间窗口 |
| 智能拓展 | 无结果时自动生成 10 个扩展词 | 突破搜索瓶颈发现相关内容 |
| 分页浏览 | 支持多页结果浏览 | 逐页探索大量搜索结果 |
| 订阅推送 | 支持关键词每日推送 | 定时获取最新搜索结果 |

## 🔑 鉴权

### 获取 API Key

请前往 [红狐hub](https://redfox.hk/settings/api-keys?source=github) 获取 API KEY

### 配置 API Key

方案1: 以 Qoder 为例,将 REDFOX_API_KEY 添加到 `~/.openclaw/openclaw.json` 中:

```bash
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
```

方案2: 终端配置

```bash
export REDFOX_API_KEY="ak_xxxx..."
```

## 🔄 工作流程

### Step 1:理解用户意图,提取关键词和筛选参数

**⚠️ 核心规则:语义理解优先,优先提取细分方向词,而非泛化大类词**

**1. 提取关键词**

- 从用户描述中提取 2~6 字的细分关键词
- 若用户意图模糊(如"帮我搜抖音"),主动询问:「请问你想搜索哪个方向或领域的内容?」
- 不得在用户未提供关键词时擅自猜测并调用脚本

**2. 识别筛选参数**(用户未指定时使用默认值)

- **排序方式**(`--sort`):默认 `1`(综合排序)
  - 用户提到"最新"、"最近发布" → `2`
  - 用户提到"点赞"、"热门"、"爆款" → `3`
  - 未提及排序 → `1`(默认)
- **发布时间**(`--time`):默认 `7`(最近7天)
  - 用户提到"近一个月"、"30天" → `30`
  - 用户提到"近三个月"、"90天" → `90`
  - 用户提到"不限时间"、"全部" → `0`
  - 未提及时间 → `7`(默认)
- **页码**(`--page`):默认 `1`
  - 用户提到"下一页"、"第2页" → 对应页码
  - 用户提到"上一页" → 当前页 - 1
  - 未提及页码 → `1`(默认)

### Step 2:调用实时搜索脚本

```bash
python3 ~/.agents/skills/douyin-realtime-search/scripts/search_douyin_realtime.py "<关键词>" [--sort 排序] [--time 时间] [--page 页码]
```

**参数说明:**

| 参数     | 可选值                    | 含义                                    |
| -------- | ------------------------- | --------------------------------------- |
| keyword  | 任意字符串                | 搜索关键词,多个词用英文逗号连接         |
| `--sort` | `1` / `2` / `3`           | 综合排序 / 最新发布 / 最多点赞(默认1)  |
| `--time` | `7` / `30` / `90` / `0`   | 最近7天 / 30天 / 90天 / 不限(默认7)   |
| `--page` | 正整数                    | 页码,从1开始(默认1)                  |

脚本以 JSON 格式输出:

| 字段                 | 说明                           |
| -------------------- | ------------------------------ |
| `articles`           | 关键词匹配作品列表(按点赞降序) |
| `latestHotArticles`  | 近期热门推荐作品(兜底展示)    |
| `hotTopics`          | 相关热门话题标签               |
| `sort_type_label`    | 本次排序方式文字说明            |
| `publish_time_label` | 本次时间范围文字说明            |
| `page`               | 当前页码                       |
| `has_next`           | 是否有下一页(true/false)     |

每条作品字段:

| 字段             | 说明     |
| ---------------- | -------- |
| `title`          | 作品标题 |
| `author`         | 作者名称 |
| `like_count`     | 点赞数   |
| `comment_count`  | 评论数   |
| `share_count`    | 分享数   |
| `collect_count`  | 收藏数   |
| `work_url`       | 作品链接 |
| `publish_time`   | 发布时间 |
| `follower_count` | 粉丝数   |

### Step 3:判断结果并展示

#### 情况 A:articles 数量 > 0(有匹配结果)

**A1. 告知用户查询范围**

> 📊 关键词「**XXX**」实时查询到 **N 条**作品(排序:{sort_type_label} | 时间范围:{publish_time_label} | 第 {page} 页),以下是详细数据:

**A2. 渲染 Markdown 表格(全部展示)**

```markdown
| #   | 作品标题             | 作者   | 点赞数 | 评论数 | 分享数 | 收藏数 |
| --- | -------------------- | ------ | ------ | ------ | ------ | ------ |
| 1   | [标题文字](作品链接) | 作者名 | 305.2w | 7.1w   | 51.0w  | 14.7w  |
```

**数字格式化规则:**
- `< 10000`:原始数字(如 `320`)
- `≥ 10000`:`x.xw` 格式(如 `1.2w`)

**标题规则:** `[标题](work_url)`;超过 30 字截断并加 `...`

**A3. 筛选能力提示(紧接在表格之后,每次必须输出)**

> 🔧 **支持筛选,回复以下指令可切换条件重新搜索:**
> - **排序方式**:综合排序 / 最新发布 / 最多点赞(当前:{sort_type_label})
> - **发布时间**:最近7天 / 最近30天 / 最近90天 / 不限(当前:{publish_time_label})
>
> 示例:「按最新发布、最近30天重新搜索」

**A4. 翻页提示(⚠️ 紧接在 A3 之后,不可省略,每次必须输出)**

- 若 `has_next` 为 true:
> 📄 当前第 **{page}** 页。回复「下一页」继续查看。

- 若 `has_next` 为 false(当前页不足 9 条或为空,已是最后一页):
> 📄 当前第 **{page}** 页,已无更多数据。

**⚠️ A1~A4 缺一不可,必须在同一轮输出中连续完成。输出 A4 后紧跟 Step 4 订阅提示。若缺少 A4,视为执行错误,必须重新补充输出。**

#### 情况 B:articles 数量 = 0(无匹配结果)

**B1. 抱歉提示 + 拓词推荐**

> 😔 抱歉,未找到与「**XXX**」直接相关的内容,你可以尝试用更短或更宽泛的关键词重试(扩展词1,扩展词2,...扩展词10)

AI 必须生成**固定 10 个**扩展词,2~6 字,英文逗号分隔,不得少于 10 个。

**B2. 筛选能力提示(紧接在 B1 之后,每次必须输出,格式同 A3)**

**⚠️ B1~B2 必须在同一轮输出中连续完成,输出 B2 后紧跟 Step 4 订阅提示,不得中断。**

### Step 4:提示订阅

全部内容展示完毕后,**不等待、立刻结束输出**,仅在末尾附上订阅提示:

> 📩 是否订阅「**XXX**」的每日推送?订阅后每天 10:00 自动推送最新爆款作品。回复「确认订阅」即可创建定时任务。

### Step 5:创建定时任务(用户回复「确认订阅」时执行)

优先使用平台内置定时任务能力,若无则提供通用方案:

**平台内置定时任务(优先):**
- 任务名称:`抖音实时搜索订阅 - <关键词>`
- 执行频率:每天 10:00(cron:`0 10 * * *`)
- 执行内容:运行脚本并将结果按 Step 3~4 格式展示推送到当前对话

**通用配置方案:**
```bash
# Linux/macOS crontab
0 10 * * * python3 ~/.agents/skills/douyin-realtime-search/scripts/search_douyin_realtime.py "<关键词>"
```

创建成功后告知用户:"已成功订阅关键词「<关键词>」的实时作品推送,每天 10:00 将自动查询最新数据并通知你。"

Source

Creator's repository · redfox-data/redfox-community

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk