La detección de tendencias implica identificar temas que están ganando un rápido impulso de búsqueda y participación antes de que alcancen el conocimiento general. La combinación de la velocidad de los resultados de búsqueda de Google con las tasas de carga de videos de YouTube y el recuento de visualizaciones brinda una visión de señales múltiples de las tendencias emergentes. Este tutorial crea un agente de detección de tendencias que consulta ambas plataformas a través de la API de Scavio, califica los temas según la intensidad de la señal y genera una lista clasificada de temas de tendencia para un nicho determinado.
Requisitos previos
- Python 3.10 o superior
- solicita biblioteca instalada
- Una clave API de Scavio
- Comprensión básica de la normalización y puntuación de datos
Guia paso a paso
Paso 1: Definir semillas de temas
Comience con un conjunto de términos generales amplios en su nicho. El agente los ampliará a consultas de tendencias relacionadas.
SEEDS = ["generative ai", "open source llm", "ai agents 2026"]
NICHE = "artificial intelligence"Paso 2: Recopilar recuentos de resultados de búsqueda de Google
Para cada semilla, busque las SERP de Google y anote la cantidad de resultados orgánicos y sus señales de actualidad.
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 recentPaso 3: Recopilar métricas de vídeos de YouTube
Busque en YouTube cada tema inicial utilizando el punto final de búsqueda de Scavio y cuente las cargas de videos recientes.
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", "")])Paso 4: Tendencias de puntuación y clasificación
Combine las señales de Google y YouTube en una puntuación compuesta y clasifique los temas.
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)Ejemplo en 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']}")Ejemplo en 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);Salida esperada
ai agents: 8
generative ai: 7
open source llm: 5
model distillation: 3
Top trend: ai agents (score: 8)