Aperçu
Surveiller un ensemble de hashtags TikTok toutes les heures pour détecter l'élan des tendances avant que les concurrents ne s'en aperçoivent. Récupérer les métadonnées des hashtags (nombre de vues, nombre de vidéos) et les dernières vidéos publiées sous chaque hashtag. Calculer la vélocité des vues et marquer les hashtags dont la croissance s'accélère.
Déclencheur
Cron horaire à :00
Planification
Toutes les heures à :00
Étapes du workflow
Charger la liste de surveillance des hashtags
Lire les hashtags cibles depuis la configuration. Chaque entrée contient le nom du hashtag et le nombre de vues de l'heure précédente pour le calcul du delta.
Récupérer les métadonnées du hashtag
Pour chaque hashtag, appeler le point de terminaison du hashtag pour obtenir le nombre total de vues actuel et le nombre de vidéos.
Récupérer les dernières vidéos
Appeler hashtag/videos pour obtenir les 20 vidéos les plus récentes. Extraire les heures de publication, les nombres de vues et les informations sur le créateur.
Calculer la vélocité
Comparer le nombre de vues actuel à celui de l'heure précédente. Marquer les hashtags qui gagnent plus de 10% par heure comme tendance.
Alerter sur les hashtags en rupture
Envoyer une notification (Slack, email, webhook) pour les hashtags qui dépassent le seuil de vélocité. Inclure les 3 vidéos principales qui stimulent la croissance.
Implémentation Python
import requests, os, json, time
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}
BASE = "https://api.scavio.dev"
STATE_FILE = "hashtag_state.json"
def load_state():
try:
with open(STATE_FILE) as f: return json.load(f)
except FileNotFoundError: return {}
def track_hashtags(hashtags):
state = load_state()
alerts = []
for tag in hashtags:
resp = requests.post(f"{BASE}/api/v1/tiktok/hashtag",
headers=H, json={"hashtag": tag}).json()
data = resp["data"]
views = data.get("stats", {}).get("view_count", 0)
videos = data.get("stats", {}).get("video_count", 0)
prev = state.get(tag, {}).get("views", views)
delta = (views - prev) / prev * 100 if prev > 0 else 0
state[tag] = {"views": views, "videos": videos, "ts": int(time.time())}
if delta > 10:
alerts.append({"hashtag": tag, "delta_pct": round(delta, 1), "views": views})
with open(STATE_FILE, "w") as f: json.dump(state, f)
return alerts
alerts = track_hashtags(["skincare", "booktok", "techreview"])
for a in alerts:
print(f"#{a['hashtag']} trending: +{a['delta_pct']}% ({a['views']:,} views)")Implémentation JavaScript
const BASE = "https://api.scavio.dev";
const H = { Authorization: `Bearer ${process.env.SCAVIO_API_KEY}`, "Content-Type": "application/json" };
const fs = require("fs");
async function trackHashtag(tag, prevViews = 0) {
const resp = await fetch(`${BASE}/api/v1/tiktok/hashtag`, {
method: "POST", headers: H, body: JSON.stringify({ hashtag: tag })
}).then(r => r.json());
const views = resp.data?.stats?.view_count || 0;
const delta = prevViews > 0 ? ((views - prevViews) / prevViews * 100) : 0;
if (delta > 10) console.log(`#${tag} TRENDING: +${delta.toFixed(1)}% (${views.toLocaleString()} views)`);
return { tag, views, delta };
}
trackHashtag("skincare", 1000000);Plateformes utilisées
TikTok
Découverte de vidéos tendance, créateurs et produits