Resumen
Este flujo de trabajo pulls TikTok perfil stats for un lista of tracked cuentas cada semana to construir longitudinal analytics paneles de control. For cada cuenta, it captures follower conteo, total likes, y reciente publicacion engagement to compute week-over-week crecimiento rates. Social media managers usar este to spot cuentas gaining o losing momentum sin paying for expensive social listening plataformas.
Desencadenador
Cron programar (cada Monday at 10:00 AM UTC)
Programación
Ejecuta cada Monday at 10:00 AM UTC
Pasos del flujo de trabajo
Cargar tracked cuentas lista
Leer el lista of TikTok usernames siendo tracked de configuracion o base de datos.
Pull perfil stats for cada cuenta
Call Scavio TikTok /perfil endpoint for cada username to obtener actual follower conteo y total likes.
Comparar contra anterior semana
Cargar last week's stats y compute follower crecimiento tasa y engagement cambios.
Marcar notable cambios
Identificar cuentas con crecimiento rates above o below umbrales ese warrant attention.
Save semanal snapshot
Almacenar este week's stats for future comparisons y agregar to el historico tendencia conjunto de datos.
Implementacion en Python
import requests
import json
from pathlib import Path
from datetime import datetime
API_KEY = "your_scavio_api_key"
TIKTOK_URL = "https://api.scavio.dev/api/v1/tiktok"
TRACKED_ACCOUNTS = ["account1", "account2", "account3", "account4", "account5"]
GROWTH_THRESHOLD = 0.05 # 5% weekly growth flags attention
def get_profile_stats(username: str) -> dict:
res = requests.post(
f"{TIKTOK_URL}/profile",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"username": username},
timeout=15,
)
res.raise_for_status()
data = res.json()
return {
"username": username,
"followers": data.get("followers", 0),
"following": data.get("following", 0),
"total_likes": data.get("likes", 0),
"bio": data.get("bio", ""),
}
def run():
date = datetime.utcnow().strftime("%Y-%m-%d")
snapshots_dir = Path("tiktok_analytics")
snapshots_dir.mkdir(exist_ok=True)
# Load previous week
prev_files = sorted(snapshots_dir.glob("snapshot_*.json"))
previous = {}
if prev_files:
prev_data = json.loads(prev_files[-1].read_text())
previous = {a["username"]: a for a in prev_data.get("accounts", [])}
accounts = []
notable = []
for username in TRACKED_ACCOUNTS:
stats = get_profile_stats(username)
prev = previous.get(username, {})
prev_followers = prev.get("followers", 0)
if prev_followers > 0:
growth = (stats["followers"] - prev_followers) / prev_followers
stats["follower_growth_pct"] = round(growth * 100, 2)
stats["follower_delta"] = stats["followers"] - prev_followers
if abs(growth) >= GROWTH_THRESHOLD:
notable.append(username)
else:
stats["follower_growth_pct"] = None
stats["follower_delta"] = None
accounts.append(stats)
snapshot = {"date": date, "accounts": accounts, "notable_changes": notable}
snapshots_dir.joinpath(f"snapshot_{date}.json").write_text(json.dumps(snapshot, indent=2))
print(f"TikTok Analytics {date}: {len(accounts)} accounts tracked")
for a in accounts:
growth_str = f"{a['follower_growth_pct']:+.1f}%" if a["follower_growth_pct"] is not None else "new"
flag = " ***" if a["username"] in notable else ""
print(f" @{a['username']}: {a['followers']:,} followers ({growth_str}){flag}")
if __name__ == "__main__":
run()Implementacion en JavaScript
const API_KEY = "your_scavio_api_key";
const TIKTOK_URL = "https://api.scavio.dev/api/v1/tiktok";
const ACCOUNTS = ["account1", "account2", "account3"];
async function getProfile(username) {
const res = await fetch(`${TIKTOK_URL}/profile`, {
method: "POST",
headers: { Authorization: `Bearer ${API_KEY}`, "content-type": "application/json" },
body: JSON.stringify({ username }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
const data = await res.json();
return { username, followers: data.followers ?? 0, totalLikes: data.likes ?? 0 };
}
const stats = [];
for (const u of ACCOUNTS) stats.push(await getProfile(u));
stats.sort((a, b) => b.followers - a.followers);
for (const s of stats) console.log(`@${s.username}: ${s.followers.toLocaleString()} followers, ${s.totalLikes.toLocaleString()} likes`);Plataformas utilizadas
TikTok
Descubrimiento de videos, creadores y productos en tendencia