Resumen
Vet TikTok influencer candidates by pulling perfil stats, reciente publicaciones, y follower samples via API. Calcular real engagement rates, verificar posting consistency, y marcar cuentas con suspicious follower patrones. Ejecuta diario contra un watchlist of creator usernames.
Desencadenador
Diario cron at 08:00 UTC
Programación
Diario at 08:00 UTC
Pasos del flujo de trabajo
Cargar creator watchlist
Leer objetivo TikTok usernames de un archivo de configuracion o base de datos. Cada entrada tiene el username y el campana they son siendo evaluated for.
Pull perfil datos
For cada username, call el TikTok perfil endpoint to obtener follower conteo, following conteo, total likes, video conteo, y bio.
Obtener reciente publicaciones
Call usuario/publicaciones endpoint con max_cursor paginacion to obtener el last 20 videos. Extraer view counts, like counts, comentario counts, y share counts per video.
Calcular engagement metricas
Compute median engagement tasa (likes + comentarios + shares) / followers for el last 20 publicaciones. Marcar creators below 2% o above 20% (suspiciously high).
Sample followers for calidad
Pull 2 paginas of followers (40 cuentas). Verificar que porcentaje tienen zero videos y follow 500+ cuentas, cual indicates bot followers.
Salida vetting informe
Escribir un CSV con: username, followers, median engagement tasa, posting frecuencia, follower calidad puntuacion, y un pass/marcar/fail recommendation.
Implementacion en Python
import requests, os, statistics
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}
BASE = "https://api.scavio.dev"
def vet_creator(username):
profile = requests.post(f"{BASE}/api/v1/tiktok/profile",
headers=H, json={"username": username}).json()["data"]["user"]
followers = profile["follower_count"]
posts_resp = requests.post(f"{BASE}/api/v1/tiktok/user/posts",
headers=H, json={"sec_user_id": profile["sec_uid"], "count": 20}).json()
posts = posts_resp["data"].get("posts", [])
engagement_rates = []
for p in posts:
stats = p.get("statistics", {})
eng = stats.get("digg_count", 0) + stats.get("comment_count", 0) + stats.get("share_count", 0)
if followers > 0:
engagement_rates.append(eng / followers * 100)
median_eng = statistics.median(engagement_rates) if engagement_rates else 0
foll_resp = requests.post(f"{BASE}/api/v1/tiktok/user/followers",
headers=H, json={"sec_user_id": profile["sec_uid"], "count": 20}).json()
sample = foll_resp["data"].get("followers", [])
bot_like = sum(1 for f in sample if f.get("aweme_count", 0) == 0 and f.get("following_count", 0) > 500)
quality_score = 1 - (bot_like / len(sample)) if sample else 0
return {
"username": username,
"followers": followers,
"median_engagement": round(median_eng, 2),
"posts_sampled": len(posts),
"follower_quality": round(quality_score, 2),
"status": "pass" if median_eng >= 2 and quality_score >= 0.8 else "flag",
}
result = vet_creator("example_creator")
print(f"{result['username']}: {result['median_engagement']}% eng, {result['follower_quality']} quality -> {result['status']}")Implementacion en JavaScript
const BASE = "https://api.scavio.dev";
const H = { Authorization: `Bearer ${process.env.SCAVIO_API_KEY}`, "Content-Type": "application/json" };
async function vetCreator(username) {
const profile = await fetch(`${BASE}/api/v1/tiktok/profile`, {
method: "POST", headers: H, body: JSON.stringify({ username })
}).then(r => r.json());
const user = profile.data.user;
const postsResp = await fetch(`${BASE}/api/v1/tiktok/user/posts`, {
method: "POST", headers: H,
body: JSON.stringify({ sec_user_id: user.sec_uid, count: 20 })
}).then(r => r.json());
const posts = postsResp.data.posts || [];
const engRates = posts.map(p => {
const s = p.statistics || {};
return user.follower_count > 0
? ((s.digg_count || 0) + (s.comment_count || 0) + (s.share_count || 0)) / user.follower_count * 100
: 0;
});
engRates.sort((a, b) => a - b);
const median = engRates[Math.floor(engRates.length / 2)] || 0;
console.log(`${username}: ${median.toFixed(2)}% engagement, ${posts.length} posts sampled`);
return { username, followers: user.follower_count, medianEngagement: median };
}
vetCreator("example_creator");Plataformas utilizadas
TikTok
Descubrimiento de videos, creadores y productos en tendencia