Resumen
Este pipeline monitorea menciones de marca a traves de Google, Reddit, TikTok, y YouTube, sending alertas cuando nuevo menciones son detectado o cuando sentiment shifts. It consultas cada plataforma for el nombre de marca y key producto terms, deduplicates contra previously visto resultados, y flags nuevo menciones for resena. Alerts incluye context about si el mencion es positive, negative, o un competidor comparacion.
Desencadenador
Cron programar (cada 4 horas)
Programación
Ejecuta cada 4 horas
Pasos del flujo de trabajo
Consulta marca terms a traves de plataformas
Search Scavio Google, Reddit, YouTube, y TikTok for nombre de marca y key producto terms.
Deduplicate contra conocido menciones
Comparar resultados contra el almacenado lista of previously visto URLs y publicacion IDs.
Clasificar mencion sentiment
Puntuacion cada nuevo mencion as positive, negative, o neutral basado on context palabras clave.
Enviar alertas for nuevo menciones
Push nuevo menciones to Slack o correo electronico con plataforma, sentiment, y direct enlace.
Implementacion en Python
import requests
import json
from datetime import datetime
from pathlib import Path
API_KEY = "your_scavio_api_key"
def search_platform(brand: str, platform: str) -> list[dict]:
if platform == "tiktok":
res = requests.post(
"https://api.scavio.dev/api/v1/tiktok/search/videos",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"query": brand},
timeout=15,
)
if res.ok:
return [{"title": v.get("description", "")[:100], "link": v.get("id", ""), "platform": "tiktok"} for v in res.json().get("videos", [])[:5]]
return []
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": platform, "query": brand},
timeout=15,
)
res.raise_for_status()
return [{"title": r.get("title", ""), "link": r.get("link", ""), "platform": platform} for r in res.json().get("organic", [])[:5]]
def run():
brand = "Scavio"
platforms = ["google", "reddit", "youtube", "tiktok"]
seen_path = Path("seen_mentions.json")
seen = set(json.loads(seen_path.read_text())) if seen_path.exists() else set()
all_mentions = []
for p in platforms:
mentions = search_platform(brand, p)
all_mentions.extend(mentions)
new_mentions = [m for m in all_mentions if m["link"] not in seen]
for m in new_mentions:
seen.add(m["link"])
seen_path.write_text(json.dumps(list(seen)))
print(f"Brand monitoring: {len(all_mentions)} total, {len(new_mentions)} new")
for m in new_mentions:
print(f" [{m['platform']}] {m['title'][:80]}")
if __name__ == "__main__":
run()Implementacion en JavaScript
const API_KEY = "your_scavio_api_key";
async function searchPlatform(brand, platform) {
if (platform === "tiktok") {
const res = await fetch("https://api.scavio.dev/api/v1/tiktok/search/videos", {
method: "POST",
headers: { Authorization: `Bearer ${API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({ query: brand }),
});
if (!res.ok) return [];
return ((await res.json()).videos ?? []).slice(0, 5).map((v) => ({ title: (v.description ?? "").slice(0, 100), link: v.id ?? "", platform }));
}
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform, query: brand }),
});
const data = await res.json();
return (data.organic ?? []).slice(0, 5).map((r) => ({ title: r.title ?? "", link: r.link ?? "", platform }));
}
const mentions = [];
for (const p of ["google", "reddit", "youtube", "tiktok"]) mentions.push(...await searchPlatform("Scavio", p));
console.log(`Found ${mentions.length} mentions across 4 platforms`);
mentions.forEach((m) => console.log(` [${m.platform}] ${m.title.slice(0, 80)}`));Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA
Comunidad, publicaciones y comentarios en hilos de cualquier subreddit
YouTube
Búsqueda de videos con transcripciones y metadatos
TikTok
Descubrimiento de videos, creadores y productos en tendencia