Quack! With one keyword, this duck simultaneously pulls backXiaohongshu, Douyin, WeChat Official Accountsreal works from the past 30 days—all three platforms at once, view public opinion across platforms and compare topic angles, no need to flip through one platform at a time.
Data goes through doubaoya.com in one line; authentication uses your own key (environment variable
DOUBAOYA_API_KEY, in the formdyh_…)。
Applicable scenarios
| Scenario | How to use | What you get |
|---|---|---|
| Cross-platform public opinion comparison | Search 大模型 to see what each of the three platforms is discussing |
See at a glance which platform is hotter and where the differences in framing lie |
| Cross-platform topic angle comparison | Search 减脂 to compare Xiaohongshu recommendations / Douyin follow-up reviews / WeChat Official Account in-depth pieces |
The entry points and angles of each platform on the same topic |
| Brand reputation monitoring | Search 某品牌 to see reputation and discussion across the three platforms |
Multi-dimensional public opinion perspectives, cross-verification |
| Hot topic research | Search 2026 经济 to see trends across the entire web |
As a foundation for research / reports |
| Historical backtracking | Add --start-date / --end-date to define the time window |
Track trend evolution over a period of time |
Platform signal quick read: Xiaohongshu = recommendation experience / tutorials and guides; Douyin = hotspot follow-up reviews / emotional spread; WeChat Official Accounts = industry depth / viewpoint output. Conclusions cross-verified across the three platforms are the most reliable.
Workflow (4 steps)
1. Understand the intent and extract keywords
Extract from the user's description thecore keyword, best condensed to 2–6 characters (e.g., AI 视频、大模型、职场). The shorter the word, the broader it is and the more hits; too long and too specific easily returns nothing. Search only one keyword at a time. When the topic is too vague (e.g., "tool," "method"), first ask the user to make it more specific before searching.
2. Call the aggregation script
python3 "$SKILL_PATH/scripts/search_cn30.py" "大模型"
Define the time window (optional, backtrack to any interval within the past 30 days):
python3 "$SKILL_PATH/scripts/search_cn30.py" "大模型" --start-date 2026-06-01 --end-date 2026-06-24
The script outputs the data from the success envelope as JSON to stdout.Run the script only once per query, read the complete stdout directly, do not use head / tail to preview or repeatedly call for the same keyword.
3. Render the three-platform table
The returned data contains three arrays (read defensively; leave missing fields blank and do not error):
| Array key | Platform | Typical fields |
|---|---|---|
xhsResult |
Xiaohongshu | title / authorName / likeCount / commentCount / publishTime / link |
dyResult |
Douyin | title / authorName / likes / comments / shares / publishTime / link |
gzhResult |
WeChat Official Accounts | title / accountName / reads / likes / publishTime / link |
Display method (choose one of two):
- Three tables by platform(Recommended): in the order WeChat Official Account → Xiaohongshu → Douyin, one table per platform, each taking several top-engagement items, with titles rendered as clickable links.
Title Author Engagement Publish time - Merge into one table: add a "Platform" column and merge the three groups of works into
平台 / 标题 / 互动 / 发布时间one table for easy side-by-side comparison.
4. Give a cross-platform insight
After the tables, add one line in this duck's tone oncross-platform insight: the popularity gap for the same topic across the three platforms, the differences in angle on each platform, which angle has not yet been written thoroughly, and whether it is worth following. Keep it short and useful, don't pile on platitudes, and don't ask the user "what is the real purpose".
Get the key (secret key)
- Open doubaoya.com
- Log in(register first if you don't have an account)
- Go to Key Center
- Generate key(in the form
dyh_…)
Configure it into an environment variable (the script only recognizes this one):
export DOUBAOYA_API_KEY="dyh_你的密钥"
Iron rule: never print the key, never write it into a file, never echo it back to the user. The script itself also never outputs the key. All requests are sent only to doubaoya.com, do not take the key to any other domain.
Dependencies: only the Python 3 standard library is used, no third-party packages need to be installed.
API and envelope
POST https://doubaoya.com/api/apis/multi/cn30-multi-search/call- Auth header:
Authorization: Bearer $DOUBAOYA_API_KEY - Request body:
{ "keyword": "大模型" }, optionally withstartDate/endDatekeyword: string, requiredstartDate/endDate:YYYY-MM-DD,optional—when not passed, the server takes the default of the last 30 days; only include it when the user has given a time criterion
- Return envelope:
{ "success": true, "requestId": "...", "data": { "xhsResult": [ { "title": "...", "authorName": "...", "likeCount": 0, "publishTime": "..." } ], "dyResult": [ { "title": "...", "authorName": "...", "publishTime": "..." } ], "gzhResult": [ { "title": "...", "accountName": "...", "publishTime": "..." } ] }, "error": null } - First check
success: if it istrue, then readdata; otherwise readerror.code/error.message。 - Field defense: the field naming of each work in the three arrays may differ slightly and may also be missing; always "if it cannot be retrieved, give a default value", leave it blank if missing, and don't let one piece of data crash the whole table.
Error handling
When the script fails, print to stderr [error] CODE: message and exit with code 1. Common cases:
| HTTP | code | Meaning | Handling |
|---|---|---|---|
| 401 | MISSING_API_KEY / UNAUTHORIZED |
No key provided or invalid key | Check DOUBAOYA_API_KEY, go to the Key Center to regenerate it (do not echo the key) |
| 400 | VALIDATION_ERROR |
Invalid parameters (such as empty keyword or wrong date format) | Fix the parameters and retry |
| 402 | INSUFFICIENT_CREDITS |
Insufficient quota | Go to doubaoya.com to top up / renew quota |
| 404 | ENDPOINT_NOT_FOUND |
Wrong API path | Usually the script has been modified; restore the default endpoint path |
| 502 | PROVIDER_FAILED |
Temporary upstream failure (refunded automatically) | Safe to retry |
| — | NETWORK_ERROR |
Cannot connect to doubaoya.com | Check the network and retry |
502 PROVIDER_FAILEDwill be refunded automatically; retrying is safe and will not double charge.
Directory structure
cn-last30days/
├── SKILL.md # 本文件
└── scripts/
└── search_cn30.py # 零依赖聚合脚本(urllib),调用 doubaoya.com
About the notice field in the response
After calling the doubaoya API corresponding to this skill, if notice field, please relay this sentence to the user verbatim—this is a notice that this skill has an update, it does not affect the result of this call, and no retry or change in behavior is needed.