趋势检测涉及在获得主流意识之前识别正在获得快速搜索和参与动力的主题。将 Google 搜索结果速度与 YouTube 视频上传率和观看次数相结合,可以提供新兴趋势的多信号视图。本教程构建了一个趋势检测代理,该代理通过 Scavio API 查询两个平台,按信号强度对主题进行评分,并输出给定利基的趋势主题排名列表。
前置条件
- Python 3.10 或更高版本
- 请求已安装库
- Scavio API 密钥
- 对数据标准化和评分的基本了解
操作指南
步骤 1: 定义主题种子
从您的利基市场中的一组广泛的种子术语开始。代理会将这些扩展为相关的趋势查询。
SEEDS = ["generative ai", "open source llm", "ai agents 2026"]
NICHE = "artificial intelligence"步骤 2: 收集 Google 搜索结果计数
对于每个种子,获取 Google SERP 并记下有机结果的数量及其新近度信号。
def google_signal(topic: str) -> int:
data = search_google(f"{topic} 2026")
results = data.get("organic_results", [])
# Count results mentioning the current year as recency signal
recent = sum(1 for r in results if "2026" in r.get("title", "") + r.get("snippet", ""))
return recent步骤 3: 收集 YouTube 视频指标
使用 Scavio 搜索端点在 YouTube 中搜索每个种子主题并计算最近上传的视频。
def youtube_signal(topic: str) -> int:
response = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "youtube", "query": topic}
)
videos = response.json().get("videos", [])
return len([v for v in videos if "2026" in v.get("published_at", "")])步骤 4: 分数和排名趋势
将 Google 和 YouTube 信号合并为综合分数并对主题进行排名。
def rank_trends(seeds: list[str]) -> list[dict]:
scored = []
for seed in seeds:
g = google_signal(seed)
y = youtube_signal(seed)
scored.append({"topic": seed, "google": g, "youtube": y, "score": g + y * 2})
return sorted(scored, key=lambda x: x["score"], reverse=True)Python 示例
import os
import requests
API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"
SEEDS = ["generative ai", "open source llm", "ai agents", "model distillation"]
def search_google(q: str) -> dict:
r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
json={"query": q, "country_code": "us"})
r.raise_for_status()
return r.json()
def search_youtube(q: str) -> list:
r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
json={"platform": "youtube", "query": q})
r.raise_for_status()
return r.json().get("videos", [])
def score(seed: str) -> dict:
g_results = search_google(f"{seed} 2026").get("organic_results", [])
y_results = search_youtube(seed)
g_score = sum(1 for r in g_results if "2026" in r.get("title", ""))
y_score = len(y_results)
return {"topic": seed, "score": g_score + y_score * 2}
if __name__ == "__main__":
scores = sorted([score(s) for s in SEEDS], key=lambda x: x["score"], reverse=True)
for s in scores:
print(f"{s['topic']}: {s['score']}")JavaScript 示例
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";
const SEEDS = ["generative ai", "open source llm", "ai agents", "model distillation"];
async function searchGoogle(q) {
const res = await fetch(ENDPOINT, {
method: "POST",
headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ query: q, country_code: "us" })
});
return res.json();
}
async function scoreTopic(seed) {
const data = await searchGoogle(`${seed} 2026`);
const organic = data.organic_results || [];
const gScore = organic.filter(r => (r.title + " " + (r.snippet || "")).includes("2026")).length;
return { topic: seed, score: gScore };
}
async function main() {
const scores = await Promise.all(SEEDS.map(scoreTopic));
scores.sort((a, b) => b.score - a.score).forEach(s => console.log(`${s.topic}: ${s.score}`));
}
main().catch(console.error);预期输出
ai agents: 8
generative ai: 7
open source llm: 5
model distillation: 3
Top trend: ai agents (score: 8)