SuperAPI AI Directory

wechat-title

General & other

View repository

Updated 10-16 08:08

About this skill

Viral Title Creation for WeChat Official Accounts (Doubao Ya)

This Duck helps you pull by topicrecent viral hits in the same niche, distill reusable formulas from a bunch of titles that actually gained traction (number hooks, suspense, contrast, benefit points...), then give you a set ofready-to-use candidate titles. It also works in reverse—you give a title, and this Duck evaluates by formula where it's strong, where it's weak, and how to revise it.

Data goes through doubaoya.com in one line; authentication uses your own key (environment variable DOUBAOYA_API_KEY, in the form dyh_…)。


Use Cases

Scenario How to Use What You Get
Title Creation Give a topic, and this Duck pulls viral hits to distill formulas and produce candidate titles A set of ready-to-use candidate titles
Formula Distillation Want to know how to craft viral titles for this subject A list of reusable title formulas
Title Evaluation Give a title, and let this Duck judge its strengths and weaknesses by formula Optimization directions + revised versions
Trending Topic Titles Piggyback on recent buzz, need highly time-sensitive titles Titles close to current trending topics

Workflow (4 steps)

1. Extract topic keywords

Extract from the requestcore topic words, condense to 2~6 characters (e.g., 职场、婚姻、AI). The shorter the word, the broader and more hits. Search only one keyword at a time.

2. Call the script

python3 "$SKILL_PATH/scripts/fetch_title.py" "职场"

By defaultdo not pass a start date, and you get the most complete ranking (tested 2026-08-13). Only add it when you really need to limit the time window --start, andmust not be earlier than 60 days back from today—when beyond the retention period, the interface returns "date format error", which is amisleading error, the format is actually fine, just move the date later. Calculate the date based on today, don't copy a hardcoded date:

python3 "$SKILL_PATH/scripts/fetch_title.py" "职场" \
  --start "$(date -d '-29 days' +%F 2>/dev/null || date -v-29d +%F)"

The script outputs the data from the success envelope as JSON to stdout.Run the script only once per topic, read the full stdout, don't use head/tail to preview.

3. Distill title formulas

data.items isa flattened merged list of multiple rankings, each item is in the form { rank, item }:rank marks which ranking this item comes from (oneWReadingRank ten-thousand reading ranking / tenWReadingRank hundred-thousand reading ranking / originalRank original ranking), the real fields are in thenested item object—take item.title(title) and item.clicksCount(click count, as a popularity reference; defensive reading,item or leave it blank if its subfield is missing). Categorize high-traffic titles and distill the patterns: numbered lists, suspenseful gaps, benefit promises, identity immersion, contrast and opposition, riding hot topics... Mark the real examples corresponding to each pattern.

4. Generate candidate titles (or make judgments)

  • Generate: Apply the patterns distilled above to produce a set of candidate titles (5~8 recommended) around the user's topic, and label which pattern each one uses.
  • Judge: If the user is asking for title optimization, score according to the patterns (what is strong, what is weak—this is your judgment on the LLM side,there is no independent scoring API), then give 2~3 rewritten versions.

Title material must only use the real viral hits returned by the API; do not make things up or search online for alternatives.


Get the key (secret key)

  1. Open doubaoya.com
  2. Log in
  3. Go to Key Center
  4. Generate key(in the form dyh_…)

Configure it as an environment variable (the script only recognizes this):

export DOUBAOYA_API_KEY="dyh_你的密钥"

Iron rule: never print the key, never write it to 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。


API and envelope

  • POST https://doubaoya.com/api/apis/gongzhonghao/gongzhonghao-coze-cover/call(the same viral-hit data API, returning recent popular topics/titles)
  • Auth header:Authorization: Bearer $DOUBAOYA_API_KEY
  • Request body:{ "keyword": "职场" }(startDate optional)
    • keyword: string, required
    • startDate: string YYYY-MM-DD, optional.By default, do not pass it = the fullest ranking; if passed, it will only shorten the ranking, and it must not be earlier than 60 days before today (going outside the window will return a misleading "date format error")
  • Return envelope:
    {
      "success": true,
      "requestId": "...",
      "data": {
        "items": [
          { "rank": "oneWReadingRank", "item": { "title": "...", "clicksCount": 0 } }
        ],
        "groups": { "oneWReadingRank": [], "tenWReadingRank": [], "originalRank": [] }
      },
      "error": null
    }
    
    • items is an array formed by flattening and merging three rankings (oneWReadingRank 10k-level reads / tenWReadingRank 100k-level reads / originalRank original), each item { rank, item }; the title is in item.title, and the click count is in item.clicksCount。
    • groups is grouped as-is by ranking, generally not needed; use items as the basis for taking numbers.
  • First check success: only read true if it is data; otherwise read error.code / error.message。
  • The title "score" is only a pattern-based judgment on the LLM side,do not call any scoring API—this skill only has the one data-fetching API above.

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 No key provided or invalid key Check DOUBAOYA_API_KEY, go to Key Center to regenerate
400 VALIDATION_ERROR Invalid parameter (e.g. empty keyword, wrong date format) Fix the parameter and retry
402 INSUFFICIENT_CREDITS Insufficient quota Go to doubaoya.com to top up/renew quota
422 PROVIDER_NO_RESULT No data found.If --startwas provided, it is most likely earlier than the 60-day retention period Remove --start or move it within 60 days and retry
502 PROVIDER_FAILED Temporary upstream failure (automatically refunded) safe to retry

502 PROVIDER_FAILED Refunds are automatic; retrying is safe and will not result in duplicate charges.


Directory structure

wechat-title/
├── SKILL.md                  # 本文件
└── scripts/
    └── fetch_title.py        # 零依赖脚本(urllib),调用 doubaoya.com

Next step (first look at what final state the user wants)

What this skill delivers isa set of title candidates. The final state the user wants determines whether this is the endpoint—don't push forward by default:

The final state the user wants Is this step enough Next step
Only the title (fill it in the backend yourself) ✅ Enough,it ends here —
Still need a cover Not enough wechat-cover
Still need the body checked for prohibited words and a version that passes review Not enough wechat-banned-words
Still needformatted official account HTML, or need tosave it to your own official account drafts Not enough wechat-article-pipeline(The title goes through the --title parameter)
The body hasn't been written yet Not enough wechat-hot-write
Can't say clearly which step is needed — dby(the hop-by-hop navigation of the official account flywheel)

🔴 The finalized titleonly goes through the --title parameter, don't write it into the body again—official accounts always use the draft title to render the large title, and putting it in the body again will display it twice.

About the notice field in the response

After calling the doubaoya API corresponding to this skill, if the notice field appears at the top level of the returned JSON, please relay this sentence to the user exactly as is—this is a hint that this skill has an update, it does not affect the result of this call, and there is no need to retry or change behavior.