
Douyin Hotlist Overall
- 101 installs
- 45 repo stars
- Updated June 6, 2026
- allinherog-star/ai-skills
douyin-hotlist-overall is an agent skill that calls the AI Skills API to fetch Douyin's real-time overall hotlist and rising topics for developers and operators planning short-video content.
About
douyin-hotlist-overall is a skill from allinherog-star/ai-skills that answers which Douyin topics are hottest right now. A Python runner (`python3 scripts/run.py --params '{}'`) calls the AI Skills API with AISKILLS_API_KEY to return wordList and trendingList entries with hotValue, videoCount, and updateTime metadata. Output covers real-time hot words, rising topics worth immediate follow-up, and timestamped ranking context for daily content digests. Sample JSON returns title, updateTime, wordList ranks with hotValue and videoCount, plus trendingList for rising topics. Guidance recommends pairing hotlist scans with account positioning and avoiding unrelated viral noise. Configure AISKILLS_BASE_URL (default https://ai-skills.ai) and obtain AISKILLS_API_KEY from ai-skills.ai before running. The skill ships in allinherog-star/ai-skills with a bundled Python runner and documents AISKILLS_TENANT_ID defaults. Use when building CN short-video editorial workflows or trend dashboards—not for non-Douyin platforms or offline analytics without network access.
- Python runner scripts/run.py calls AI Skills API with empty JSON params
- Returns wordList and trendingList with hotValue and videoCount fields
- Requires AISKILLS_API_KEY from ai-skills.ai (AISKILLS_BASE_URL configurable)
- Delivers real-time hot words plus rising-topic signals for same-day editorial
- Sample response includes ranked positions and updateTime metadata
Douyin Hotlist Overall by the numbers
- 101 all-time installs (skills.sh)
- Ranked #1,142 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/allinherog-star/ai-skills --skill douyin-hotlist-overallAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 101 |
|---|---|
| repo stars | ★ 45 |
| Last updated | June 6, 2026 |
| Repository | allinherog-star/ai-skills ↗ |
How do you fetch Douyin real-time hotlist data programmatically?
Fetch Douyin overall hotlist and rising topics via scripts/run.py and the AI Skills API using AISKILLS_API_KEY.
Who is it for?
Developers automating Douyin trend research for content ops, marketing agents, or CN social analytics pipelines.
Skip if: Teams outside Douyin ecosystems or workflows that cannot use the AI Skills API key and Python runner.
When should I use this skill?
User asks for Douyin hotlist, real-time trending topics, or runs douyin-hotlist-overall with AISKILLS_API_KEY configured.
What you get
JSON hotlist with wordList and trendingList ranks, hotValue scores, videoCount, and updateTime for editorial planning.
- Hotlist JSON
- Trending topic list
- Update timestamp metadata
By the numbers
- Uses Python scripts/run.py with zero required JSON params
- Response schema includes wordList and trendingList arrays with hotValue and videoCount
Files
douyin-hotlist-overall 抖音热点选题追踪助手(总榜)
概述
抖音全网实时热点用于回答「现在最热门的是什么」、看实时热榜、做热点日报、做即时热点跟进,适合内容创作者、运营、电商、营销在明确业务目标、内容材料或分析对象后调用。 它会结合用户输入的业务背景和目标等输入,整理关键上下文,并输出实时热点、当前热榜内容、值得即时跟进的话题,便于继续执行、复盘或交付。
什么时候使用
适用场景
- 用户想知道现在最热门的抖音热点
- 用户想看今天大家都在关注什么
- 用户需要快速扫描实时热榜
调用方式
通过导出的 Python runner 直接调用 AI Skills API:
命令示例
获取实时热榜
python3 scripts/run.py --params '{}'参数说明
当前技能无需额外参数,可直接使用:
python3 scripts/run.py --params '{}'参数取值参考
当前技能没有需要额外查表的分类参数。
支持的输入格式
当前技能直接接收 JSON 参数,不涉及分享链接解析。
示例请求
下面的示例参数可直接传给 scripts/run.py,runner 会把它们发送给 AI Skills API。
python3 scripts/run.py --params '{}'等价的 --params JSON:
{}返回结果示例
{
"success": true,
"data": {
"title": "抖音热搜总榜",
"updateTime": "2026-04-24T11:30:00.000Z",
"wordList": [
{
"position": 1,
"word": "奥运开幕式",
"hotValue": 9876543,
"label": 1,
"videoCount": 12860,
"eventTime": "2026-04-24T11:28:00.000Z",
"sentenceTag": 5000,
"groupId": "1",
"sentenceId": "743001"
}
],
"trendingList": [
{
"position": 2,
"word": "巴黎街采",
"hotValue": 6321880,
"label": 0,
"videoCount": 5840,
"eventTime": "2026-04-24T11:25:00.000Z",
"sentenceTag": 10000,
"groupId": "2",
"sentenceId": "743002"
}
]
},
"meta": {
"executionTime": 842,
"cached": false
}
}交付内容
- 抖音实时热榜:展示当前最受关注的热点词和热度信号。
- 上升热点线索:辅助判断哪些话题正在升温、值得即时跟进。
- 榜单时间信息:帮助判断当前结果是否适合用于当日选题和热点复盘。
结果使用建议
- 优先看热度高且与账号定位相关的话题,避免只追和自身内容无关的泛热点。
- 把实时热榜用于热点扫描、日报整理和即时选题,不要只凭单个词判断长期趋势。
- 适合和上升热点、流量分类结果一起看,形成更完整的选题判断。
运行前准备
AISKILLS_BASE_URL:默认https://ai-skills.aiAISKILLS_API_KEY:必填,用于认证调用AISKILLS_TENANT_ID:默认default
interface:
display_name: "抖音全网实时热点"
short_description: "抖音全网实时热点"
default_prompt: "Use $douyin-hotlist-overall to help with 抖音全网实时热点"
policy:
allow_implicit_invocation: true
{
"type": "object",
"properties": {}
}
{
"id": "douyin-hotlist-overall",
"slug": "douyin-hotlist-overall",
"question": "现在最热门的是什么?",
"skillName": "抖音全网实时热点",
"tags": [
"抖音",
"热搜",
"热榜",
"实时",
"热点",
"趋势"
],
"profession": [
"内容创作者",
"运营",
"电商",
"营销"
],
"industry": [
"新媒体",
"电商",
"娱乐",
"通用"
],
"hidden": false,
"auth": {
"type": "api-key",
"header": "X-API-Key",
"tenantHeader": "X-Tenant-Id"
},
"comingSoon": false,
"providerType": "api",
"providerConfig": {
"catalog": {
"icon": "Flame",
"rating": 4.9,
"displayOrder": 2,
"subProfession": [
"content-creator",
"analyst"
]
},
"endpoint": "https://www.douyin.com/aweme/v1/web/hot/search/list/",
"apiSource": "douyin-official"
},
"invocationMode": "execute",
"invocation": {
"type": "execute",
"executePath": "/api/execute"
},
"formSchema": {
"type": "object",
"properties": {}
}
}
#!/usr/bin/env python3
import argparse
import json
import os
import ssl
import sys
import time
import urllib.error
import urllib.request
SKILL_ID = "douyin-hotlist-overall"
EXECUTE_PATH = "/api/execute"
DEFAULT_BASE_URL = "https://ai-skills.ai"
RECHARGE_URL = "https://ai-skills.ai/user/billing"
def fail(message):
print(json.dumps({"success": False, "error": {"code": "RUNNER_ERROR", "message": message}}, ensure_ascii=False))
sys.exit(1)
def load_params(raw):
try:
return json.loads(raw or "{}")
except json.JSONDecodeError as exc:
fail(f"Invalid params JSON: {exc}")
def build_base_url():
return os.getenv("AISKILLS_BASE_URL", DEFAULT_BASE_URL).rstrip("/")
def build_headers():
api_key = os.getenv("AISKILLS_API_KEY", "").strip()
tenant_id = os.getenv("AISKILLS_TENANT_ID", "default").strip() or "default"
if not api_key:
fail("AISKILLS_API_KEY is required")
return {
"Content-Type": "application/json",
# Cloudflare blocks urllib's default Python user agent for this endpoint.
"User-Agent": "ai-skills-runner/1.0 (+https://ai-skills.ai)",
"Accept": "application/json",
"X-API-Key": api_key,
"X-Tenant-Id": tenant_id,
}
def build_ssl_context():
if os.getenv("SSL_CERT_FILE") or os.getenv("SSL_CERT_DIR"):
return ssl.create_default_context()
try:
import certifi
except ImportError:
return ssl.create_default_context()
return ssl.create_default_context(cafile=certifi.where())
SSL_CONTEXT = build_ssl_context()
def print_url_error(exc):
reason = getattr(exc, "reason", exc)
code = "SSL_CERTIFICATE_VERIFY_FAILED" if isinstance(reason, ssl.SSLCertVerificationError) else "NETWORK_ERROR"
message = str(reason)
if code == "SSL_CERTIFICATE_VERIFY_FAILED":
message = (
"HTTPS certificate verification failed. Install certifi or set SSL_CERT_FILE "
f"to a valid CA bundle, then retry: {reason}"
)
print(json.dumps({"success": False, "error": {"code": code, "message": message}}, ensure_ascii=False))
sys.exit(1)
def print_http_error(exc):
payload_text = exc.read().decode("utf-8")
try:
parsed = json.loads(payload_text)
except json.JSONDecodeError:
parsed = {"success": False, "error": {"code": f"HTTP_{exc.code}", "message": str(exc)}}
error = parsed.setdefault("error", {})
code = error.get("code") or f"HTTP_{exc.code}"
if exc.code == 402 or code == "BILLING_BALANCE_INSUFFICIENT":
error["code"] = "BILLING_BALANCE_INSUFFICIENT"
error["message"] = f"余额不足,请前往 {RECHARGE_URL} 充值后重试"
meta = parsed.setdefault("meta", {})
meta["rechargeUrl"] = RECHARGE_URL
print(json.dumps(parsed, ensure_ascii=False))
sys.exit(1)
def request_json(method, path, payload):
body = json.dumps(payload).encode("utf-8")
req = urllib.request.Request(
f"{build_base_url()}{path}",
data=body,
method=method,
headers=build_headers(),
)
try:
with urllib.request.urlopen(req, context=SSL_CONTEXT) as response:
return json.loads(response.read().decode("utf-8"))
except urllib.error.HTTPError as exc:
print_http_error(exc)
except urllib.error.URLError as exc:
print_url_error(exc)
def is_async_terminal(data):
status = data.get("status")
return status in {"completed", "failed", "needs_input", "cancelled"}
def poll_async_result(start_response, max_attempts, interval_seconds):
data = start_response.get("data") or {}
if data.get("mode") != "async":
return start_response
if is_async_terminal(data):
return start_response
execution_id = data.get("executionId") or data.get("turnId")
job_id = data.get("jobId")
if not execution_id and not job_id:
return start_response
for _ in range(max_attempts):
time.sleep(interval_seconds)
response = request_json("POST", EXECUTE_PATH, {
"skillId": SKILL_ID,
"params": {},
"execution": {
"action": "poll",
"executionId": execution_id,
"jobId": job_id,
},
})
data = response.get("data") or {}
if data.get("mode") == "async" and is_async_terminal(data):
return response
fail("Async skill execution did not reach a terminal state in time")
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--params", default="{}")
parser.add_argument("--poll-attempts", type=int, default=180)
parser.add_argument("--poll-interval", type=float, default=2.0)
args = parser.parse_args()
params = load_params(args.params)
response = request_json("POST", EXECUTE_PATH, {"skillId": SKILL_ID, "params": params})
print(json.dumps(poll_async_result(response, args.poll_attempts, args.poll_interval), ensure_ascii=False))
if __name__ == "__main__":
main()
Related skills
How it compares
Use this for live Douyin ranking API data; pair with broader social-research skills when you also need Western platform trends.
FAQ
What API key does douyin-hotlist-overall need?
douyin-hotlist-overall requires AISKILLS_API_KEY from https://ai-skills.ai, with optional AISKILLS_BASE_URL and AISKILLS_TENANT_ID environment variables for the Python runner.
How do you run douyin-hotlist-overall?
Run `python3 scripts/run.py --params '{}'` after exporting AISKILLS_API_KEY; the runner posts to the AI Skills API and returns wordList and trendingList JSON.
What fields are in the Douyin hotlist response?
douyin-hotlist-overall returns ranked word entries with position, word, hotValue, videoCount, eventTime, and separate trendingList items for rising topics worth immediate follow-up.