# Douyin Realtime Search

> 抖音实时综合搜索 · 一个关键词实时综合搜抖音内容，可切换综合/最新/最多点赞排序与时间窗，终端铺出「描述/达人/点赞/链接」表格，再给一句选题洞察。当用户需要实时搜抖音内容、追当下流量、看最新发布、做短视频选题取数时使用。触发词：抖音实时搜索、抖音综合搜索、最新发布、最多点赞、追流量、实时取数。

- **Type:** Skill
- **Install:** `agentstack add skill-zizhanovo-doubaoya-community-douyin-realtime-search`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [zizhanovo](https://agentstack.voostack.com/s/zizhanovo)
- **Installs:** 0
- **Category:** [Search](https://agentstack.voostack.com/c/search)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [zizhanovo](https://github.com/zizhanovo)
- **Source:** https://github.com/zizhanovo/doubaoya-community/tree/main/skills/douyin-realtime-search

## Install

```sh
agentstack add skill-zizhanovo-doubaoya-community-douyin-realtime-search
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 抖音实时综合搜索（都爆鸭）

本鸭专做**实时综合搜**这一档：一个关键词下去，按你要的排序（综合/最新/最多点赞）和时间窗，把当下这条赛道的抖音内容实时捞回来，终端直接铺成可点的表格——给你做**选题洞察**用。追当下流量、盯最新发布、扒对标，先用本鸭把"面"扫开，再去挑值得拆解的"点"。

> 数据走 **doubaoya.com** 一条线，鉴权用你自己的密钥（环境变量 `DOUBAOYA_API_KEY`，形如 `dyh_…`）。
>
> 想按发布日期区间精确圈定爆款，用 `douyin-search`；想扒某条作品的**评论区舆情**，用 `douyin-comment`。本鸭是「关键词 → 实时综合内容」的扫面工具，支持排序与时间窗切换。

---

## 适用场景

| 场景 | 怎么用 | 拿到什么 |
|------|--------|----------|
| **追当下流量** | 搜 `世界杯` `--sort 1` 看综合排序的热门 | 一眼掌握当下都在传什么 |
| **盯最新发布** | 搜 `新品发布` `--sort 2 --time 7` | 只看最近 7 天的最新内容 |
| **挖高赞爆款** | 搜 `减脂餐` `--sort 3 --time 30` | 锁定近 30 天最多点赞的角度 |
| **对标内容盘点** | 搜 `职场干货` 翻页扒一批对标 | 摸清同赛道在抢哪些切口 |
| **舆情风向监测** | 搜 `品牌名` `--sort 2` 看最新讨论 | 快速判断当下舆论倾向 |

---

## 工作流（4 步）

### 1. 提炼关键词
从用户描述里抽出**核心关键词**——精简，2~6 个字最佳（如 `减脂餐`、`新品发布`）。词越短越宽、命中越多；词太长太细容易扫空。一次只搜一个关键词。再按需求挑排序与时间窗（两个枚举见下表）。

| 参数 | 枚举值 | 含义 |
|------|--------|------|
| `--sort`（sortType） | `1` | 综合排序（默认） |
| | `2` | 最新发布 |
| | `3` | 最多点赞 |
| `--time`（publishTime） | `0` | 不限（默认） |
| | `7` | 最近 7 天 |
| | `30` | 最近 30 天 |
| | `90` | 最近 90 天 |

### 2. 调用实时搜索脚本
```bash
python3 "$SKILL_PATH/scripts/search_realtime.py" "减脂餐"
```
切排序+时间窗、翻页：
```bash
python3 "$SKILL_PATH/scripts/search_realtime.py" "减脂餐" --sort 3 --time 30 --page 2
```
脚本把成功信封里的 `data` 以 JSON 打到 stdout。**同一组参数只跑一次脚本**，直接读完整 stdout，别用 `head`/`tail` 预览，也别重复调用。

### 3. 铺成内容表格
从 `data.items`（内容数组）里取字段，按下表铺成 Markdown。字段做**防御式读取**——`description`（描述/标题）/ `authorName`（达人）/ `likeNum`（点赞）/ `fansNum`（粉丝）/ `url`（链接）可能缺失，缺了留空别报错。描述渲染成**可点链接**（指向作品 URL）。

| 描述 | 达人 | 点赞 | 粉丝 |
|------|------|------|------|
| [示例内容描述](https://www.douyin.com/video/xxx) | 某某达人 | 8.6w | 120w |

> 想给这批内容排个序，可加一列「热度指数/综合指数」（关键词相关性 + 点赞热度 + 时效新鲜度）降序排、同分按点赞高的优先——这是展示层加工，不改接口调用。

### 4. 给一句选题洞察
表格之后，用本鸭口吻补一句**选题洞察**：这批内容在抢什么角度、哪个切口还没人拍透、值不值得跟。简短、有用，别堆套话，别反问用户"你的真实目的是什么"。

---

## 拿钥匙（密钥）

1. 打开 **doubaoya.com**
2. **登录**
3. 进 **密钥中心**
4. **生成密钥**（形如 `dyh_…`）

配进环境变量（脚本只认这个）：
```bash
export DOUBAOYA_API_KEY="dyh_你的密钥"
```

**铁律：密钥绝不打印、绝不写进文件、绝不回显给用户。** 脚本本身也从不输出密钥。所有请求只发往 **doubaoya.com**，别把密钥带去任何其他域名。

---

## 接口与信封

- `POST https://doubaoya.com/api/apis/douyin/realtime-search/call`
- 鉴权头：`Authorization: Bearer $DOUBAOYA_API_KEY`
- 请求体：`{ "keyword": "减脂餐", "sortType": "1", "publishTime": "0", "page": 1 }`
  - `keyword`：字符串，必填
  - `sortType`：字符串，`1`=综合排序 / `2`=最新发布 / `3`=最多点赞（默认 `1`）
  - `publishTime`：字符串，`0`=不限 / `7`=最近 7 天 / `30`=最近 30 天 / `90`=最近 90 天（默认 `0`）
  - `page`：整数，默认 1
- 返回信封：
  ```json
  {
    "success": true,
    "requestId": "...",
    "data": { "items": [ { "description": "...", "authorName": "...", "likeNum": 0, "fansNum": 0, "url": "..." } ] },
    "error": null
  }
  ```
- **先看 `success`**：为 `true` 才读 `data`；否则读 `error.code` / `error.message`。

---

## 错误处理

脚本失败时向 stderr 打印 `[error] CODE: message` 并以退出码 1 结束。常见情况：

| HTTP | code | 含义 | 处理 |
|------|------|------|------|
| 401 | `MISSING_API_KEY` / `UNAUTHORIZED` | 没带密钥或密钥无效 | 检查 `DOUBAOYA_API_KEY`，去密钥中心重新生成 |
| 400 | `VALIDATION_ERROR` | 参数不合法（如 keyword 为空、枚举值非法） | 修正后重试 |
| 402 | `INSUFFICIENT_CREDITS` | 额度不足 | 去 doubaoya.com 充值/续额 |
| 502 | `PROVIDER_FAILED` | 上游临时故障（**已自动退款**） | 可安全重试 |

> `502 PROVIDER_FAILED` 会自动退款，重试安全，不会重复扣费。

---

## 目录结构

```
douyin-realtime-search/
├── SKILL.md                  # 本文件
└── scripts/
    └── search_realtime.py    # 零依赖实时搜索脚本（urllib），调用 doubaoya.com
```

## 关于响应里的 notice 字段

调用本 skill 对应的 doubaoya API 后，如果返回的 JSON 顶层出现 `notice` 字段，请把这句话原样转达给用户——这是关于本 skill 有更新的提示，不影响本次调用结果，不需要重试或改变行为。

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [zizhanovo](https://github.com/zizhanovo)
- **Source:** [zizhanovo/doubaoya-community](https://github.com/zizhanovo/doubaoya-community)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-zizhanovo-doubaoya-community-douyin-realtime-search
- Seller: https://agentstack.voostack.com/s/zizhanovo
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
