This duck helps short drama creators and MCN operators scan Douyin short drama hits by keyword—pull out the short drama works currently running the hardest, spread them into a clickable hit table in the terminal, then cluster them into several directions by genre, and assemble a short drama daily report that can be directly used to set topics and benchmark filming.
Data goes through doubaoya.com one line, authentication uses your own token (environment variable
DOUBAOYA_API_KEY, in the formdyh_…)。
Applicable scenarios
| Scenario | How to use | What you get |
|---|---|---|
| Daily hit inventory | Use 短剧 to scan today's hardest-running works on Douyin |
See at a glance what is blowing up in Douyin short dramas today |
| Genre topic daily report | Scan by direction and cluster into several genres | A short drama topic daily report that can directly set topics |
| Niche track tracking | Use 古装短剧、都市短剧、复仇短剧 and other narrow terms |
Lock onto hits in a certain short drama genre |
| Hit entry point breakdown | Look at the titles and hooks of high-like works | Extract the golden three-second opening writing method for Douyin short dramas |
| Genre heat inventory | Page through several more screens to see which genres repeatedly produce hits | Figure out the current genre heat landscape of Douyin short dramas |
Workflow (4 steps)
1. Set keyword
Extract one short drama direction keyword(required) from the user description, such as 短剧、古装短剧、都市短剧、复仇短剧、战神短剧. Broad terms hit more, narrow terms are more focused; scan only one keyword at a time.
2. Call script
python3 "$SKILL_PATH/scripts/fetch_playlet_feed.py" "短剧"
Paging / adjust items per page (optional):
python3 "$SKILL_PATH/scripts/fetch_playlet_feed.py" "古装短剧" --page 2 --size 30
The script prints 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 preview, and do not repeatedly call with the same parameters.
3. Render hit table
From data.items(works array), take the fields and spread them into a Markdown table. The core fields stably returned by this interface are title(title) and likeCount(likes); read defensively—fields may be missing, leave them blank if missing, do not error, and do not imagine links or authors the interface did not return. If a certain returned item happens to include a link, then render the title as a clickable link; otherwise plain text is fine.
| Title | Likes |
|---|---|
| Example hit short drama | 128,000 |
4. Cluster into daily report + one-sentence insight
Cluster this batch of works by genre directioncluster(such as God of War / Revenge / Sweet Pet / Rebirth / Live-in Son-in-Law), pick representative hits for each direction, and form a brief daily report. At the end, add one sentence in this duck's tone as atopic insight: which genre of Douyin short drama can run the hardest today, and which kind of hook still has open space. Do not pile on clichés, and do not ask the user their purpose.
Get the key (token)
- Open doubaoya.com
- Sign in
- to the Credential Center
- Generate a credential(in the form
dyh_…)
Configure it as an environment variable (the script only recognizes this one):
export DOUBAOYA_API_KEY="dyh_你的口令"
Iron rule: never print the credential, never write it to a file, never echo it back to the user. The script itself also never outputs the credential. All requests are sent only to doubaoya.com。
API and envelope
POST https://doubaoya.com/api/apis/douyin/douyin-playlet-feed/call- Auth header:
Authorization: Bearer $DOUBAOYA_API_KEY - Request body:
{ "keyword": "短剧", "pageNum": 1, "pageSize": 20 }keyword: string, requiredpageNum: integer, optional (default 1, controlled by--page)pageSize: integer, optional (default 20, controlled by--size)
- Response envelope:
{ "success": true, "requestId": "...", "data": { "items": [ { "title": "...", "likeCount": 128000 } ] }, "error": null } - First check
success: if it istrue, then readdata; otherwise readerror.code/error.message。
Error handling
When the script fails, it prints to stderr [error] CODE: message and exits with exit code 1. Common cases:
| HTTP | code | Meaning | Handling |
|---|---|---|---|
| 401 | MISSING_API_KEY / UNAUTHORIZED |
Credential missing or invalid | Check DOUBAOYA_API_KEY, go to the Credential Center to regenerate it |
| 400 | VALIDATION_ERROR |
Invalid parameter (e.g. keyword is empty) | Fix the keyword and retry |
| 402 | INSUFFICIENT_CREDITS |
Insufficient quota | Go to doubaoya.com to top up/renew quota |
| 502 | PROVIDER_FAILED |
Temporary upstream failure (automatically refunded) | Safe to retry |
502 PROVIDER_FAILEDwill automatically refund; retrying is safe and will not double-charge.
Directory structure
playlet-douyin-feed/
├── SKILL.md # 本文件
└── scripts/
└── fetch_playlet_feed.py # 零依赖脚本(urllib),调用 doubaoya.com